Оптимальное количество фильтров в сверточной сети - PullRequest
0 голосов
/ 29 июня 2018

Я строю сверточную сетевую классификацию изображений, моя сеть вдохновлена ​​виртуальной сетью VGG, но я изменил количество слоев и фильтров на слои, потому что мой набор данных изображений довольно прост.

Тем не менее мне интересно, почему число фитлеров в VGG всегда равно степени 2: 64 -> 128 -> 256 -> 512 -> 4096

Я догадался, что это потому, что каждый пул делит выходной размер на 2 x 2, и поэтому хотелось бы умножить количество фильтров на 2.

Но мне все еще интересно, какова реальная причина этого выбора; это для оптимизации? это проще распределить расчет? И я должен сохранить эту логику в своей сети.

1 Ответ

0 голосов
/ 29 июня 2018

Да, это в основном для оптимизации. Если сеть собирается работать на графическом процессоре, потоки в графических процессорах объединяются в группы и блоки, обычно группа состоит из 32 потоков.

Грубо говоря, если у вас есть слой с 40 фильтрами, вам понадобится 2 группы = 64 потока. Так почему бы не использовать остальные потоки и создать слой из 64 фильтров, которые можно вычислять параллельно.

...