我需要理解卷积在下面的代码中是如何工作的,以及在每一层/每一步之后数组的形状是如何变化的。
在Conv 2D(32,3,1,...)中,32是过滤器的数量,但3和1是什么?
我认为我有一个n_rows(行数)和n_columns(列数)的表。此表将重新调整,以便将列转移到另一个维度(维度的数量增加)。
现在是2D卷积:每行用32个滤波器卷积,这一步后得到的矩阵形状是什么?卷积只发生在每个原始数据上,还是混合了多行数据?
Xc_train = X_train.reshape((n_rows, 1, n_cols, 1))
cnn = Sequential()
cnn.add(Convolution2D(32, 3, 1,
border_mode="same",
activation="relu",
input_shape=(1, n_cols, 1)))
cnn.add(Convolution2D(32, 3, 1, border_mode="same", activation="relu"))
1条答案
按热度按时间gev0vcfq1#
这是旧代码,Keras 1版本。
它应该更新到Keras 2以符合文档。
(n_images, n_rows, n_cols, n_channels)
使用
padding = 'same'
(旧代码中为border_mode
),图像大小不会改变。唯一改变的维度是通道维度。
所有卷积过滤器总是考虑所有输入通道,将它们混合在一起,并带来新的输出通道数量(这与密集层非常相似,除了你为整个图像,为每个像素做这件事)。