【问题标题】:Extract tensor shape as integers with unknown first dimension将张量形状提取为具有未知第一维的整数
【发布时间】:2021-07-24 01:43:48
【问题描述】:

我有一个函数,它将张量 X 作为输入。我想从第一维未知的张量中提取第二、第三和第四维大小:

我写了以下代码,但它不起作用:

x = Input(shape=(128, 128, 1))

def function1(x):
    sz = tf.shape(x)
    row = int(sz[1].numpy())
    col = int(sz[2].numpy())

我收到以下错误:

AttributeError: 'Tensor' object has no attribute 'numpy'

我也试过了:

sz = tf.TensorShape(x).as_list()

但错误是:

TypeError: Cannot iterate over a tensor with unknown first dimension.

我使用的是 TensorFlow 2.1

【问题讨论】:

  • 试试print(x.get_shape().as_list())
  • 有效!我实际上尝试了 get_shape 方法,但它给了我错误。我不记得我以前是如何称呼它的,但它现在可以工作了。谢谢

标签: python tensorflow keras tensor


【解决方案1】:

您可以使用get_shape()

print(x.get_shape().as_list())

【讨论】:

    【解决方案2】:

    您可以拨打x.shape:

    x = tf.keras.Input(shape=(128, 128, 1))
    
    n, row, col, channels = x.shape
    

    这是x.shape 返回的内容:

    TensorShape([None, 128, 128, 1])
    

    或者像这样:

    row, col, channels = x.shape[1:]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 2018-08-03
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 2018-04-24
      相关资源
      最近更新 更多