函数原型:
tf.reshape(
tensor,
shape,
name=None
)
功能改变张量(tensor)的形状。
tensor
形参传入一个tensor。shape
传入一个向量,代表新tensor的维度数和每个维度的长度。如果传入[3,4,5]
,就会返回一个内含各分量数值和原传入张量一模一样的3*4*5尺寸的张量。
如果shape
传入的向量某一个分量设置为-1,比如[-1,4,5]
,那么这个分量代表的维度尺寸会被自动计算出来。
- 用法一,一个尺寸为1*9的张量转化为3*3的张量:
# 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]]
- 用法二,一个尺寸为3 * 2 * 3的张量,转换为第二个维度尺寸为9的张量,即n*9的张量:
reshape(t, [-1, 9]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],
[4, 4, 4, 5, 5, 5, 6, 6, 6]]
显然,n被计算为2。
- 用法三,仅含有单个元素的张量转化为标量:
t
为张量[7]
reshape(t, []) ==> 7