Keras CNN 架构

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

我需要了解以下代码中卷积的工作原理以及每层/步骤后数组的形状如何变化

在 Conv2D(32,3,1,...) 32 是滤波器的数量,但是 3 和 1 是多少?

我认为我有一个包含 n_rows (行数)和 n_cols (列数)的表。该表已重新调整形状,以便列转移到另一个维度(维度数增加)。

现在是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"))
python keras deep-learning
1个回答
0
投票

这是旧代码,Keras 1 版本。

应该更新到 Keras 2 以符合文档。

  • 数字 3 和 1 是滤镜的大小,即 3 x 1 像素。
  • 输入数据的形状应为
    (n_images, n_rows, n_cols, n_channels)

使用

padding = 'same'
(旧代码中为
border_mode
),图像尺寸不会改变。

唯一改变的维度是通道维度。

所有卷积滤波器始终考虑所有输入通道,将它们混合在一起并带来新数量的输出通道(这与密集层的做法非常相似,只不过您是针对整个图像的每个像素执行此操作) 。

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