maxpooling层会减少网络中的参数数量吗?

时间:2018-11-26 17:14:21

标签: keras conv-neural-network max-pooling

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

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,但是为什么通常这样写:最大池层减少了参数数量?

1 个答案:

答案 0 :(得分:0)

哪种网络?全取决于你。

  • 转化层:否
  • 致密层:
    • 在转化或合并后立即:
      • 使用“ channels_last”:否
      • 使用“ channels_first”:是
    • 展平图层后:是
    • 在GlobalPooling层之后:否

您的网络:否。

说明

  • Poolings和GlobalPoolings更改图像大小,但不更改通道数
  • Conv层是固定大小的滤镜,它们沿着图像跨步。滤镜大小与图像大小无关,因此没有变化。过滤器取决于内核大小和通道
  • 密集层仅在最后一个维度上起作用。
    • 如果最后一个维度是渠道,则池化层不会对其产生影响
    • 如果最后一个尺寸是图像面,则将受到影响
  • 平层将图像大小和通道转换为一个维度。