TensorFlow的reshape操作 tf.reshape的实现


Posted in Python onApril 19, 2020

初学tensorflow,如果写的不对的,请更正,谢谢!

tf.reshape(tensor, shape, name=None)

函数的作用是将tensor变换为参数shape的形式。

其中shape为一个列表形式,特殊的一点是列表中可以存在-1。-1代表的含义是不用我们自己指定这一维的大小,函数会自动计算,但列表中只能存在一个-1。(当然如果存在多个-1,就是一个存在多解的方程了)

好了我想说的重点还有一个就是根据shape如何变换矩阵。其实简单的想就是,

reshape(t, shape) => reshape(t, [-1]) => reshape(t, shape)

首先将矩阵t变为一维矩阵,然后再对矩阵的形式更改就可以了。

官方的例子:

# tensor 't' is [1, 2, 3, 4, 5, 6, 7, 8, 9]
# tensor 't' has shape [9]
reshape(t, [3, 3]) ==> [[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]]

# tensor 't' is [[[1, 1], [2, 2]],
#        [[3, 3], [4, 4]]]
# tensor 't' has shape [2, 2, 2]
reshape(t, [2, 4]) ==> [[1, 1, 2, 2],
            [3, 3, 4, 4]]

# tensor 't' is [[[1, 1, 1],
#         [2, 2, 2]],
#        [[3, 3, 3],
#         [4, 4, 4]],
#        [[5, 5, 5],
#         [6, 6, 6]]]
# tensor 't' has shape [3, 2, 3]
# pass '[-1]' to flatten 't'
reshape(t, [-1]) ==> [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]

# -1 can also be used to infer the shape

# -1 is inferred to be 9:
reshape(t, [2, -1]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],
             [4, 4, 4, 5, 5, 5, 6, 6, 6]]
# -1 is inferred to be 2:
reshape(t, [-1, 9]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],
             [4, 4, 4, 5, 5, 5, 6, 6, 6]]
# -1 is inferred to be 3:
reshape(t, [ 2, -1, 3]) ==> [[[1, 1, 1],
               [2, 2, 2],
               [3, 3, 3]],
               [[4, 4, 4],
               [5, 5, 5],
               [6, 6, 6]]]

# tensor 't' is [7]
# shape `[]` reshapes to a scalar
reshape(t, []) ==> 7

在举几个例子或许就清楚了,有一个数组z,它的shape属性是(4, 4)

z = np.array([[1, 2, 3, 4],
     [5, 6, 7, 8],
     [9, 10, 11, 12],
     [13, 14, 15, 16]])
z.shape
(4, 4)

z.reshape(-1)

z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])

z.reshape(-1, 1)
也就是说,先前我们不知道z的shape属性是多少,但是想让z变成只有一列,行数不知道多少,通过`z.reshape(-1,1)`,Numpy自动计算出有12行,新的数组shape属性为(16, 1),与原来的(4, 4)配套。

z.reshape(-1,1)
 array([[ 1],
    [ 2],
    [ 3],
    [ 4],
    [ 5],
    [ 6],
    [ 7],
    [ 8],
    [ 9],
    [10],
    [11],
    [12],
    [13],
    [14],
    [15],
    [16]])

z.reshape(-1, 2)

newshape等于-1,列数等于2,行数未知,reshape后的shape等于(8, 2)

z.reshape(-1, 2)
 array([[ 1, 2],
    [ 3, 4],
    [ 5, 6],
    [ 7, 8],
    [ 9, 10],
    [11, 12],
    [13, 14],
    [15, 16]])

到此这篇关于TensorFlow的reshape操作 tf.reshape的实现的文章就介绍到这了,更多相关TensorFlow的reshape操作 tf.reshape内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
跟老齐学Python之变量和参数
Oct 10 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
用python处理MS Word的实例讲解
May 08 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
Python异常处理知识点总结
Feb 18 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
适合Python初学者的一些编程技巧
Feb 12 Python
学习Python列表的基础知识汇总
Mar 10 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
Python一些基本的图像操作和处理总结
Jun 23 Python
pip安装tensorflow的坑的解决
Apr 19 #Python
查看已安装tensorflow版本的方法示例
Apr 19 #Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 #Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 #Python
Python如何把Spark数据写入ElasticSearch
Apr 18 #Python
Python virtualenv虚拟环境实现过程解析
Apr 18 #Python
python实现贪吃蛇双人大战
Apr 18 #Python
You might like
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
php实现求相对时间函数
2015/06/15 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
Python模块的加载讲解
2019/01/15 Python
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
人力资源部培训专员岗位职责
2014/01/02 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
团代会邀请函
2015/02/02 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
小学六年级毕业感言
2015/07/30 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL