Я довольно новичок в 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
Есть ли какие-то шаги, которые мне не хватает ни для одного из них? Есть ли способы проверить входные и выходные формы каждого слоя и точно узнать, что происходит?
Спасибо.