2016-03-27 2 views
15

я в настоящее время видит API из ФеаноКаково количество фильтров в CNN?

theano.tensor.nnet.conv2d(input, filters, input_shape=None, filter_shape=None, border_mode='valid', subsample=(1, 1), filter_flip=True, image_shape=None, **kwargs) 

где является кортежем (num_filter, num_channel, height, width), я путая об этом, потому что это не то, что число фильтра решается походкой, сдвигая окно фильтра на изображении? Как я могу указать номер фильтра именно так? Для меня было бы разумно, если он вычисляется по шагу параметра (если таковой имеется).

Кроме того, я смущен также с помощью карты функций терминов, являются ли они нейронами на каждом уровне? Как насчет размера партии? Как они соотносятся?

ответ

21

Число фильтров - количество нейронов, так как каждый нейрон выполняет различную свертку на входе в слой (точнее, весы в нейронах образуют ядра свертки).

Карта объектов - результат применения фильтра (таким образом, у вас столько карт-функций, что и фильтры), и его размер является результатом размера окна/ядра вашего фильтра и шага.

Следующее изображение было лучшее, что можно было найти, чтобы объяснить концепцию на высоком уровне: http://user-image.logdown.io/user/13673/blog/12890/post/302641/V21DnAAeTKiOirZRFKhT_dl2.png Обратите внимание, что 2 разные сверточные фильтры применяются к входному изображению, в результате чего в 2-х различных карт компонентов (выход фильтров) , Каждый пиксель каждой карты объектов является выходом сверточного слоя.

Например, если у вас есть 28x28 входных изображений и сверточный слой с 20 фильтрами 7x7 и шаг 1, вы получите 20 карт 22x22 функций на выходе этого слоя. Обратите внимание, что это отображается на следующий уровень как объем с width = height = 22 и depth = num_channels = 20. Вы можете использовать такое же представление для обучения CNN на RGB-изображениях, например, из набора данных CIFAR10, который будет 32x32x3 тома (свертка применяется только к 2 пространственным измерениям).

+0

Большое спасибо! Вы спасатель жизни! – xxx222

+1

Что касается этого предложения о выборе номера фильтра/ядра: «На самом деле для выравнивания вычислений на каждом уровне продукт количества функций и количества позиций пикселей обычно выбирается для грубой постоянной по уровням», приведенной в http: //deeplearning.net/tutorial/lenet.html. Не могли бы вы привести мне пример? – BetterEnglish

+1

Я думаю, что OP спрашивает, откуда пришли ваши 20 фильтров. Я имею в виду, почему 20? – agcala

Смежные вопросы