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使用reportlab画图示例(含中文汉字)
Dec 03 Python
python解析xml文件实例分析
May 27 Python
Python常用知识点汇总
May 08 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Django实现文件上传下载
Oct 06 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
Python如何进行时间处理
Aug 06 Python
详解python的super()的作用和原理
Oct 29 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 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开发中常用的字符串操作函数
2011/02/08 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
python比较两个列表大小的方法
2015/07/11 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
Python中super函数的用法
2017/11/17 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
团干部培训方案
2014/06/03 职场文书
2014年个人委托书范本
2014/10/13 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
七个Python必备的GUI库
2021/04/27 Python
Redis数据结构之链表与字典的使用
2021/05/11 Redis