From 82f4f3d3804a2ab8db6d79540be58284de6ccd27 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 15:23:41 +0100 Subject: [PATCH 01/35] Reinstate and deprecate `model_urls` and `quant_model_urls` --- torchvision/models/_utils.py | 18 +++++++++++++++--- torchvision/models/mobilenetv2.py | 10 ++++++++++ torchvision/models/quantization/mobilenetv2.py | 11 +++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/torchvision/models/_utils.py b/torchvision/models/_utils.py index 08c878a8a67..c565f611999 100644 --- a/torchvision/models/_utils.py +++ b/torchvision/models/_utils.py @@ -134,7 +134,8 @@ def wrapper(*args: Any, **kwargs: Any) -> D: keyword_only_kwargs = dict(zip(keyword_only_params, keyword_only_args)) warnings.warn( f"Using {sequence_to_str(tuple(keyword_only_kwargs.keys()), separate_last='and ')} as positional " - f"parameter(s) is deprecated. Please use keyword parameter(s) instead." + f"parameter(s) is deprecated since 0.13 and will be removed in 0.15. Please use keyword parameter(s) " + f"instead." ) kwargs.update(keyword_only_kwargs) @@ -205,11 +206,13 @@ def inner_wrapper(*args: Any, **kwargs: Any) -> M: if not pretrained_positional: warnings.warn( - f"The parameter '{pretrained_param}' is deprecated, please use '{weights_param}' instead." + f"The parameter '{pretrained_param}' is deprecated since 0.13 and will be removed in 0.15, " + f"please use '{weights_param}' instead." ) msg = ( - f"Arguments other than a weight enum or `None` for '{weights_param}' are deprecated. " + f"Arguments other than a weight enum or `None` for '{weights_param}' are deprecated since 0.13 and " + f"will be removed in 0.15. " f"The current behavior is equivalent to passing `{weights_param}={default_weights_arg}`." ) if pretrained_arg: @@ -242,3 +245,12 @@ def _ovewrite_value_param(param: Optional[V], new_value: V) -> V: if param != new_value: raise ValueError(f"The parameter '{param}' expected value {new_value} but got {param} instead.") return new_value + + +class _ModelURLs(dict): + def __getitem__(self, item): + warnings.warn( + "Accessing the model URLs via the internal dictionary of the module is deprecated since 0.13 and will " + "be removed in 0.15. Please access them via the appropriate Weights Enum instead." + ) + return super().__getitem__(item) diff --git a/torchvision/models/mobilenetv2.py b/torchvision/models/mobilenetv2.py index ab7b69ed005..cf0329ffd5f 100644 --- a/torchvision/models/mobilenetv2.py +++ b/torchvision/models/mobilenetv2.py @@ -263,3 +263,13 @@ def mobilenet_v2( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "mobilenet_v2": MobileNet_V2_Weights.IMAGENET1K_V1.url, + } +) diff --git a/torchvision/models/quantization/mobilenetv2.py b/torchvision/models/quantization/mobilenetv2.py index bb0bf0b79ed..9fb62fb0384 100644 --- a/torchvision/models/quantization/mobilenetv2.py +++ b/torchvision/models/quantization/mobilenetv2.py @@ -131,3 +131,14 @@ def mobilenet_v2( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +from .._utils import _ModelURLs +from ..mobilenetv2 import model_urls # noqa: F401 + + +quant_model_urls = _ModelURLs( + { + "mobilenet_v2_qnnpack": MobileNet_V2_QuantizedWeights.IMAGENET1K_QNNPACK_V1.url, + } +) From 9f4d9b56f22824b1cf783ac7096174a35f1b6a0d Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 16:24:17 +0100 Subject: [PATCH 02/35] Apply suggestions from code review Co-authored-by: Nicolas Hug --- torchvision/models/_utils.py | 1 + torchvision/models/mobilenetv2.py | 1 + torchvision/models/quantization/mobilenetv2.py | 1 + 3 files changed, 3 insertions(+) diff --git a/torchvision/models/_utils.py b/torchvision/models/_utils.py index c565f611999..da754b776fd 100644 --- a/torchvision/models/_utils.py +++ b/torchvision/models/_utils.py @@ -247,6 +247,7 @@ def _ovewrite_value_param(param: Optional[V], new_value: V) -> V: return new_value +# TODO: Remove for 0.15 class _ModelURLs(dict): def __getitem__(self, item): warnings.warn( diff --git a/torchvision/models/mobilenetv2.py b/torchvision/models/mobilenetv2.py index cf0329ffd5f..8e0b89324e6 100644 --- a/torchvision/models/mobilenetv2.py +++ b/torchvision/models/mobilenetv2.py @@ -268,6 +268,7 @@ def mobilenet_v2( from ._utils import _ModelURLs +# TODO: Remove for 0.15 model_urls = _ModelURLs( { "mobilenet_v2": MobileNet_V2_Weights.IMAGENET1K_V1.url, diff --git a/torchvision/models/quantization/mobilenetv2.py b/torchvision/models/quantization/mobilenetv2.py index 9fb62fb0384..354ee083cbd 100644 --- a/torchvision/models/quantization/mobilenetv2.py +++ b/torchvision/models/quantization/mobilenetv2.py @@ -137,6 +137,7 @@ def mobilenet_v2( from ..mobilenetv2 import model_urls # noqa: F401 +# TODO: Remove for 0.15 quant_model_urls = _ModelURLs( { "mobilenet_v2_qnnpack": MobileNet_V2_QuantizedWeights.IMAGENET1K_QNNPACK_V1.url, From d4e406a282222a11b826980206bca2aab64c27ed Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 16:31:12 +0100 Subject: [PATCH 03/35] Move todo location --- torchvision/models/mobilenetv2.py | 2 +- torchvision/models/quantization/mobilenetv2.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/torchvision/models/mobilenetv2.py b/torchvision/models/mobilenetv2.py index 8e0b89324e6..2fdd170d897 100644 --- a/torchvision/models/mobilenetv2.py +++ b/torchvision/models/mobilenetv2.py @@ -265,10 +265,10 @@ def mobilenet_v2( return model +# TODO: Remove for 0.15 from ._utils import _ModelURLs -# TODO: Remove for 0.15 model_urls = _ModelURLs( { "mobilenet_v2": MobileNet_V2_Weights.IMAGENET1K_V1.url, diff --git a/torchvision/models/quantization/mobilenetv2.py b/torchvision/models/quantization/mobilenetv2.py index 354ee083cbd..6b06bfab8c0 100644 --- a/torchvision/models/quantization/mobilenetv2.py +++ b/torchvision/models/quantization/mobilenetv2.py @@ -133,11 +133,11 @@ def mobilenet_v2( return model +# TODO: Remove for 0.15 from .._utils import _ModelURLs from ..mobilenetv2 import model_urls # noqa: F401 -# TODO: Remove for 0.15 quant_model_urls = _ModelURLs( { "mobilenet_v2_qnnpack": MobileNet_V2_QuantizedWeights.IMAGENET1K_QNNPACK_V1.url, From faed8f515494d1b9ffb12bfd043d0621935c5dcf Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 16:53:28 +0100 Subject: [PATCH 04/35] Add alexnet --- torchvision/models/alexnet.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/torchvision/models/alexnet.py b/torchvision/models/alexnet.py index 97877c52060..9c088ea9f75 100644 --- a/torchvision/models/alexnet.py +++ b/torchvision/models/alexnet.py @@ -111,3 +111,14 @@ def alexnet(*, weights: Optional[AlexNet_Weights] = None, progress: bool = True, model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "alexnet": AlexNet_Weights.IMAGENET1K_V1.url, + } +) From 8d329bafe54821beb5919dc3810330c89ef59f2d Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 16:56:17 +0100 Subject: [PATCH 05/35] Add densenet --- torchvision/models/densenet.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/torchvision/models/densenet.py b/torchvision/models/densenet.py index 2fb60fc68cc..1ada687a967 100644 --- a/torchvision/models/densenet.py +++ b/torchvision/models/densenet.py @@ -430,3 +430,17 @@ def densenet201(*, weights: Optional[DenseNet201_Weights] = None, progress: bool weights = DenseNet201_Weights.verify(weights) return _densenet(32, (6, 12, 48, 32), 64, weights, progress, **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "densenet121": DenseNet121_Weights.IMAGENET1K_V1.url, + "densenet169": DenseNet169_Weights.IMAGENET1K_V1.url, + "densenet201": DenseNet201_Weights.IMAGENET1K_V1.url, + "densenet161": DenseNet161_Weights.IMAGENET1K_V1.url, + } +) From b58579d2364b00cb4524debf2f175aad09eff937 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:00:57 +0100 Subject: [PATCH 06/35] Add efficientnet --- torchvision/models/efficientnet.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/torchvision/models/efficientnet.py b/torchvision/models/efficientnet.py index 1e42e235a20..3596a45285f 100644 --- a/torchvision/models/efficientnet.py +++ b/torchvision/models/efficientnet.py @@ -1028,3 +1028,23 @@ def efficientnet_v2_l( norm_layer=partial(nn.BatchNorm2d, eps=1e-03), **kwargs, ) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + # Weights ported from https://github.com/rwightman/pytorch-image-models/ + "efficientnet_b0": EfficientNet_B0_Weights.IMAGENET1K_V1.url, + "efficientnet_b1": EfficientNet_B1_Weights.IMAGENET1K_V1.url, + "efficientnet_b2": EfficientNet_B2_Weights.IMAGENET1K_V1.url, + "efficientnet_b3": EfficientNet_B3_Weights.IMAGENET1K_V1.url, + "efficientnet_b4": EfficientNet_B4_Weights.IMAGENET1K_V1.url, + # Weights ported from https://github.com/lukemelas/EfficientNet-PyTorch/ + "efficientnet_b5": EfficientNet_B5_Weights.IMAGENET1K_V1.url, + "efficientnet_b6": EfficientNet_B6_Weights.IMAGENET1K_V1.url, + "efficientnet_b7": EfficientNet_B7_Weights.IMAGENET1K_V1.url, + } +) From 4e5b6e25ba5bf0169dc27352118cef3093ec84d6 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:02:30 +0100 Subject: [PATCH 07/35] Add googlenet. --- torchvision/models/googlenet.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/torchvision/models/googlenet.py b/torchvision/models/googlenet.py index a8a4c8bc3b9..faf587157ec 100644 --- a/torchvision/models/googlenet.py +++ b/torchvision/models/googlenet.py @@ -339,3 +339,15 @@ def googlenet(*, weights: Optional[GoogLeNet_Weights] = None, progress: bool = T ) return model + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + # GoogLeNet ported from TensorFlow + "googlenet": GoogLeNet_Weights.IMAGENET1K_V1.url, + } +) From d3fa473c5250af5faa77b7993b8c980d108dab78 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:03:55 +0100 Subject: [PATCH 08/35] Add inception. --- torchvision/models/inception.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/torchvision/models/inception.py b/torchvision/models/inception.py index e8eecca5db6..7d855a6b46f 100644 --- a/torchvision/models/inception.py +++ b/torchvision/models/inception.py @@ -471,3 +471,15 @@ def inception_v3(*, weights: Optional[Inception_V3_Weights] = None, progress: bo model.AuxLogits = None return model + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + # Inception v3 ported from TensorFlow + "inception_v3_google": Inception_V3_Weights.IMAGENET1K_V1.url, + } +) From 1304a3044a8c06645627c40e4a6e51686d753b2a Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:05:47 +0100 Subject: [PATCH 09/35] Add mobilenetv3 --- torchvision/models/mobilenetv3.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/torchvision/models/mobilenetv3.py b/torchvision/models/mobilenetv3.py index 910e8fbf04b..b68ad6609bd 100644 --- a/torchvision/models/mobilenetv3.py +++ b/torchvision/models/mobilenetv3.py @@ -414,3 +414,15 @@ def mobilenet_v3_small( inverted_residual_setting, last_channel = _mobilenet_v3_conf("mobilenet_v3_small", **kwargs) return _mobilenet_v3(inverted_residual_setting, last_channel, weights, progress, **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "mobilenet_v3_large": MobileNet_V3_Large_Weights.IMAGENET1K_V1.url, + "mobilenet_v3_small": MobileNet_V3_Small_Weights.IMAGENET1K_V1.url, + } +) From d3867b711b081ad96cf230c53b4e27fec813fa94 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:10:33 +0100 Subject: [PATCH 10/35] Add regnet --- torchvision/models/regnet.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/torchvision/models/regnet.py b/torchvision/models/regnet.py index 3e2370fd7b0..ad1ab6ab5a3 100644 --- a/torchvision/models/regnet.py +++ b/torchvision/models/regnet.py @@ -1330,3 +1330,27 @@ def regnet_x_32gf(*, weights: Optional[RegNet_X_32GF_Weights] = None, progress: params = BlockParams.from_init_params(depth=23, w_0=320, w_a=69.86, w_m=2.0, group_width=168, **kwargs) return _regnet(params, weights, progress, **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "regnet_y_400mf": RegNet_Y_400MF_Weights.IMAGENET1K_V1.url, + "regnet_y_800mf": RegNet_Y_800MF_Weights.IMAGENET1K_V1.url, + "regnet_y_1_6gf": RegNet_Y_1_6GF_Weights.IMAGENET1K_V1.url, + "regnet_y_3_2gf": RegNet_Y_3_2GF_Weights.IMAGENET1K_V1.url, + "regnet_y_8gf": RegNet_Y_8GF_Weights.IMAGENET1K_V1.url, + "regnet_y_16gf": RegNet_Y_16GF_Weights.IMAGENET1K_V1.url, + "regnet_y_32gf": RegNet_Y_32GF_Weights.IMAGENET1K_V1.url, + "regnet_x_400mf": RegNet_X_400MF_Weights.IMAGENET1K_V1.url, + "regnet_x_800mf": RegNet_X_800MF_Weights.IMAGENET1K_V1.url, + "regnet_x_1_6gf": RegNet_X_1_6GF_Weights.IMAGENET1K_V1.url, + "regnet_x_3_2gf": RegNet_X_3_2GF_Weights.IMAGENET1K_V1.url, + "regnet_x_8gf": RegNet_X_8GF_Weights.IMAGENET1K_V1.url, + "regnet_x_16gf": RegNet_X_16GF_Weights.IMAGENET1K_V1.url, + "regnet_x_32gf": RegNet_X_32GF_Weights.IMAGENET1K_V1.url, + } +) From e4831834236f8bbdf709ff95b5c386da9d3cb0a3 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:30:21 +0100 Subject: [PATCH 11/35] Add resnet --- torchvision/models/resnet.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/torchvision/models/resnet.py b/torchvision/models/resnet.py index bc5d952368e..729729fb539 100644 --- a/torchvision/models/resnet.py +++ b/torchvision/models/resnet.py @@ -846,3 +846,23 @@ def wide_resnet101_2( _ovewrite_named_param(kwargs, "width_per_group", 64 * 2) return _resnet(Bottleneck, [3, 4, 23, 3], weights, progress, **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "resnet18": ResNet18_Weights.IMAGENET1K_V1.url, + "resnet34": ResNet34_Weights.IMAGENET1K_V1.url, + "resnet50": ResNet50_Weights.IMAGENET1K_V1.url, + "resnet101": ResNet101_Weights.IMAGENET1K_V1.url, + "resnet152": ResNet152_Weights.IMAGENET1K_V1.url, + "resnext50_32x4d": ResNeXt50_32X4D_Weights.IMAGENET1K_V1.url, + "resnext101_32x8d": ResNeXt101_32X8D_Weights.IMAGENET1K_V1.url, + "wide_resnet50_2": Wide_ResNet50_2_Weights.IMAGENET1K_V1.url, + "wide_resnet101_2": Wide_ResNet101_2_Weights.IMAGENET1K_V1.url, + } +) + From aea12c417b7a168ffbfcbc74b107735f2bb6db0e Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 11 May 2022 17:33:05 +0100 Subject: [PATCH 12/35] Add shufflenetv2 --- torchvision/models/shufflenetv2.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/torchvision/models/shufflenetv2.py b/torchvision/models/shufflenetv2.py index dc8efbc670d..86a4339ed45 100644 --- a/torchvision/models/shufflenetv2.py +++ b/torchvision/models/shufflenetv2.py @@ -374,3 +374,17 @@ def shufflenet_v2_x2_0( weights = ShuffleNet_V2_X2_0_Weights.verify(weights) return _shufflenetv2(weights, progress, [4, 8, 4], [24, 244, 488, 976, 2048], **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "shufflenetv2_x0.5": ShuffleNet_V2_X0_5_Weights.IMAGENET1K_V1.url, + "shufflenetv2_x1.0": ShuffleNet_V2_X1_0_Weights.IMAGENET1K_V1.url, + "shufflenetv2_x1.5": ShuffleNet_V2_X1_5_Weights.IMAGENET1K_V1.url, + "shufflenetv2_x2.0": ShuffleNet_V2_X2_0_Weights.IMAGENET1K_V1.url, + } +) From 4396b815b7a89ee99d553ecaf06c4b85f31a145f Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:09:05 +0100 Subject: [PATCH 13/35] Fix linter --- torchvision/models/resnet.py | 1 - 1 file changed, 1 deletion(-) diff --git a/torchvision/models/resnet.py b/torchvision/models/resnet.py index 729729fb539..a43963abf35 100644 --- a/torchvision/models/resnet.py +++ b/torchvision/models/resnet.py @@ -865,4 +865,3 @@ def wide_resnet101_2( "wide_resnet101_2": Wide_ResNet101_2_Weights.IMAGENET1K_V1.url, } ) - From e55f24be3fad2199a07db0b2d09aa270e13e56d7 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:18:03 +0100 Subject: [PATCH 14/35] Add squeezenet --- torchvision/models/squeezenet.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/torchvision/models/squeezenet.py b/torchvision/models/squeezenet.py index c01b4d576d6..61058cc7279 100644 --- a/torchvision/models/squeezenet.py +++ b/torchvision/models/squeezenet.py @@ -213,3 +213,15 @@ def squeezenet1_1( """ weights = SqueezeNet1_1_Weights.verify(weights) return _squeezenet("1_1", weights, progress, **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "squeezenet1_0": SqueezeNet1_0_Weights.IMAGENET1K_V1.url, + "squeezenet1_1": SqueezeNet1_1_Weights.IMAGENET1K_V1.url, + } +) From 619fa2be9453980717a059f89ea08dfd86cdc884 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:20:42 +0100 Subject: [PATCH 15/35] Add vgg --- torchvision/models/vgg.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/torchvision/models/vgg.py b/torchvision/models/vgg.py index 68cbae7957d..7d0bac570ec 100644 --- a/torchvision/models/vgg.py +++ b/torchvision/models/vgg.py @@ -461,3 +461,21 @@ def vgg19_bn(*, weights: Optional[VGG19_BN_Weights] = None, progress: bool = Tru weights = VGG19_BN_Weights.verify(weights) return _vgg("E", True, weights, progress, **kwargs) + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "vgg11": VGG11_Weights.IMAGENET1K_V1.url, + "vgg13": VGG13_Weights.IMAGENET1K_V1.url, + "vgg16": VGG16_Weights.IMAGENET1K_V1.url, + "vgg19": VGG19_Weights.IMAGENET1K_V1.url, + "vgg11_bn": VGG11_BN_Weights.IMAGENET1K_V1.url, + "vgg13_bn": VGG13_BN_Weights.IMAGENET1K_V1.url, + "vgg16_bn": VGG16_BN_Weights.IMAGENET1K_V1.url, + "vgg19_bn": VGG19_BN_Weights.IMAGENET1K_V1.url, + } +) From 9984e3f9eaba0f04219e0a568d6430c1a020a2c3 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:31:28 +0100 Subject: [PATCH 16/35] Add vit --- torchvision/models/vision_transformer.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/torchvision/models/vision_transformer.py b/torchvision/models/vision_transformer.py index 60ad2d4924a..7813d1a4604 100644 --- a/torchvision/models/vision_transformer.py +++ b/torchvision/models/vision_transformer.py @@ -746,3 +746,17 @@ def interpolate_embeddings( model_state = model_state_copy return model_state + + +# TODO: Remove for 0.15 +from ._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "vit_b_16": ViT_B_16_Weights.IMAGENET1K_V1.url, + "vit_b_32": ViT_B_32_Weights.IMAGENET1K_V1.url, + "vit_l_16": ViT_L_16_Weights.IMAGENET1K_V1.url, + "vit_l_32": ViT_L_32_Weights.IMAGENET1K_V1.url, + } +) From 184b9ef70b1079bd8dbff7808e6dab3aae27540b Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:35:01 +0100 Subject: [PATCH 17/35] Add quantized googlenet --- torchvision/models/quantization/googlenet.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/quantization/googlenet.py b/torchvision/models/quantization/googlenet.py index 4dbfa8065c3..10e7bbfc43a 100644 --- a/torchvision/models/quantization/googlenet.py +++ b/torchvision/models/quantization/googlenet.py @@ -200,3 +200,16 @@ def googlenet( ) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs +from ..googlenet import model_urls # noqa: F401 + + +quant_model_urls = _ModelURLs( + { + # fp32 GoogLeNet ported from TensorFlow, with weights quantized in PyTorch + "googlenet_fbgemm": GoogLeNet_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + } +) From fdb275ec56a74a03fcf33bd8a36d6bfeee492bf0 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:36:28 +0100 Subject: [PATCH 18/35] Add quantized inceptionv3 --- torchvision/models/quantization/inception.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/quantization/inception.py b/torchvision/models/quantization/inception.py index ed53d43e8af..301b8b1590b 100644 --- a/torchvision/models/quantization/inception.py +++ b/torchvision/models/quantization/inception.py @@ -251,3 +251,16 @@ def inception_v3( model.AuxLogits = None return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs +from ..googlenet import model_urls # noqa: F401 + + +quant_model_urls = _ModelURLs( + { + # fp32 weights ported from TensorFlow, quantized in PyTorch + "inception_v3_google_fbgemm": Inception_V3_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + } +) From 4af3b38f1e89b42699a55d9fbdc95c7af39a110d Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:50:50 +0100 Subject: [PATCH 19/35] Add quantized mobilenet_v3 --- torchvision/models/quantization/mobilenetv3.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/torchvision/models/quantization/mobilenetv3.py b/torchvision/models/quantization/mobilenetv3.py index 2d18446c13f..41b901d4ea4 100644 --- a/torchvision/models/quantization/mobilenetv3.py +++ b/torchvision/models/quantization/mobilenetv3.py @@ -211,3 +211,15 @@ def mobilenet_v3_large( inverted_residual_setting, last_channel = _mobilenet_v3_conf("mobilenet_v3_large", **kwargs) return _mobilenet_v3_model(inverted_residual_setting, last_channel, weights, progress, quantize, **kwargs) + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs +from ..mobilenetv3 import model_urls # noqa: F401 + + +quant_model_urls = _ModelURLs( + { + "mobilenet_v3_large_qnnpack": MobileNet_V3_Large_QuantizedWeights.IMAGENET1K_QNNPACK_V1.url, + } +) From f54e6b796eea4a732b581550dba0f72e2ea1bd4a Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:55:48 +0100 Subject: [PATCH 20/35] Add quantized resnet --- torchvision/models/quantization/resnet.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/torchvision/models/quantization/resnet.py b/torchvision/models/quantization/resnet.py index 23df64c86c0..728d3ff7f8c 100644 --- a/torchvision/models/quantization/resnet.py +++ b/torchvision/models/quantization/resnet.py @@ -362,3 +362,17 @@ def resnext101_64x4d( _ovewrite_named_param(kwargs, "groups", 64) _ovewrite_named_param(kwargs, "width_per_group", 4) return _resnet(QuantizableBottleneck, [3, 4, 23, 3], weights, progress, quantize, **kwargs) + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs +from ..mobilenetv3 import model_urls # noqa: F401 + + +quant_model_urls = _ModelURLs( + { + "resnet18_fbgemm": ResNet18_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + "resnet50_fbgemm": ResNet50_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + "resnext101_32x8d_fbgemm": ResNeXt101_32X8D_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + } +) From e1aebba5d8fce99db698046fa6f1d2af79379867 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:58:02 +0100 Subject: [PATCH 21/35] Add quantized shufflenetv2 --- torchvision/models/quantization/shufflenetv2.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/quantization/shufflenetv2.py b/torchvision/models/quantization/shufflenetv2.py index cfbdc5b0c24..865277bdc2d 100644 --- a/torchvision/models/quantization/shufflenetv2.py +++ b/torchvision/models/quantization/shufflenetv2.py @@ -298,3 +298,16 @@ def shufflenet_v2_x2_0( return _shufflenetv2( [4, 8, 4], [24, 244, 488, 976, 2048], weights=weights, progress=progress, quantize=quantize, **kwargs ) + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs +from ..shufflenetv2 import model_urls # noqa: F401 + + +quant_model_urls = _ModelURLs( + { + "shufflenetv2_x0.5_fbgemm": ShuffleNet_V2_X0_5_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + "shufflenetv2_x1.0_fbgemm": ShuffleNet_V2_X1_0_QuantizedWeights.IMAGENET1K_FBGEMM_V1.url, + } +) From 5480e3eb53d6a6caba96bd34348d1394a2aac2ea Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 10:58:16 +0100 Subject: [PATCH 22/35] Fix incorrect imports --- torchvision/models/quantization/inception.py | 2 +- torchvision/models/quantization/resnet.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/torchvision/models/quantization/inception.py b/torchvision/models/quantization/inception.py index 301b8b1590b..4edd55b21cf 100644 --- a/torchvision/models/quantization/inception.py +++ b/torchvision/models/quantization/inception.py @@ -255,7 +255,7 @@ def inception_v3( # TODO: Remove for 0.15 from .._utils import _ModelURLs -from ..googlenet import model_urls # noqa: F401 +from ..inception import model_urls # noqa: F401 quant_model_urls = _ModelURLs( diff --git a/torchvision/models/quantization/resnet.py b/torchvision/models/quantization/resnet.py index 728d3ff7f8c..93adba2ffb2 100644 --- a/torchvision/models/quantization/resnet.py +++ b/torchvision/models/quantization/resnet.py @@ -366,7 +366,7 @@ def resnext101_64x4d( # TODO: Remove for 0.15 from .._utils import _ModelURLs -from ..mobilenetv3 import model_urls # noqa: F401 +from ..resnet import model_urls # noqa: F401 quant_model_urls = _ModelURLs( From 0c81ca5d4e960c40febc43342e32e8af87ace290 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:06:48 +0100 Subject: [PATCH 23/35] Add faster_rcnn --- torchvision/models/detection/faster_rcnn.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/detection/faster_rcnn.py b/torchvision/models/detection/faster_rcnn.py index 9a0ce20410e..5b86bbbdb0d 100644 --- a/torchvision/models/detection/faster_rcnn.py +++ b/torchvision/models/detection/faster_rcnn.py @@ -804,3 +804,16 @@ def fasterrcnn_mobilenet_v3_large_fpn( trainable_backbone_layers=trainable_backbone_layers, **kwargs, ) + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "fasterrcnn_resnet50_fpn_coco": FasterRCNN_ResNet50_FPN_Weights.COCO_V1.url, + "fasterrcnn_mobilenet_v3_large_320_fpn_coco": FasterRCNN_MobileNet_V3_Large_320_FPN_Weights.COCO_V1.url, + "fasterrcnn_mobilenet_v3_large_fpn_coco": FasterRCNN_MobileNet_V3_Large_FPN_Weights.COCO_V1.url, + } +) From cf7908a4a6429c05dad3845a295cc75e27109c18 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:07:28 +0100 Subject: [PATCH 24/35] Add fcos --- torchvision/models/detection/fcos.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/torchvision/models/detection/fcos.py b/torchvision/models/detection/fcos.py index 54094d2fa22..c97b832a1e5 100644 --- a/torchvision/models/detection/fcos.py +++ b/torchvision/models/detection/fcos.py @@ -758,3 +758,14 @@ def fcos_resnet50_fpn( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "fcos_resnet50_fpn_coco": FCOS_ResNet50_FPN_Weights.COCO_V1.url, + } +) From 97674773a6d72220dcd844c48ce993663a0c5300 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:10:59 +0100 Subject: [PATCH 25/35] Add keypoint rcnn --- torchvision/models/detection/keypoint_rcnn.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/detection/keypoint_rcnn.py b/torchvision/models/detection/keypoint_rcnn.py index c551ba4b9ec..c697cbe849f 100644 --- a/torchvision/models/detection/keypoint_rcnn.py +++ b/torchvision/models/detection/keypoint_rcnn.py @@ -454,3 +454,16 @@ def keypointrcnn_resnet50_fpn( overwrite_eps(model, 0.0) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + # legacy model for BC reasons, see https://github.com/pytorch/vision/issues/1606 + "keypointrcnn_resnet50_fpn_coco_legacy": KeypointRCNN_ResNet50_FPN_Weights.COCO_LEGACY.url, + "keypointrcnn_resnet50_fpn_coco": KeypointRCNN_ResNet50_FPN_Weights.COCO_V1.url, + } +) From ff8d6cdfc2c9843686841ad221598e865e8af3b8 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:12:23 +0100 Subject: [PATCH 26/35] Add mask rcnn --- torchvision/models/detection/mask_rcnn.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/torchvision/models/detection/mask_rcnn.py b/torchvision/models/detection/mask_rcnn.py index 1b8eaa4b168..c8c2e4caa84 100644 --- a/torchvision/models/detection/mask_rcnn.py +++ b/torchvision/models/detection/mask_rcnn.py @@ -565,3 +565,14 @@ def maskrcnn_resnet50_fpn_v2( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "maskrcnn_resnet50_fpn_coco": MaskRCNN_ResNet50_FPN_Weights.COCO_V1.url, + } +) From 0c60179f8212bb77ccd46f1d7cce96d98d12eaf2 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:13:02 +0100 Subject: [PATCH 27/35] Add retinanet --- torchvision/models/detection/retinanet.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/torchvision/models/detection/retinanet.py b/torchvision/models/detection/retinanet.py index 4a5f9b78b4a..dfeb786343d 100644 --- a/torchvision/models/detection/retinanet.py +++ b/torchvision/models/detection/retinanet.py @@ -879,3 +879,14 @@ def retinanet_resnet50_fpn_v2( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "retinanet_resnet50_fpn_coco": RetinaNet_ResNet50_FPN_Weights.COCO_V1.url, + } +) From da54d937dfed421ec1dd9d9f8f792d9ac9157c82 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:15:36 +0100 Subject: [PATCH 28/35] Add ssd --- torchvision/models/detection/ssd.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/torchvision/models/detection/ssd.py b/torchvision/models/detection/ssd.py index d83147f81f5..55648d84e0e 100644 --- a/torchvision/models/detection/ssd.py +++ b/torchvision/models/detection/ssd.py @@ -672,3 +672,25 @@ def ssd300_vgg16( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "ssd300_vgg16_coco": SSD300_VGG16_Weights.COCO_V1.url, + } +) + + +backbone_urls = _ModelURLs( + { + # We port the features of a VGG16 backbone trained by amdegroot because unlike the one on TorchVision, it uses + # the same input standardization method as the paper. + # Ref: https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth + # Only the `features` weights have proper values, those on the `classifier` module are filled with nans. + "vgg16_features": VGG16_Weights.IMAGENET1K_FEATURES.url, + } +) From cb8255cb4403b6e5dc3198a0f812f36462a36748 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:16:33 +0100 Subject: [PATCH 29/35] Add ssdlite --- torchvision/models/detection/ssdlite.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/torchvision/models/detection/ssdlite.py b/torchvision/models/detection/ssdlite.py index b23490bc295..7ecc5f2153e 100644 --- a/torchvision/models/detection/ssdlite.py +++ b/torchvision/models/detection/ssdlite.py @@ -321,3 +321,14 @@ def ssdlite320_mobilenet_v3_large( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "ssdlite320_mobilenet_v3_large_coco": SSDLite320_MobileNet_V3_Large_Weights.COCO_V1.url, + } +) From 98d2a4dbb53d25cbeafd48ee1086e17ba230ba8b Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:56:56 +0100 Subject: [PATCH 30/35] Add deeplabv3 --- torchvision/models/segmentation/deeplabv3.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/segmentation/deeplabv3.py b/torchvision/models/segmentation/deeplabv3.py index a961c4e0b2b..e319aaa286a 100644 --- a/torchvision/models/segmentation/deeplabv3.py +++ b/torchvision/models/segmentation/deeplabv3.py @@ -365,3 +365,16 @@ def deeplabv3_mobilenet_v3_large( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "deeplabv3_resnet50_coco": DeepLabV3_ResNet50_Weights.COCO_WITH_VOC_LABELS_V1.url, + "deeplabv3_resnet101_coco": DeepLabV3_ResNet101_Weights.COCO_WITH_VOC_LABELS_V1.url, + "deeplabv3_mobilenet_v3_large_coco": DeepLabV3_MobileNet_V3_Large_Weights.COCO_WITH_VOC_LABELS_V1.url, + } +) From e67870710014a4276a2bce5d09056d86eba17442 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:57:47 +0100 Subject: [PATCH 31/35] Add fcn --- torchvision/models/segmentation/fcn.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/torchvision/models/segmentation/fcn.py b/torchvision/models/segmentation/fcn.py index 55b60f312d9..862fb608984 100644 --- a/torchvision/models/segmentation/fcn.py +++ b/torchvision/models/segmentation/fcn.py @@ -212,3 +212,15 @@ def fcn_resnet101( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "fcn_resnet50_coco": FCN_ResNet50_Weights.COCO_WITH_VOC_LABELS_V1.url, + "fcn_resnet101_coco": FCN_ResNet101_Weights.COCO_WITH_VOC_LABELS_V1.url, + } +) From 261bf61e409ba1be2622c1880e137896b9eedfdf Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:58:26 +0100 Subject: [PATCH 32/35] Add lraspp. --- torchvision/models/segmentation/lraspp.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/torchvision/models/segmentation/lraspp.py b/torchvision/models/segmentation/lraspp.py index f6a0c662cda..657c1987f09 100644 --- a/torchvision/models/segmentation/lraspp.py +++ b/torchvision/models/segmentation/lraspp.py @@ -165,3 +165,14 @@ def lraspp_mobilenet_v3_large( model.load_state_dict(weights.get_state_dict(progress=progress)) return model + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "lraspp_mobilenet_v3_large_coco": LRASPP_MobileNet_V3_Large_Weights.COCO_WITH_VOC_LABELS_V1.url, + } +) From c3ad739777065e410584519d8a15451805764cf9 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 11:59:56 +0100 Subject: [PATCH 33/35] Add video resnet --- torchvision/models/video/resnet.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/torchvision/models/video/resnet.py b/torchvision/models/video/resnet.py index 5b0d7d99bca..35ab4d4927f 100644 --- a/torchvision/models/video/resnet.py +++ b/torchvision/models/video/resnet.py @@ -463,3 +463,16 @@ def r2plus1d_18(*, weights: Optional[R2Plus1D_18_Weights] = None, progress: bool progress, **kwargs, ) + + +# TODO: Remove for 0.15 +from .._utils import _ModelURLs + + +model_urls = _ModelURLs( + { + "r3d_18": R3D_18_Weights.KINETICS400_V1.url, + "mc3_18": MC3_18_Weights.KINETICS400_V1.url, + "r2plus1d_18": R2Plus1D_18_Weights.KINETICS400_V1.url, + } +) From 4ed14400b6f1330b2b4e303122e266204bc0b0d1 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 12:19:51 +0100 Subject: [PATCH 34/35] Removing weights for shufflenetv2_x1.5 and shufflenetv2_x2.0 --- torchvision/models/shufflenetv2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/torchvision/models/shufflenetv2.py b/torchvision/models/shufflenetv2.py index 86a4339ed45..c899dbe455c 100644 --- a/torchvision/models/shufflenetv2.py +++ b/torchvision/models/shufflenetv2.py @@ -384,7 +384,7 @@ def shufflenet_v2_x2_0( { "shufflenetv2_x0.5": ShuffleNet_V2_X0_5_Weights.IMAGENET1K_V1.url, "shufflenetv2_x1.0": ShuffleNet_V2_X1_0_Weights.IMAGENET1K_V1.url, - "shufflenetv2_x1.5": ShuffleNet_V2_X1_5_Weights.IMAGENET1K_V1.url, - "shufflenetv2_x2.0": ShuffleNet_V2_X2_0_Weights.IMAGENET1K_V1.url, + "shufflenetv2_x1.5": None, + "shufflenetv2_x2.0": None, } ) From a74eaf20f937b2003d10510d59865439e871cb7b Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Thu, 12 May 2022 12:32:43 +0100 Subject: [PATCH 35/35] Update the comments --- torchvision/models/_utils.py | 1 - torchvision/models/alexnet.py | 2 +- torchvision/models/densenet.py | 2 +- torchvision/models/detection/faster_rcnn.py | 2 +- torchvision/models/detection/fcos.py | 2 +- torchvision/models/detection/keypoint_rcnn.py | 2 +- torchvision/models/detection/mask_rcnn.py | 2 +- torchvision/models/detection/retinanet.py | 2 +- torchvision/models/detection/ssd.py | 2 +- torchvision/models/detection/ssdlite.py | 2 +- torchvision/models/efficientnet.py | 2 +- torchvision/models/googlenet.py | 2 +- torchvision/models/inception.py | 2 +- torchvision/models/mobilenetv2.py | 2 +- torchvision/models/mobilenetv3.py | 2 +- torchvision/models/quantization/googlenet.py | 2 +- torchvision/models/quantization/inception.py | 2 +- torchvision/models/quantization/mobilenetv2.py | 2 +- torchvision/models/quantization/mobilenetv3.py | 2 +- torchvision/models/quantization/resnet.py | 2 +- torchvision/models/quantization/shufflenetv2.py | 2 +- torchvision/models/regnet.py | 2 +- torchvision/models/resnet.py | 2 +- torchvision/models/segmentation/deeplabv3.py | 2 +- torchvision/models/segmentation/fcn.py | 2 +- torchvision/models/segmentation/lraspp.py | 2 +- torchvision/models/shufflenetv2.py | 2 +- torchvision/models/squeezenet.py | 2 +- torchvision/models/vgg.py | 2 +- torchvision/models/video/resnet.py | 2 +- torchvision/models/vision_transformer.py | 2 +- 31 files changed, 30 insertions(+), 31 deletions(-) diff --git a/torchvision/models/_utils.py b/torchvision/models/_utils.py index da754b776fd..c565f611999 100644 --- a/torchvision/models/_utils.py +++ b/torchvision/models/_utils.py @@ -247,7 +247,6 @@ def _ovewrite_value_param(param: Optional[V], new_value: V) -> V: return new_value -# TODO: Remove for 0.15 class _ModelURLs(dict): def __getitem__(self, item): warnings.warn( diff --git a/torchvision/models/alexnet.py b/torchvision/models/alexnet.py index 9c088ea9f75..6c9ae4932d7 100644 --- a/torchvision/models/alexnet.py +++ b/torchvision/models/alexnet.py @@ -113,7 +113,7 @@ def alexnet(*, weights: Optional[AlexNet_Weights] = None, progress: bool = True, return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/densenet.py b/torchvision/models/densenet.py index 1ada687a967..bf46b113691 100644 --- a/torchvision/models/densenet.py +++ b/torchvision/models/densenet.py @@ -432,7 +432,7 @@ def densenet201(*, weights: Optional[DenseNet201_Weights] = None, progress: bool return _densenet(32, (6, 12, 48, 32), 64, weights, progress, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/detection/faster_rcnn.py b/torchvision/models/detection/faster_rcnn.py index 5b86bbbdb0d..afe66ead646 100644 --- a/torchvision/models/detection/faster_rcnn.py +++ b/torchvision/models/detection/faster_rcnn.py @@ -806,7 +806,7 @@ def fasterrcnn_mobilenet_v3_large_fpn( ) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/detection/fcos.py b/torchvision/models/detection/fcos.py index c97b832a1e5..684b52100db 100644 --- a/torchvision/models/detection/fcos.py +++ b/torchvision/models/detection/fcos.py @@ -760,7 +760,7 @@ def fcos_resnet50_fpn( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/detection/keypoint_rcnn.py b/torchvision/models/detection/keypoint_rcnn.py index c697cbe849f..410c53d60b7 100644 --- a/torchvision/models/detection/keypoint_rcnn.py +++ b/torchvision/models/detection/keypoint_rcnn.py @@ -456,7 +456,7 @@ def keypointrcnn_resnet50_fpn( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/detection/mask_rcnn.py b/torchvision/models/detection/mask_rcnn.py index c8c2e4caa84..6b1ba04a195 100644 --- a/torchvision/models/detection/mask_rcnn.py +++ b/torchvision/models/detection/mask_rcnn.py @@ -567,7 +567,7 @@ def maskrcnn_resnet50_fpn_v2( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/detection/retinanet.py b/torchvision/models/detection/retinanet.py index dfeb786343d..0cb4979d332 100644 --- a/torchvision/models/detection/retinanet.py +++ b/torchvision/models/detection/retinanet.py @@ -881,7 +881,7 @@ def retinanet_resnet50_fpn_v2( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/detection/ssd.py b/torchvision/models/detection/ssd.py index 55648d84e0e..7e5625329be 100644 --- a/torchvision/models/detection/ssd.py +++ b/torchvision/models/detection/ssd.py @@ -674,7 +674,7 @@ def ssd300_vgg16( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/detection/ssdlite.py b/torchvision/models/detection/ssdlite.py index 7ecc5f2153e..f94758cb166 100644 --- a/torchvision/models/detection/ssdlite.py +++ b/torchvision/models/detection/ssdlite.py @@ -323,7 +323,7 @@ def ssdlite320_mobilenet_v3_large( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/efficientnet.py b/torchvision/models/efficientnet.py index 3596a45285f..be166140209 100644 --- a/torchvision/models/efficientnet.py +++ b/torchvision/models/efficientnet.py @@ -1030,7 +1030,7 @@ def efficientnet_v2_l( ) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/googlenet.py b/torchvision/models/googlenet.py index faf587157ec..37c20d72cdd 100644 --- a/torchvision/models/googlenet.py +++ b/torchvision/models/googlenet.py @@ -341,7 +341,7 @@ def googlenet(*, weights: Optional[GoogLeNet_Weights] = None, progress: bool = T return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/inception.py b/torchvision/models/inception.py index 7d855a6b46f..5b89a1e5c9a 100644 --- a/torchvision/models/inception.py +++ b/torchvision/models/inception.py @@ -473,7 +473,7 @@ def inception_v3(*, weights: Optional[Inception_V3_Weights] = None, progress: bo return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/mobilenetv2.py b/torchvision/models/mobilenetv2.py index 2fdd170d897..d63ecb01f38 100644 --- a/torchvision/models/mobilenetv2.py +++ b/torchvision/models/mobilenetv2.py @@ -265,7 +265,7 @@ def mobilenet_v2( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/mobilenetv3.py b/torchvision/models/mobilenetv3.py index b68ad6609bd..787526cc1b3 100644 --- a/torchvision/models/mobilenetv3.py +++ b/torchvision/models/mobilenetv3.py @@ -416,7 +416,7 @@ def mobilenet_v3_small( return _mobilenet_v3(inverted_residual_setting, last_channel, weights, progress, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/quantization/googlenet.py b/torchvision/models/quantization/googlenet.py index 10e7bbfc43a..36ec453a38f 100644 --- a/torchvision/models/quantization/googlenet.py +++ b/torchvision/models/quantization/googlenet.py @@ -202,7 +202,7 @@ def googlenet( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs from ..googlenet import model_urls # noqa: F401 diff --git a/torchvision/models/quantization/inception.py b/torchvision/models/quantization/inception.py index 4edd55b21cf..e774f4ce155 100644 --- a/torchvision/models/quantization/inception.py +++ b/torchvision/models/quantization/inception.py @@ -253,7 +253,7 @@ def inception_v3( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs from ..inception import model_urls # noqa: F401 diff --git a/torchvision/models/quantization/mobilenetv2.py b/torchvision/models/quantization/mobilenetv2.py index 6b06bfab8c0..2d73cc77008 100644 --- a/torchvision/models/quantization/mobilenetv2.py +++ b/torchvision/models/quantization/mobilenetv2.py @@ -133,7 +133,7 @@ def mobilenet_v2( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs from ..mobilenetv2 import model_urls # noqa: F401 diff --git a/torchvision/models/quantization/mobilenetv3.py b/torchvision/models/quantization/mobilenetv3.py index 41b901d4ea4..06e8228cdaf 100644 --- a/torchvision/models/quantization/mobilenetv3.py +++ b/torchvision/models/quantization/mobilenetv3.py @@ -213,7 +213,7 @@ def mobilenet_v3_large( return _mobilenet_v3_model(inverted_residual_setting, last_channel, weights, progress, quantize, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs from ..mobilenetv3 import model_urls # noqa: F401 diff --git a/torchvision/models/quantization/resnet.py b/torchvision/models/quantization/resnet.py index 93adba2ffb2..88d4f1871de 100644 --- a/torchvision/models/quantization/resnet.py +++ b/torchvision/models/quantization/resnet.py @@ -364,7 +364,7 @@ def resnext101_64x4d( return _resnet(QuantizableBottleneck, [3, 4, 23, 3], weights, progress, quantize, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs from ..resnet import model_urls # noqa: F401 diff --git a/torchvision/models/quantization/shufflenetv2.py b/torchvision/models/quantization/shufflenetv2.py index 865277bdc2d..90a4f298ac9 100644 --- a/torchvision/models/quantization/shufflenetv2.py +++ b/torchvision/models/quantization/shufflenetv2.py @@ -300,7 +300,7 @@ def shufflenet_v2_x2_0( ) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs from ..shufflenetv2 import model_urls # noqa: F401 diff --git a/torchvision/models/regnet.py b/torchvision/models/regnet.py index ad1ab6ab5a3..2376d13ffe8 100644 --- a/torchvision/models/regnet.py +++ b/torchvision/models/regnet.py @@ -1332,7 +1332,7 @@ def regnet_x_32gf(*, weights: Optional[RegNet_X_32GF_Weights] = None, progress: return _regnet(params, weights, progress, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/resnet.py b/torchvision/models/resnet.py index a43963abf35..95f96c1833c 100644 --- a/torchvision/models/resnet.py +++ b/torchvision/models/resnet.py @@ -848,7 +848,7 @@ def wide_resnet101_2( return _resnet(Bottleneck, [3, 4, 23, 3], weights, progress, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/segmentation/deeplabv3.py b/torchvision/models/segmentation/deeplabv3.py index e319aaa286a..57ccc377c2d 100644 --- a/torchvision/models/segmentation/deeplabv3.py +++ b/torchvision/models/segmentation/deeplabv3.py @@ -367,7 +367,7 @@ def deeplabv3_mobilenet_v3_large( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/segmentation/fcn.py b/torchvision/models/segmentation/fcn.py index 862fb608984..fe8c82d8d4d 100644 --- a/torchvision/models/segmentation/fcn.py +++ b/torchvision/models/segmentation/fcn.py @@ -214,7 +214,7 @@ def fcn_resnet101( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/segmentation/lraspp.py b/torchvision/models/segmentation/lraspp.py index 657c1987f09..bcbba7f14fe 100644 --- a/torchvision/models/segmentation/lraspp.py +++ b/torchvision/models/segmentation/lraspp.py @@ -167,7 +167,7 @@ def lraspp_mobilenet_v3_large( return model -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/shufflenetv2.py b/torchvision/models/shufflenetv2.py index c899dbe455c..ec7d59817ab 100644 --- a/torchvision/models/shufflenetv2.py +++ b/torchvision/models/shufflenetv2.py @@ -376,7 +376,7 @@ def shufflenet_v2_x2_0( return _shufflenetv2(weights, progress, [4, 8, 4], [24, 244, 488, 976, 2048], **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/squeezenet.py b/torchvision/models/squeezenet.py index 61058cc7279..afe9c18887f 100644 --- a/torchvision/models/squeezenet.py +++ b/torchvision/models/squeezenet.py @@ -215,7 +215,7 @@ def squeezenet1_1( return _squeezenet("1_1", weights, progress, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/vgg.py b/torchvision/models/vgg.py index 7d0bac570ec..6b82f90d58b 100644 --- a/torchvision/models/vgg.py +++ b/torchvision/models/vgg.py @@ -463,7 +463,7 @@ def vgg19_bn(*, weights: Optional[VGG19_BN_Weights] = None, progress: bool = Tru return _vgg("E", True, weights, progress, **kwargs) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs diff --git a/torchvision/models/video/resnet.py b/torchvision/models/video/resnet.py index 35ab4d4927f..320df6576ac 100644 --- a/torchvision/models/video/resnet.py +++ b/torchvision/models/video/resnet.py @@ -465,7 +465,7 @@ def r2plus1d_18(*, weights: Optional[R2Plus1D_18_Weights] = None, progress: bool ) -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from .._utils import _ModelURLs diff --git a/torchvision/models/vision_transformer.py b/torchvision/models/vision_transformer.py index 7813d1a4604..e672721be65 100644 --- a/torchvision/models/vision_transformer.py +++ b/torchvision/models/vision_transformer.py @@ -748,7 +748,7 @@ def interpolate_embeddings( return model_state -# TODO: Remove for 0.15 +# The dictionary below is internal implementation detail and will be removed in v0.15 from ._utils import _ModelURLs