1. 程式人生 > >詳解tf.reshape

詳解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