@@ -35,26 +35,37 @@ def _cfg(url='', **kwargs):
3535default_cfgs = {
3636 # ResNet and Wide ResNet
3737 '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' ),
3841 'resnet34' : _cfg (
3942 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' ),
4046 'resnet26' : _cfg (
4147 url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet26-9aa10e23.pth' ,
4248 interpolation = 'bicubic' ),
4349 'resnet26d' : _cfg (
4450 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' ),
4752 'resnet50' : _cfg (
4853 url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet50_ram-a26f946b.pth' ,
4954 interpolation = 'bicubic' ),
5055 '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' ),
5665 'tv_resnet34' : _cfg (url = 'https://download.pytorch.org/models/resnet34-333f7ec4.pth' ),
5766 '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' ),
5869 'wide_resnet50_2' : _cfg (
5970 url = 'https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/wide_resnet50_racm-8234f177.pth' ,
6071 interpolation = 'bicubic' ),
@@ -613,6 +624,15 @@ def resnet18(pretrained=False, **kwargs):
613624 return _create_resnet ('resnet18' , pretrained , ** model_args )
614625
615626
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+
616636@register_model
617637def resnet34 (pretrained = False , ** kwargs ):
618638 """Constructs a ResNet-34 model.
@@ -621,6 +641,15 @@ def resnet34(pretrained=False, **kwargs):
621641 return _create_resnet ('resnet34' , pretrained , ** model_args )
622642
623643
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+
624653@register_model
625654def resnet26 (pretrained = False , ** kwargs ):
626655 """Constructs a ResNet-26 model.
@@ -631,8 +660,7 @@ def resnet26(pretrained=False, **kwargs):
631660
632661@register_model
633662def 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.
636664 """
637665 model_args = dict (block = Bottleneck , layers = [2 , 2 , 2 , 2 ], stem_width = 32 , stem_type = 'deep' , avg_down = True , ** kwargs )
638666 return _create_resnet ('resnet26d' , pretrained , ** model_args )
@@ -655,6 +683,14 @@ def resnet50d(pretrained=False, **kwargs):
655683 return _create_resnet ('resnet50d' , pretrained , ** model_args )
656684
657685
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+
658694@register_model
659695def resnet101 (pretrained = False , ** kwargs ):
660696 """Constructs a ResNet-101 model.
@@ -663,6 +699,14 @@ def resnet101(pretrained=False, **kwargs):
663699 return _create_resnet ('resnet101' , pretrained , ** model_args )
664700
665701
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+
666710@register_model
667711def resnet152 (pretrained = False , ** kwargs ):
668712 """Constructs a ResNet-152 model.
@@ -671,6 +715,32 @@ def resnet152(pretrained=False, **kwargs):
671715 return _create_resnet ('resnet152' , pretrained , ** model_args )
672716
673717
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+
674744@register_model
675745def tv_resnet34 (pretrained = False , ** kwargs ):
676746 """Constructs a ResNet-34 model with original Torchvision weights.
@@ -687,6 +757,22 @@ def tv_resnet50(pretrained=False, **kwargs):
687757 return _create_resnet ('tv_resnet50' , pretrained , ** model_args )
688758
689759
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+
690776@register_model
691777def wide_resnet50_2 (pretrained = False , ** kwargs ):
692778 """Constructs a Wide ResNet-50-2 model.
0 commit comments