【问题标题】:Arbitrary/unknown output shape of Tensorflow conv2d_transposeTensorflow conv2d_transpose 的任意/未知输出形状
【发布时间】:2016-12-01 17:43:45
【问题描述】:

假设我有一个不同高度的张量,即形状 [batch_size=32, height=None, width=25, n_channels=128]。我想用conv2d_transpose 操作对这个张量进行上采样,但我不确定如何生成所需的output_shape 参数。在已知高度的情况下,我会做类似的事情

def get_conv_transpose_shape(input, out_channels):
    out_shape = input.get_shape().as_list()
    out_shape[1] *= 2
    out_shape[2] *= 2
    out_shape[3] = out_channels
    return out_shape

但是当height=None时,会产生如下错误

TypeError: unsupported operand type(s) for *= 'NoneType' and 'int'

除了将我的所有输入零填充到标准尺寸之外,还有其他解决方案吗?这是我想避免的计算成本。

【问题讨论】:

  • 当你调用 .get_shape().as_list() 时,你最终会进入“python 领域”,试图将 Noneint 相乘.请尝试在符号域中进行操作,即将 tensorflow.get_shape(input) 与另一个浮点类型的符号变量相乘。
  • @rafaelvalle - 您能否将您的评论推广为答案?谢谢!

标签: python tensorflow conv-neural-network


【解决方案1】:

当您调用.get_shape().as_list() 时,您最终会进入“静态python 领域”,试图将Noneint 相乘。

该操作应在符号域中进行,即将tensorflow.get_shape(input)与另一个int类型的符号变量相乘。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    相关资源
    最近更新 更多