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 11 Python
Python sys.argv用法实例
May 28 Python
Python验证码识别的方法
Jul 10 Python
Python操作csv文件实例详解
Jul 31 Python
Sanic框架应用部署方法详解
Jul 18 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
python模拟实现分发扑克牌
Apr 22 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
详细总结Python常见的安全问题
May 21 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
PHP写MySQL数据 实现代码
2009/06/15 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php和nginx交互实例讲解
2019/09/24 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
发布Angular应用至生产环境的方法
2018/12/10 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
python3调用windows dos命令的例子
2019/08/14 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
python实现查找所有程序的安装信息
2020/02/18 Python
详解Python3中的 input() 函数
2020/03/18 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
组织生活会发言材料
2014/12/15 职场文书
法制教育讲座心得体会
2016/01/14 职场文书