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类定义和类继承详解
May 08 Python
Python单链表简单实现代码
Apr 27 Python
python僵尸进程产生的原因
Jul 21 Python
Python continue继续循环用法总结
Jun 10 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
python创建n行m列数组示例
Dec 02 Python
python3下pygame如何实现显示中文
Jan 11 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 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
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
javascript 函数使用说明
2010/04/07 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
Vue实现验证码功能
2019/12/03 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
Python 多维List创建的问题小结
2019/01/18 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
使用K.function()调试keras操作
2020/06/17 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
上课不认真检讨书
2014/09/17 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书