返回一个包含输入张量形状的张量。
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。