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连接mysql数据库示例(做增删改操作)
Dec 31 Python
从零学Python之hello world
May 21 Python
Python os模块学习笔记
Jun 21 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
python单例模式实例解析
Aug 28 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Python代码块及缓存机制原理详解
Dec 13 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
python中def是做什么的
Jun 10 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高级OOP技术演示
2009/08/27 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
php和html的区别点详细总结
2019/09/24 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
javascript中length属性的探索
2011/07/31 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python中GIL的使用详解
2018/10/03 Python
python遍历小写英文字母的方法
2019/01/02 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
创意广告词
2014/03/17 职场文书
品酒会策划方案
2014/05/26 职场文书
大学军训的体会
2014/11/08 职场文书
运动与健康自我评价
2015/03/09 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python