卷积神经网络中的维数

问题描述 投票:0回答:1

我正在阅读有关Keras卷积自动编码器的教程,我意识到在计算这些层之后我没有得到尺寸(8、4、4)-图像的尺寸应该在第二层之后已经降至3卷积层,因为步幅较大。那么它如何获得这个尺寸?还是有人可以解释计算过程?

我也对在这种情况下如何执行“相同”填充感到困惑,因为他们总是提到“当步幅= 1时,相同的填充将保持相同的尺寸”。我完全明白。但是,当跨度不是1时会发生什么?每边有多少个零?我知道尺寸floor((h + 2p-k)// s +1)的计算公式,但是在这种情况下p是多少?

谢谢

input_img = Input(shape=(1, 28, 28))

x = Convolution2D(16, 3, 3, activation='relu', border_mode='same')(input_img)
x = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
x = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
encoded = MaxPooling2D((2, 2), border_mode='same')(x)

# at this point the representation is (8, 4, 4) i.e. 128-dimensional
tensorflow keras cnn
1个回答
0
投票

哦,不,我想我知道会发生什么:本教程中的代码是错误的。我发现this question用正确的代码引用了同一教程。因此他们忘记了在所有Convolution2D图层中加上括号(它是翻译后的版本),而实际上应该为16(3、3),这意味着跨度为1,而不是3。因此可以解释。如果跨度为3,则无法获得此尺寸。

© www.soinside.com 2019 - 2024. All rights reserved.