Последние слои фк в VGG16 - PullRequest
0 голосов
/ 17 мая 2019

Архитектура VGG16 имеет вход: 224x224x3 изображения. Я хочу иметь входы 48x48x3, но чтобы сделать это в кератах, мы удалим последние слои fc, которые имеют 4096 нейронов каждый. Почему мы должны это сделать?и нужно ли добавить еще один размер слоев fc для этого ввода?

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Конечный слой пула VGG16 имеет размерность 7x7x512 для 224x224 входного изображения. Оттуда VGG16 использует полностью связанный слой (7x7x512)x4096, чтобы получить 4096 размерный вывод. Однако, поскольку ваш входной размер отличается от другого, размер выходного объекта и конечный слой пула также будут другими (я думаю, 2x2x512). Поэтому вам нужно изменить размер матрицы для полностью связанного слоя, чтобы он работал. У вас есть два других варианта, хотя

  1. используйте глобальный средний пул по пространственному измерению, чтобы получить 512 размерный элемент, а затем используйте несколько полностью связанных слоев, чтобы получить количество классов.
  2. Измените размер входного изображения до 224x224x3, и вам не нужно ничего менять в архитектуре модели.
0 голосов
/ 17 мая 2019

Удаление последних слоев FC предназначено для тонкой настройки или передачи обучения, когда вы адаптируете существующую сеть к новой проблеме, такой как изменение количества категорий, которые может выбрать ваш классификатор.

Вы настраиваете сеть на вход другого размера, поэтому вам необходимо настроить первый (ые) слой (и) сети.

...