当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。