Почему num_output является параметром свертки? - PullRequest
0 голосов
/ 25 мая 2018

Предположим, что наше входное изображение передается в сверточный слой, как в sample caffe net :

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  .
  .
  .
  convolution_param {
    num_output: 96
    kernel_size: 11
    stride: 4
  }
  .
  .
  .
}

Как сеть может дать нам именно то количество выходов, которое мы хотим при использованииточно размер и шаг ядра свертки, что это дается?Разве размер ядра и шаг не должны уже определять количество выходных данных, которые мы получим (решения по модулю заполнения)?

Если у меня было изображение 5x5, сверните его с ядром 3x3, используя шаг 2 и заполнение нулями границы,тогда я ожидал бы получить вывод 3x3 от свертки.Но что, если я попрошу num_output: 5?Или num_output: 100?

1 Ответ

0 голосов
/ 25 мая 2018

После некоторых экспериментов выглядит, что этот параметр num_output фактически определяет, сколько раз вы сворачиваете ядро ​​с полным изображением (по крайней мере, в случае одноканального изображения).Так что на самом деле он вообще не взаимодействует со значениями ширины и высоты изображения и фильтрует.

...