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的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
Aug 10 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
使用Python来开发微信功能
Jun 13 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
python 爬取吉首大学网站成绩单
Jun 02 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 JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
webpack源码之loader机制详解
2018/04/06 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
vue编写简单的购物车功能
2021/01/08 Vue.js
Python常用正则表达式符号浅析
2014/08/13 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python定义一个函数的方法
2020/06/15 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
环境科学专业个人求职信
2013/09/26 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
行政撤诉申请书
2015/05/18 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript