具有张量流的解卷积/ Transpose_Convolutions

时间:2017-10-05 16:47:57

标签: tensorflow conv-neural-network deconvolution

我正在尝试使用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]

谢谢。

1 个答案:

答案 0 :(得分: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())

您的实施中必定存在其他问题而不是尺寸。