From e95ee5c9d2896d8814fe9f8c3daf6d166114235a Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 16 Dec 2020 12:49:58 +0000 Subject: [PATCH 1/4] Moving mobilenet.py to mobilenetv2.py --- torchvision/models/{mobilenet.py => mobilenetv2.py} | 0 torchvision/models/quantization/{mobilenet.py => mobilenetv2.py} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename torchvision/models/{mobilenet.py => mobilenetv2.py} (100%) rename torchvision/models/quantization/{mobilenet.py => mobilenetv2.py} (100%) diff --git a/torchvision/models/mobilenet.py b/torchvision/models/mobilenetv2.py similarity index 100% rename from torchvision/models/mobilenet.py rename to torchvision/models/mobilenetv2.py diff --git a/torchvision/models/quantization/mobilenet.py b/torchvision/models/quantization/mobilenetv2.py similarity index 100% rename from torchvision/models/quantization/mobilenet.py rename to torchvision/models/quantization/mobilenetv2.py From 2ebe8baf701d292d0763a3f236ea4c46b8ddf114 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 16 Dec 2020 13:00:59 +0000 Subject: [PATCH 2/4] Adding mobilenet.py for BC. --- torchvision/models/mobilenet.py | 1 + torchvision/models/quantization/mobilenet.py | 1 + torchvision/models/quantization/mobilenetv2.py | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 torchvision/models/mobilenet.py create mode 100644 torchvision/models/quantization/mobilenet.py diff --git a/torchvision/models/mobilenet.py b/torchvision/models/mobilenet.py new file mode 100644 index 00000000000..75e2a9a24bc --- /dev/null +++ b/torchvision/models/mobilenet.py @@ -0,0 +1 @@ +from .mobilenetv2 import * diff --git a/torchvision/models/quantization/mobilenet.py b/torchvision/models/quantization/mobilenet.py new file mode 100644 index 00000000000..75e2a9a24bc --- /dev/null +++ b/torchvision/models/quantization/mobilenet.py @@ -0,0 +1 @@ +from .mobilenetv2 import * diff --git a/torchvision/models/quantization/mobilenetv2.py b/torchvision/models/quantization/mobilenetv2.py index 1d14410f376..72c522a2e46 100644 --- a/torchvision/models/quantization/mobilenetv2.py +++ b/torchvision/models/quantization/mobilenetv2.py @@ -1,6 +1,6 @@ from torch import nn from torchvision.models.utils import load_state_dict_from_url -from torchvision.models.mobilenet import InvertedResidual, ConvBNReLU, MobileNetV2, model_urls +from torchvision.models.mobilenetv2 import InvertedResidual, ConvBNReLU, MobileNetV2, model_urls from torch.quantization import QuantStub, DeQuantStub, fuse_modules from .utils import _replace_relu, quantize_model From 0c31a3341c23f0c7ef077e8af052f67932398bff Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 16 Dec 2020 13:04:29 +0000 Subject: [PATCH 3/4] Extending ConvBNReLU for reuse. --- torchvision/models/mobilenetv2.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/torchvision/models/mobilenetv2.py b/torchvision/models/mobilenetv2.py index d90b3f8ef14..990429bacf9 100644 --- a/torchvision/models/mobilenetv2.py +++ b/torchvision/models/mobilenetv2.py @@ -32,7 +32,7 @@ def _make_divisible(v: float, divisor: int, min_value: Optional[int] = None) -> return new_v -class ConvBNReLU(nn.Sequential): +class ConvBNActivation(nn.Sequential): def __init__( self, in_planes: int, @@ -40,18 +40,25 @@ def __init__( kernel_size: int = 3, stride: int = 1, groups: int = 1, - norm_layer: Optional[Callable[..., nn.Module]] = None + norm_layer: Optional[Callable[..., nn.Module]] = None, + activation_layer: Optional[Callable[..., nn.Module]] = None, ) -> None: padding = (kernel_size - 1) // 2 if norm_layer is None: norm_layer = nn.BatchNorm2d + if activation_layer is None: + activation_layer = nn.ReLU6 super(ConvBNReLU, self).__init__( nn.Conv2d(in_planes, out_planes, kernel_size, stride, padding, groups=groups, bias=False), norm_layer(out_planes), - nn.ReLU6(inplace=True) + activation_layer(inplace=True) ) +# necessary for backwards compatibility +ConvBNReLU = ConvBNActivation + + class InvertedResidual(nn.Module): def __init__( self, From db7522b1e3adb5824462a0e01e1a65ae6c7537e9 Mon Sep 17 00:00:00 2001 From: Vasilis Vryniotis Date: Wed, 16 Dec 2020 13:59:43 +0000 Subject: [PATCH 4/4] Reduce import scope on mobilenet to only the public and versioned classes and methods. --- torchvision/models/mobilenet.py | 2 +- torchvision/models/quantization/mobilenet.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/torchvision/models/mobilenet.py b/torchvision/models/mobilenet.py index 75e2a9a24bc..8be33d71a4e 100644 --- a/torchvision/models/mobilenet.py +++ b/torchvision/models/mobilenet.py @@ -1 +1 @@ -from .mobilenetv2 import * +from .mobilenetv2 import MobileNetV2, mobilenet_v2 diff --git a/torchvision/models/quantization/mobilenet.py b/torchvision/models/quantization/mobilenet.py index 75e2a9a24bc..8be33d71a4e 100644 --- a/torchvision/models/quantization/mobilenet.py +++ b/torchvision/models/quantization/mobilenet.py @@ -1 +1 @@ -from .mobilenetv2 import * +from .mobilenetv2 import MobileNetV2, mobilenet_v2