Высокий и красивый маленький М подошел к двери второго этажа.Счастливый маленький М еще не знал, что с ним здесь произойдет.
См. код:pytorch-tutorial/vgg_model.py
написано на двериBackbone-VGGX 特征提取
Появляются три вариантаVGG-13
,VGG-16
,VGG-19
Доступен для выбора, Сяо М выбрал среднийVGG-16
После этого появляется строка описания: Этот уровень созданvgg-16
Окончательный пул и последующие полносвязные слои удалены, и архитектура выглядит следующим образом.
print(images.image_list.shape) # 输出 torch.Size([1, 3, 608, 1088])
# 将图像输入到 backbone 得到特征图
feature_maps = self.backbone(images.image_list)
print(feature_maps.shape) # 输出 torch.Size([1, 512, 38, 68])
Сяо М посмотрел на свое трехмерное высокое и красивое «я», прикидывая, кем он станет после прохождения через Backbone.
Видно, что каждый сверточный слой в VGG-16 сконфигурирован как
kernel_size = 3
stride = 1
padding = 1
Это означает, что после ядра свертки ширина и высота остаются неизменными ()
Конфигурация каждого слоя пула
kernel_size = 2
stride = 2
padding = 0
Это означает, что после каждого объединения ширина и высота становятся вдвое меньше исходных.
Всего есть 4 MaxPools, а ширина и высота становятся:
После того, как Сяо М закончил расчет, он узнал, что он станет 512-мерным, маленьким и коротким, поэтому он поколебался, но все же вошел.
...
...
Через какое-то время вышел Сяо М, и следующий уровень — самый сложный в легенде.RPN
.
512 * 38 * 68
Куда дальше пойдет маленькая М?