當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.shape用法及代碼示例


返回一個包含輸入張量形狀的張量。

用法

tf.shape(
    input, out_type=tf.dtypes.int32, name=None
)

參數

  • input 一個 TensorSparseTensor
  • out_type (可選)操作的指定輸出類型(int32int64)。默認為 tf.int32
  • name 操作的名稱(可選)。

返回

  • Tensor 類型為 out_type

另見tf.sizetf.rank

tf.shape 返回一個表示 input 形狀的一維整數張量。對於標量輸入,返回的張量的形狀為 (0,),其值為空向量(即 [])。

例如:

tf.shape(1.)
<tf.Tensor:shape=(0,), dtype=int32, numpy=array([], dtype=int32)>
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
tf.shape(t)
<tf.Tensor:shape=(3,), dtype=int32, numpy=array([2, 2, 3], dtype=int32)>

注意:使用符號張量時,例如使用 Keras API 時,tf.shape() 將返回符號張量的形狀。

a = tf.keras.layers.Input((None, 10))
tf.shape(a)
<... shape=(3,) dtype=int32...>

在這些情況下,使用tf.Tensor.shape 將返回更多信息結果。

a.shape
TensorShape([None, None, 10])

(第一個 None 代表目前未知的批量大小。)

tf.shapeTensor.shape 在 Eager 模式下應該相同。在tf.functioncompat.v1 上下文中,直到執行時間才可能知道所有維度。因此,在為圖形模式定義自定義層和模型時,更喜歡動態的 tf.shape(x) 而不是靜態的 x.shape

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.shape。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。