Какие входные формы требуются для классификатора, который использует предварительно обученную сеть (Pytorch)? - PullRequest
0 голосов
/ 12 марта 2020

Я довольно новичок в Deeplearning, python и Pytorch, поэтому, пожалуйста, потерпите меня!

Я пытаюсь понять Transfer Learning в Pytorch, используя две разные предварительно обученные сети: Vgg11 и Densenet121. Я пропустил данные формы (3 x 224 x 224) через часть «Features» вышеупомянутых сетей, и выходные формы имеют следующий вид:

Vgg11 имеет выходную форму: 512 x 7 x 7

Densenet121 имеет выходную форму: 1024 x 7 x7

Теперь я пытаюсь сделать свой собственный классификатор для использования вместо предварительно обученного. После проверки обоих предварительно обученных классификаторов я вижу, что классификатор Vgg11 имеет в первом слое:

(0): линейный (in_features = 25088, out_features = 4096, bias = True)

В то время как Densenet121 имеет в первом слое:

(классификатор): линейный (in_features = 1024, out_features = 1000, bias = True))

Vgg имеет смысл, так как если вы сгладите вывод части «features», вы получите 512 x 7 x 7 = 25 088.

Как у Dens enet one только 1024 измерения? Если вы сгладите выходную часть его «функций», вы получите 1024 x 7 x 7 = 50 176

Есть ли какие-то шаги, которые мне не хватает ни для одного из них? Есть ли способы проверить входные и выходные формы каждого слоя и точно узнать, что происходит?

Спасибо.

1 Ответ

1 голос
/ 12 марта 2020

Как указано в Таблице 1 на бумаге Денс eNet , Денс eNet -121 использует то, что называется Глобальное среднее объединение , что является экстремальным способом объединения, когда тензор размерностей d x h x w уменьшен до d x 1 x 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...