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编写的微博应用
Oct 17 Python
Python中encode()方法的使用简介
May 18 Python
Python中splitlines()方法的使用简介
May 20 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
Python类super()及私有属性原理解析
Jun 15 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 Python
python中的plt.cm.Paired用法说明
May 31 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 DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
基于jquery的tab切换 js原理
2010/04/01 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
Python3 修改默认环境的方法
2019/02/16 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
2014自荐信的写作技巧
2014/01/28 职场文书
大学专科自荐信
2014/06/17 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
四风之害观后感
2015/06/09 职场文书
大学生支教感言
2015/08/01 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js