@@ -35,26 +35,37 @@ def _cfg(url='', **kwargs):
35
35
default_cfgs = {
36
36
# ResNet and Wide ResNet
37
37
'resnet18' : _cfg (url = 'https://download.pytorch.org/models/resnet18-5c106cde.pth' ),
38
+ 'resnet18d' : _cfg (
39
+ url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet18d_ra2-48a79e06.pth' ,
40
+ interpolation = 'bicubic' , first_conv = 'conv1.0' ),
38
41
'resnet34' : _cfg (
39
42
url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet34-43635321.pth' ),
43
+ 'resnet34d' : _cfg (
44
+ url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet34d_ra2-f8dcfcaf.pth' ,
45
+ interpolation = 'bicubic' , first_conv = 'conv1.0' ),
40
46
'resnet26' : _cfg (
41
47
url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet26-9aa10e23.pth' ,
42
48
interpolation = 'bicubic' ),
43
49
'resnet26d' : _cfg (
44
50
url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet26d-69e92c46.pth' ,
45
- interpolation = 'bicubic' ,
46
- first_conv = 'conv1.0' ),
51
+ interpolation = 'bicubic' , first_conv = 'conv1.0' ),
47
52
'resnet50' : _cfg (
48
53
url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet50_ram-a26f946b.pth' ,
49
54
interpolation = 'bicubic' ),
50
55
'resnet50d' : _cfg (
51
- url = '' ,
52
- interpolation = 'bicubic' ,
53
- first_conv = 'conv1.0' ),
54
- 'resnet101' : _cfg (url = 'https://download.pytorch.org/models/resnet101-5d3b4d8f.pth' ),
55
- 'resnet152' : _cfg (url = 'https://download.pytorch.org/models/resnet152-b121ed2d.pth' ),
56
+ url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet50d_ra2-464e36ba.pth' ,
57
+ interpolation = 'bicubic' , first_conv = 'conv1.0' ),
58
+ 'resnet66d' : _cfg (url = '' , interpolation = 'bicubic' , first_conv = 'conv1.0' ),
59
+ 'resnet101' : _cfg (url = '' , interpolation = 'bicubic' ),
60
+ 'resnet101d' : _cfg (url = '' , interpolation = 'bicubic' , first_conv = 'conv1.0' ),
61
+ 'resnet152' : _cfg (url = '' , interpolation = 'bicubic' ),
62
+ 'resnet152d' : _cfg (url = '' , interpolation = 'bicubic' , first_conv = 'conv1.0' ),
63
+ 'resnet200' : _cfg (url = '' , interpolation = 'bicubic' ),
64
+ 'resnet200d' : _cfg (url = '' , interpolation = 'bicubic' , first_conv = 'conv1.0' ),
56
65
'tv_resnet34' : _cfg (url = 'https://download.pytorch.org/models/resnet34-333f7ec4.pth' ),
57
66
'tv_resnet50' : _cfg (url = 'https://download.pytorch.org/models/resnet50-19c8e357.pth' ),
67
+ 'tv_resnet101' : _cfg (url = 'https://download.pytorch.org/models/resnet101-5d3b4d8f.pth' ),
68
+ 'tv_resnet152' : _cfg (url = 'https://download.pytorch.org/models/resnet152-b121ed2d.pth' ),
58
69
'wide_resnet50_2' : _cfg (
59
70
url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/wide_resnet50_racm-8234f177.pth' ,
60
71
interpolation = 'bicubic' ),
@@ -613,6 +624,15 @@ def resnet18(pretrained=False, **kwargs):
613
624
return _create_resnet ('resnet18' , pretrained , ** model_args )
614
625
615
626
627
+ @register_model
628
+ def resnet18d (pretrained = False , ** kwargs ):
629
+ """Constructs a ResNet-18-D model.
630
+ """
631
+ model_args = dict (
632
+ block = BasicBlock , layers = [2 , 2 , 2 , 2 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
633
+ return _create_resnet ('resnet18d' , pretrained , ** model_args )
634
+
635
+
616
636
@register_model
617
637
def resnet34 (pretrained = False , ** kwargs ):
618
638
"""Constructs a ResNet-34 model.
@@ -621,6 +641,15 @@ def resnet34(pretrained=False, **kwargs):
621
641
return _create_resnet ('resnet34' , pretrained , ** model_args )
622
642
623
643
644
+ @register_model
645
+ def resnet34d (pretrained = False , ** kwargs ):
646
+ """Constructs a ResNet-34-D model.
647
+ """
648
+ model_args = dict (
649
+ block = BasicBlock , layers = [3 , 4 , 6 , 3 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
650
+ return _create_resnet ('resnet34d' , pretrained , ** model_args )
651
+
652
+
624
653
@register_model
625
654
def resnet26 (pretrained = False , ** kwargs ):
626
655
"""Constructs a ResNet-26 model.
@@ -631,8 +660,7 @@ def resnet26(pretrained=False, **kwargs):
631
660
632
661
@register_model
633
662
def resnet26d (pretrained = False , ** kwargs ):
634
- """Constructs a ResNet-26 v1d model.
635
- This is technically a 28 layer ResNet, sticking with 'd' modifier from Gluon for now.
663
+ """Constructs a ResNet-26-D model.
636
664
"""
637
665
model_args = dict (block = Bottleneck , layers = [2 , 2 , 2 , 2 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
638
666
return _create_resnet ('resnet26d' , pretrained , ** model_args )
@@ -655,6 +683,14 @@ def resnet50d(pretrained=False, **kwargs):
655
683
return _create_resnet ('resnet50d' , pretrained , ** model_args )
656
684
657
685
686
+ @register_model
687
+ def resnet66d (pretrained = False , ** kwargs ):
688
+ """Constructs a ResNet-66-D model.
689
+ """
690
+ model_args = dict (block = BasicBlock , layers = [3 , 4 , 23 , 3 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
691
+ return _create_resnet ('resnet66d' , pretrained , ** model_args )
692
+
693
+
658
694
@register_model
659
695
def resnet101 (pretrained = False , ** kwargs ):
660
696
"""Constructs a ResNet-101 model.
@@ -663,6 +699,14 @@ def resnet101(pretrained=False, **kwargs):
663
699
return _create_resnet ('resnet101' , pretrained , ** model_args )
664
700
665
701
702
+ @register_model
703
+ def resnet101d (pretrained = False , ** kwargs ):
704
+ """Constructs a ResNet-101-D model.
705
+ """
706
+ model_args = dict (block = Bottleneck , layers = [3 , 4 , 23 , 3 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
707
+ return _create_resnet ('resnet101d' , pretrained , ** model_args )
708
+
709
+
666
710
@register_model
667
711
def resnet152 (pretrained = False , ** kwargs ):
668
712
"""Constructs a ResNet-152 model.
@@ -671,6 +715,32 @@ def resnet152(pretrained=False, **kwargs):
671
715
return _create_resnet ('resnet152' , pretrained , ** model_args )
672
716
673
717
718
+ @register_model
719
+ def resnet152d (pretrained = False , ** kwargs ):
720
+ """Constructs a ResNet-152-D model.
721
+ """
722
+ model_args = dict (
723
+ block = Bottleneck , layers = [3 , 8 , 36 , 3 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
724
+ return _create_resnet ('resnet152d' , pretrained , ** model_args )
725
+
726
+
727
+ @register_model
728
+ def resnet200 (pretrained = False , ** kwargs ):
729
+ """Constructs a ResNet-200 model.
730
+ """
731
+ model_args = dict (block = Bottleneck , layers = [3 , 24 , 36 , 3 ], ** kwargs )
732
+ return _create_resnet ('resnet200' , pretrained , ** model_args )
733
+
734
+
735
+ @register_model
736
+ def resnet200d (pretrained = False , ** kwargs ):
737
+ """Constructs a ResNet-200-D model.
738
+ """
739
+ model_args = dict (
740
+ block = Bottleneck , layers = [3 , 24 , 36 , 3 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
741
+ return _create_resnet ('resnet200d' , pretrained , ** model_args )
742
+
743
+
674
744
@register_model
675
745
def tv_resnet34 (pretrained = False , ** kwargs ):
676
746
"""Constructs a ResNet-34 model with original Torchvision weights.
@@ -687,6 +757,22 @@ def tv_resnet50(pretrained=False, **kwargs):
687
757
return _create_resnet ('tv_resnet50' , pretrained , ** model_args )
688
758
689
759
760
+ @register_model
761
+ def tv_resnet101 (pretrained = False , ** kwargs ):
762
+ """Constructs a ResNet-101 model w/ Torchvision pretrained weights.
763
+ """
764
+ model_args = dict (block = Bottleneck , layers = [3 , 4 , 23 , 3 ], ** kwargs )
765
+ return _create_resnet ('tv_resnet101' , pretrained , ** model_args )
766
+
767
+
768
+ @register_model
769
+ def tv_resnet152 (pretrained = False , ** kwargs ):
770
+ """Constructs a ResNet-152 model w/ Torchvision pretrained weights.
771
+ """
772
+ model_args = dict (block = Bottleneck , layers = [3 , 8 , 36 , 3 ], ** kwargs )
773
+ return _create_resnet ('tv_resnet152' , pretrained , ** model_args )
774
+
775
+
690
776
@register_model
691
777
def wide_resnet50_2 (pretrained = False , ** kwargs ):
692
778
"""Constructs a Wide ResNet-50-2 model.
0 commit comments