【发布时间】: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 领域”,试图将 None 与 int 相乘.请尝试在符号域中进行操作,即将 tensorflow.get_shape(input) 与另一个浮点类型的符号变量相乘。
-
@rafaelvalle - 您能否将您的评论推广为答案?谢谢!
标签: python tensorflow conv-neural-network