1

我定义了一个简单的网络:

model = Sequential()
model.add(Conv1D(5, 3, activation='relu', input_shape=(10, 1),name="conv1",padding="same"))
model.add(MaxPooling1D())
model.add(Conv1D(5, 3, activation='relu',name="conv2",padding="same"))
model.add(MaxPooling1D())
model.add(Dense(1, activation='relu',name="dense1"))
model.compile(loss='mse', optimizer='rmsprop')

层的形状如下:

conv1-(None, 10, 5)

max1-(None, 5, 5)

conv2-(None,5,5)

max2-(None,2,5)

dense1-(None,2,1)

该模型共有 106 个参数,但是如果我删除最大池化层,则模型摘要如下所示:

conv1-(None, 10, 5) 

conv2-(None,10,5)

dense1-(None,10,1)

在这两种情况下,总参数仍然是 106,但为什么通常会写最大池化层减少参数数量?

4

1 回答 1

1

什么样的网络?全取决于你。

  • 转换层:没有
  • 密集层:
    • 紧接在 Conv 或 Pooling 之后:
      • 使用“channels_last”:否
      • 使用“channels_first”:是
    • 展平图层后:是
    • GlobalPooling 层后:否

您的网络:没有。

解释

  • Poolings 和 GlobalPoolings 改变图像大小,但不改变通道数
  • 卷积层是固定大小的过滤器,沿着图像移动。过滤器大小与图像大小无关,因此没有变化。过滤器取决于内核大小和通道
  • 密集层仅在最后一个维度上起作用。
    • 如果最后一个维度是通道,则池化层不会影响它
    • 如果最后一个维度是图像侧,它会受到影响
  • 展平层将图像大小和通道转换为单一维度。
于 2018-11-26T17:20:52.753 回答