Изменение размера ядра в сверточных нейронных сетях - PullRequest
0 голосов
/ 25 октября 2018

Я работал над созданием сверточной нейронной сети с нуля, и меня немного смущает вопрос о том, как обрабатывать размер ядра для скрытых сверточных слоев.Например, скажите, что у меня есть MNIST изображение как input (28 x 28) и пропустите его через следующие слои.

Сверточный слой с kernel_size = (5,5) с 32 выходными каналами

  • новое измерение пропускной способности = (32, 28, 28)

Макс. Уровень пула с pool_size (2,2) и шагом (2,2)

  • newизмерение пропускной способности = (32, 14, 14)

Если я сейчас хочу создать второй сверточный слой с размером ядра = (5x5) и 64 выходными каналами, как мне поступить?Значит ли это, что мне нужны только два новых фильтра (2 x 32 existing channels) или размер ядра изменится на (32 x 5 x 5), поскольку уже есть 32 входных канала?

Поскольку исходным вводом было двумерное изображение, я не знаю, как провести свертку для скрытого слоя, поскольку теперь ввод является трехмерным (32 x 14 x 14).

1 Ответ

0 голосов
/ 26 октября 2018

вам нужно 64 ядра, каждое с размером (32,5,5).

глубина (#channels) ядер, 32 в данном случае или 3 для изображения RGB, 1 для серой шкалы и т. Д., Всегда должны соответствовать глубине ввода, но значения все одинаковые.например, если у вас есть ядро ​​3x3, например: [-1 0 1;-2 0 2;-1 0 1] и теперь вы хотите свернуть его с входом с N в качестве глубины или сказать канал, вы просто копируете это ядро ​​3x3 N раз в 3-м измерении, следующая математикааналогично случаю с 1 каналом, вы суммируете все значения во всех N каналах, на которых в данный момент находится окно вашего ядра, после умножения на них значений ядра и получения значения только 1 записи или пикселя.так что в итоге вы получите матрицу с 1 каналом :) сколько глубины вы хотите, чтобы ваша матрица имела для следующего слоя?это количество ядер, которые вы должны применить.следовательно, в вашем случае это будет ядро ​​с таким размером (64 x 32 x 5 x 5), которое на самом деле составляет 64 ядра с 32 каналами для каждого и одинаковыми значениями 5x5 во всех каналах.

(«Я неочень уверенный говорящий по-английски надеюсь, что вы понимаете, что я сказал, было бы неплохо, если бы кто-то отредактировал это :) ")

...