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实现baidu hi自动登录的代码
Feb 10 Python
Python读取mp3中ID3信息的方法
Mar 05 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
Python实现网站注册验证码生成类
Jun 08 Python
Python for循环生成列表的实例
Jun 15 Python
用pycharm开发django项目示例代码
Oct 24 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python3人脸识别的两种方法
Apr 25 Python
如何运行带参数的python脚本
Nov 15 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 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采用实现三级循环代码实例
2014/07/18 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
介绍Python中的fabs()方法的使用
2015/05/14 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python File readlines() 使用方法
2018/03/19 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python字符串的index和find的区别详解
2020/06/20 Python
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
运动会四百米广播稿
2014/01/19 职场文书
干部选拔任用方案
2014/05/26 职场文书
创先争优活动承诺书
2014/08/30 职场文书
学校食品安全责任书
2015/01/29 职场文书
医学生自荐信范文
2015/03/05 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
vue实现Toast组件轻提示
2022/04/10 Vue.js
python中filter,map,reduce的作用
2022/06/10 Python