0

我正在尝试使用tf.nn.conv3d_transpose,但是,我收到一个错误,表明我的过滤器和输出形状不兼容。

  • 我有一个大小为 [1,16,16,4,192] 的张量
  • 我正在尝试使用 [1,1,1,192,192] 的过滤器
  • 我相信输出形状将是 [1,16,16,4,192]
  • 我正在使用“相同”的填充和 1 的步幅。

最终,我希望输出形状为 [1,32,32,7,“没关系”],但我试图先让一个简单的案例起作用。

由于这些张量在常规卷积中是兼容的,我相信相反的反卷积也是可能的。

为什么不可能对这些张量进行反卷积。我能否获得一个有效滤波器大小和输出形状的示例,用于对形状 [1,16,16,4,192] 的张量进行反卷积

谢谢你。

4

1 回答 1

1
  • 我有一个大小为 [1,16,16,4,192] 的张量
  • 我正在尝试使用 [1,1,1,192,192] 的过滤器
  • 我相信输出形状将是 [1,16,16,4,192]
  • 我正在使用“相同”的填充和 1 的步幅。

是的,输出形状将是 [1,16,16,4,192]

这是一个显示尺寸兼容的简单示例:

import tensorflow as tf

i = tf.Variable(tf.constant(1., shape=[1, 16, 16, 4, 192]))

w = tf.Variable(tf.constant(1., shape=[1, 1, 1, 192, 192]))

o = tf.nn.conv3d_transpose(i, w, [1, 16, 16, 4, 192], strides=[1, 1, 1, 1, 1])

print(o.get_shape())

除了尺寸之外,您的实现中肯定还有其他问题。

于 2017-10-13T18:28:26.607 回答