返回一個包含輸入張量形狀的張量。
用法
tf.shape(
input, out_type=tf.dtypes.int32, name=None
)
參數
-
input
一個Tensor
或SparseTensor
。 -
out_type
(可選)操作的指定輸出類型(int32
或int64
)。默認為tf.int32
。 -
name
操作的名稱(可選)。
返回
-
Tensor
類型為out_type
。
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.shape
和 Tensor.shape
在 Eager 模式下應該相同。在tf.function
或compat.v1
上下文中,直到執行時間才可能知道所有維度。因此,在為圖形模式定義自定義層和模型時,更喜歡動態的 tf.shape(x)
而不是靜態的 x.shape
。
相關用法
- Python tf.summary.scalar用法及代碼示例
- Python tf.strings.substr用法及代碼示例
- Python tf.strings.reduce_join用法及代碼示例
- Python tf.sparse.cross用法及代碼示例
- Python tf.sparse.mask用法及代碼示例
- Python tf.strings.regex_full_match用法及代碼示例
- Python tf.sparse.split用法及代碼示例
- Python tf.strings.regex_replace用法及代碼示例
- Python tf.signal.overlap_and_add用法及代碼示例
- Python tf.strings.length用法及代碼示例
- Python tf.strided_slice用法及代碼示例
- Python tf.sparse.to_dense用法及代碼示例
- Python tf.strings.bytes_split用法及代碼示例
- Python tf.summary.text用法及代碼示例
- Python tf.sparse.expand_dims用法及代碼示例
- Python tf.signal.frame用法及代碼示例
- Python tf.scatter_nd用法及代碼示例
- Python tf.sparse.maximum用法及代碼示例
- Python tf.signal.linear_to_mel_weight_matrix用法及代碼示例
- Python tf.strings.as_string用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.shape。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。