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]
# -1can also be used to infer the shape
# -1is inferred to be9:
reshape(t, [2, -1]) ==>[[1, 1, 1, 2, 2, 2, 3, 3, 3],
[4, 4, 4, 5, 5, 5, 6, 6, 6]]
# -1is inferred to be2:
reshape(t, [-1,9]) ==>[[1, 1, 1, 2, 2, 2, 3, 3, 3],
[4, 4, 4, 5, 5, 5, 6, 6, 6]]
# -1is inferred to be3:
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
本文详细介绍了 TensorFlow 中 reshape 函数的功能与用法,包括如何使用-1来自动推导维度大小,以及通过实例展示了如何将张量转换为不同的形状。
1434

被折叠的 条评论
为什么被折叠?



