详解tf.reshape

函数原型:

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

猜你喜欢

转载自blog.csdn.net/SangrealLilith/article/details/80285229