0

我正在尝试使用过滤器大小为 2x2 的最大池层,因此我希望输出大小大约是输入大小的一半。输入大小为 9x14x64,但出于某种原因,输出大小为 7x12x64(请参阅随附的TensorBoard 图)。

这是TensorFlow代码:

layer = conv2d(layer, 64, 3, 2, activation_fn=None, scope="conv_2", name=name)
layer = max_pool2d(layer, 2, 1, scope="max_1", name=name)
layer = conv2d(layer, 32, 3, 1, activation_fn=None, scope="conv_3", name=name)

我错过了什么吗?

4

1 回答 1

0

看来您是 tensorflow 默认 data_format NHWC;但你的输入格式是NCHW. 因此,您需要将输入格式更改为NHWC

N -batch_size, H-height, W-width, C-num_channels 

注意:最大池仅更改height输入width特征图。不会有任何影响num_channels(输入和输出都相同)。

如果要更改通道数,则可以使用1x1卷积层,如下所示。

# 9 x 14 x 64
layer = max_pool2d(layer, 2, 2, scope="max_1", name=name, padding='SAME')
# output size 5x7x64
# to reduce num_channels use 1x1 conv
layer = conv2d(layer, 32, 1, 1, activation_fn=None, scope="conv_pool", name=name, padding='SAME')
# output size 5x7x32
于 2017-08-23T12:36:13.963 回答