我的问题是关于转置卷积操作(通常也称为反卷积或上卷积)。例如,在 TensorFlow 中,我指的是这一层。
我的问题是,在应用这一层时,我们如何/何时添加偏置(截距)项?
当使用“常规”卷积时,我们这样做:
conv_output = tf.nn.conv2d(input, kernel, strides, padding='VALID')
conv_output = tf.nn.bias_add(conv_output, bias)
在应用反卷积层时我们如何做到这一点?我的困惑出现了,因为我的顾问告诉我将上卷积可视化为伪逆卷积层(在卷积对输入进行下采样,而转置卷积对其进行上采样的意义上是逆的。我知道它们在数学上不是逆的。)
按照他的说法:
正则卷积:conv = x.w + b
转置卷积:(x = (conv - b).W其中 w 和 W 不相同)。
上面的等式是否正确?有些事情让我感到不安。
在这种情况下,既然我们正在“倒退”,我们是否应该这样做:
deconv_output = tf.nn.bias_add(input, -1 * bias)
deconv_output = tf.nn.conv2d_transpose(deconv_output, kernel, strides, padding='VALID')
或者我们应该在应用转置卷积之后添加偏差,就像我们在“常规”卷积中所做的那样?