【发布时间】:2018-04-13 15:30:17
【问题描述】:
我正在尝试使用 tensorflow 创建一个卷积变分自动编码器。在解码器中,我尝试使用tf.layers.conv2d_transpose 来执行上采样。但是,我无法理解如何匹配尺寸。例如,这是我的代码:
# shape: (-1, 26, 26, 32)
conv1 = tf.layers.conv2d(
image_batch,
filters=32,
kernel_size=3,
strides=1,
activation=tf.nn.relu)
# shape: (-1, 24, 24, 16)
conv2 = tf.layers.conv2d(
conv1,
filters=16,
kernel_size=3,
strides=1,
activation=tf.nn.relu)
#shape: (-1, 11, 11, 8)
conv3 = tf.layers.conv2d(
conv2,
filters=8,
kernel_size=3,
strides=2,
activation=tf.nn.relu)
#shape: (-1, 23, 23, 16)
deconv1 = tf.layers.conv2d_transpose(
conv3,
filters=16,
kernel_size=3,
strides=2)
#shape: (-1, 25, 25, 32)
deconv2 = tf.layers.conv2d_transpose(
deconv1,
filters=32,
kernel_size=3,
strides=1)
#shape: (-1, 27, 27, 1)
deconv3 = tf.layers.conv2d_transpose(
deconv2,
filters=1,
kernel_size=3,
strides=1)
```
我们可以看到尺寸不匹配。我应该使用任何数学公式来恢复正确的尺寸还是我的代码有问题?
【问题讨论】:
-
选中此项以获得正确的尺寸:cs231n.github.io/convolutional-networks。直接转到摘要部分。