TensorFlow的reshape操作 tf.reshape的实现
作者:Ai_践行者 时间:2022-03-31 01:14:13
初学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]])
来源:https://blog.csdn.net/qq_41424519/article/details/81778984
标签:TensorFlow,reshape,tf.reshape
0
投稿
猜你喜欢
JavaScript数据库TaffyDB用法实例分析
2024-01-25 01:16:25
Mysql使用Describe命令判断字段是否存在
2011-04-25 18:27:00
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2021-12-23 11:46:11
Python入门学习之字符串与比较运算符
2023-10-14 22:09:40
window环境配置Mysql 5.7.21 windowx64.zip免安装版教程详解
2024-01-24 01:19:00
python列表中常见的一些排序方法
2023-08-17 08:48:45
使用IDLE的Python shell窗口实例详解
2021-04-15 16:49:09
Python Celery异步任务队列使用方法解析
2023-05-18 02:34:53
推荐技术人员一款Python开源库(造数据神器)
2023-11-10 19:57:45
IE8的一些CSS hack
2008-03-17 13:08:00
几行Python代码爬取3000+上市公司的信息
2022-11-17 22:04:09
打造“前端开发”程序员专用版EditPlus
2009-01-05 13:04:00
Python jieba结巴分词原理及用法解析
2023-08-29 17:43:36
Python素数检测实例分析
2021-05-22 02:11:41
Python 读取串口数据,动态绘图的示例
2021-11-15 19:36:24
省市县三级联动的SQL语句
2024-01-12 14:51:52
JSONLINT:python的json数据验证库实例解析
2022-08-13 21:53:01
Python中的异常处理讲解
2023-01-29 11:22:57
使用MYSQL TIMESTAMP字段进行时间加减运算问题
2024-01-13 12:24:29
python 密码加密与解密的实现
2023-07-31 04:32:38