Уменьшает ли уровень maxpooling количество параметров в сети?

У меня определена простая сеть:

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, но почему обычно пишут, что слой max-pooling уменьшает количество параметров?


person vampiretap    schedule 26.11.2018    source источник


Ответы (1)


Какая сеть? Все зависит от тебя.

  • Слои Conv: нет
  • Dense layers:
    • Directly after Conv or Pooling:
      • With "channels_last": no
      • С Channels_first: да
    • После сглаживания слоев: да
    • После слоев GlobalPooling: нет

Ваша сеть: нет.

Пояснения

  • Пулы и глобальные пулы меняют размеры изображения, но не меняют количество каналов.
  • Conv-слои — это фильтры фиксированного размера, которые перемещаются по изображениям. Размер фильтра не зависит от размера изображения, поэтому изменений нет. Фильтры зависят от размера ядра и каналов
  • Dense layers work on the last dimension only.
    • If the last dimension is channels, the pooling layers don't affect it
    • Если последнее измерение является стороной изображения, оно затрагивается
  • Слои Flatten преобразуют размеры изображения и каналы в одно измерение.
person Daniel Möller    schedule 26.11.2018