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 深入理解yield
Sep 06 Python
简单的Python的curses库使用教程
Apr 11 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
python从内存地址上加载python对象过程详解
Jan 08 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
利用Python优雅的登录校园网
Oct 21 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 Python
利用Python实现Picgo图床工具
Nov 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
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
jquery获取节点名称
2015/04/26 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
JQuery获得内容和属性方法解析
2020/05/30 jQuery
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
行政文秘岗位职责范本
2014/02/10 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
投标售后服务承诺书
2015/04/29 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android