Skip to content

Commit 36163dc

Browse files
committed
Add experimental VGG-style resnet50 backbone.
1 parent b640680 commit 36163dc

File tree

1 file changed

+27
-3
lines changed
  • torchvision/models/detection

1 file changed

+27
-3
lines changed

torchvision/models/detection/ssd.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -587,12 +587,34 @@ def __init__(self, backbone: resnet.ResNet):
587587
backbone_out_channels = self.features[-1][-1].bn3.num_features
588588
extra = nn.ModuleList([
589589
nn.Sequential(
590-
nn.Conv2d(backbone_out_channels, 256, kernel_size=3, padding=1, stride=2, bias=False),
590+
nn.Conv2d(backbone_out_channels, 256, kernel_size=1, bias=False),
591+
nn.BatchNorm2d(256),
592+
nn.ReLU(inplace=True),
593+
nn.Conv2d(256, 512, kernel_size=3, padding=1, stride=2, bias=False),
594+
nn.BatchNorm2d(512),
595+
nn.ReLU(inplace=True),
596+
),
597+
nn.Sequential(
598+
nn.Conv2d(512, 128, kernel_size=1, bias=False),
599+
nn.BatchNorm2d(128),
600+
nn.ReLU(inplace=True),
601+
nn.Conv2d(128, 256, kernel_size=3, padding=1, stride=2, bias=False),
591602
nn.BatchNorm2d(256),
592603
nn.ReLU(inplace=True),
593604
),
594605
nn.Sequential(
595-
nn.Conv2d(256, 256, kernel_size=3, padding=1, stride=2, bias=False),
606+
nn.Conv2d(256, 128, kernel_size=1, bias=False),
607+
nn.BatchNorm2d(128),
608+
nn.ReLU(inplace=True),
609+
nn.Conv2d(128, 256, kernel_size=3, bias=False),
610+
nn.BatchNorm2d(256),
611+
nn.ReLU(inplace=True),
612+
),
613+
nn.Sequential(
614+
nn.Conv2d(256, 128, kernel_size=1, bias=False),
615+
nn.BatchNorm2d(128),
616+
nn.ReLU(inplace=True),
617+
nn.Conv2d(128, 256, kernel_size=2, bias=False),
596618
nn.BatchNorm2d(256),
597619
nn.ReLU(inplace=True),
598620
),
@@ -636,7 +658,9 @@ def ssd512_resnet50(pretrained: bool = False, progress: bool = True, num_classes
636658
pretrained_backbone = False
637659

638660
backbone = _resnet_extractor("resnet50", pretrained_backbone, trainable_backbone_layers)
639-
anchor_generator = DefaultBoxGenerator([[2], [2, 3], [2, 3], [2, 3], [2]], min_ratio=0.04)
661+
anchor_generator = DefaultBoxGenerator([[2], [2, 3], [2, 3], [2, 3], [2], [2], [2]],
662+
scales=[0.04, 0.1, 0.26, 0.42, 0.58, 0.74, 0.9, 1.06],
663+
steps=[8, 16, 32, 64, 128, 256, 512])
640664
model = SSD(backbone, anchor_generator, (512, 512), num_classes, **kwargs)
641665
if pretrained:
642666
weights_name = 'ssd512_resnet50_coco'

0 commit comments

Comments
 (0)