diff --git a/bob/ip/binseg/modeling/backbones/resnet.py b/bob/ip/binseg/modeling/backbones/resnet.py index f26c5d57721752c8133eab11f7239f1f4fd5630b..445c4ba715cb756a0c90ad688d493e6e0d3f2535 100644 --- a/bob/ip/binseg/modeling/backbones/resnet.py +++ b/bob/ip/binseg/modeling/backbones/resnet.py @@ -15,27 +15,27 @@ model_urls = { } -def _conv3x3(in_planes, out_planes, stride=1): +def conv3x3(in_planes, out_planes, stride=1): """3x3 convolution with padding""" return nn.Conv2d( in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=False, ) -def _conv1x1(in_planes, out_planes, stride=1): +def conv1x1(in_planes, out_planes, stride=1): """1x1 convolution""" return nn.Conv2d(in_planes, out_planes, kernel_size=1, stride=stride, bias=False) -class _BasicBlock(nn.Module): +class BasicBlock(nn.Module): expansion = 1 def __init__(self, inplanes, planes, stride=1, downsample=None): - super(_BasicBlock, self).__init__() - self.conv1 = _conv3x3(inplanes, planes, stride) + super(BasicBlock, self).__init__() + self.conv1 = conv3x3(inplanes, planes, stride) self.bn1 = nn.BatchNorm2d(planes) self.relu = nn.ReLU(inplace=True) - self.conv2 = _conv3x3(planes, planes) + self.conv2 = conv3x3(planes, planes) self.bn2 = nn.BatchNorm2d(planes) self.downsample = downsample self.stride = stride @@ -59,16 +59,16 @@ class _BasicBlock(nn.Module): return out -class _Bottleneck(nn.Module): +class Bottleneck(nn.Module): expansion = 4 def __init__(self, inplanes, planes, stride=1, downsample=None): - super(_Bottleneck, self).__init__() - self.conv1 = _conv1x1(inplanes, planes) + super(Bottleneck, self).__init__() + self.conv1 = conv1x1(inplanes, planes) self.bn1 = nn.BatchNorm2d(planes) - self.conv2 = _conv3x3(planes, planes, stride) + self.conv2 = conv3x3(planes, planes, stride) self.bn2 = nn.BatchNorm2d(planes) - self.conv3 = _conv1x1(planes, planes * self.expansion) + self.conv3 = conv1x1(planes, planes * self.expansion) self.bn3 = nn.BatchNorm2d(planes * self.expansion) self.relu = nn.ReLU(inplace=True) self.downsample = downsample @@ -141,16 +141,16 @@ class ResNet(nn.Module): # This improves the model by 0.2~0.3% according to https://arxiv.org/abs/1706.02677 if zero_init_residual: for m in self.modules(): - if isinstance(m, _Bottleneck): + if isinstance(m, Bottleneck): nn.init.constant_(m.bn3.weight, 0) - elif isinstance(m, _BasicBlock): + elif isinstance(m, BasicBlock): nn.init.constant_(m.bn2.weight, 0) def _make_layer(self, block, planes, blocks, stride=1): downsample = None if stride != 1 or self.inplanes != planes * block.expansion: downsample = nn.Sequential( - _conv1x1(self.inplanes, planes * block.expansion, stride), + conv1x1(self.inplanes, planes * block.expansion, stride), nn.BatchNorm2d(planes * block.expansion), ) @@ -179,7 +179,7 @@ def resnet18(pretrained=False, **kwargs): Args: pretrained (bool): If True, returns a model pre-trained on ImageNet """ - model = ResNet(_BasicBlock, [2, 2, 2, 2], **kwargs) + model = ResNet(BasicBlock, [2, 2, 2, 2], **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["resnet18"])) return model @@ -190,7 +190,7 @@ def resnet34(pretrained=False, **kwargs): Args: pretrained (bool): If True, returns a model pre-trained on ImageNet """ - model = ResNet(_BasicBlock, [3, 4, 6, 3], **kwargs) + model = ResNet(BasicBlock, [3, 4, 6, 3], **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["resnet34"])) return model @@ -201,7 +201,7 @@ def resnet50(pretrained=False, **kwargs): Args: pretrained (bool): If True, returns a model pre-trained on ImageNet """ - model = ResNet(_Bottleneck, [3, 4, 6, 3], **kwargs) + model = ResNet(Bottleneck, [3, 4, 6, 3], **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["resnet50"])) return model @@ -212,7 +212,7 @@ def shaperesnet50(pretrained=False, **kwargs): Args: pretrained (bool): If True, returns a model pre-trained on ImageNet """ - model = ResNet(_Bottleneck, [3, 4, 6, 3], **kwargs) + model = ResNet(Bottleneck, [3, 4, 6, 3], **kwargs) if pretrained: model.load_state_dict( model_zoo.load_url( @@ -227,7 +227,7 @@ def resnet101(pretrained=False, **kwargs): Args: pretrained (bool): If True, returns a model pre-trained on ImageNet """ - model = ResNet(_Bottleneck, [3, 4, 23, 3], **kwargs) + model = ResNet(Bottleneck, [3, 4, 23, 3], **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["resnet101"])) return model @@ -238,7 +238,7 @@ def resnet152(pretrained=False, **kwargs): Args: pretrained (bool): If True, returns a model pre-trained on ImageNet """ - model = ResNet(_Bottleneck, [3, 8, 36, 3], **kwargs) + model = ResNet(Bottleneck, [3, 8, 36, 3], **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["resnet152"])) return model diff --git a/bob/ip/binseg/modeling/backbones/vgg.py b/bob/ip/binseg/modeling/backbones/vgg.py index 390f6ef44105b6d4aa6fccf938bbfd28394b8b76..e3909fcbb2096f3c91a1b8e3f359dae42365f22b 100644 --- a/bob/ip/binseg/modeling/backbones/vgg.py +++ b/bob/ip/binseg/modeling/backbones/vgg.py @@ -52,7 +52,7 @@ class VGG(nn.Module): nn.init.constant_(m.bias, 0) -def _make_layers(cfg, batch_norm=False): +def make_layers(cfg, batch_norm=False): layers = [] in_channels = 3 for v in cfg: @@ -124,7 +124,7 @@ def vgg11(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["A"]), **kwargs) + model = VGG(make_layers(_cfg["A"]), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg11"])) return model @@ -137,7 +137,7 @@ def vgg11_bn(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["A"], batch_norm=True), **kwargs) + model = VGG(make_layers(_cfg["A"], batch_norm=True), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg11_bn"])) return model @@ -150,7 +150,7 @@ def vgg13(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["B"]), **kwargs) + model = VGG(make_layers(_cfg["B"]), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg13"])) return model @@ -163,7 +163,7 @@ def vgg13_bn(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["B"], batch_norm=True), **kwargs) + model = VGG(make_layers(_cfg["B"], batch_norm=True), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg13_bn"])) return model @@ -176,7 +176,7 @@ def vgg16(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["D"]), **kwargs) + model = VGG(make_layers(_cfg["D"]), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg16"]), strict=False) return model @@ -189,7 +189,7 @@ def vgg16_bn(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["D"], batch_norm=True), **kwargs) + model = VGG(make_layers(_cfg["D"], batch_norm=True), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg16_bn"])) return model @@ -202,7 +202,7 @@ def vgg19(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["E"]), **kwargs) + model = VGG(make_layers(_cfg["E"]), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg19"])) return model @@ -215,7 +215,7 @@ def vgg19_bn(pretrained=False, **kwargs): """ if pretrained: kwargs["init_weights"] = False - model = VGG(_make_layers(_cfg["E"], batch_norm=True), **kwargs) + model = VGG(make_layers(_cfg["E"], batch_norm=True), **kwargs) if pretrained: model.load_state_dict(model_zoo.load_url(model_urls["vgg19_bn"])) return model diff --git a/bob/ip/binseg/utils/model_zoo.py b/bob/ip/binseg/utils/model_zoo.py index 02649addac424dbe4849eac2df3083771b387074..9c1b74870cbc6d63da07867166451508057d2c3e 100644 --- a/bob/ip/binseg/utils/model_zoo.py +++ b/bob/ip/binseg/utils/model_zoo.py @@ -35,7 +35,7 @@ modelurls = { """URLs of pre-trained models (backbones)""" -def _download_url_to_file(url, dst, hash_prefix, progress): +def download_url_to_file(url, dst, hash_prefix, progress): file_size = None u = urlopen(url) meta = u.info() @@ -109,6 +109,6 @@ def cache_url(url, model_dir=None, progress=True): hash_prefix = HASH_REGEX.search(filename) if hash_prefix is not None: hash_prefix = hash_prefix.group(1) - _download_url_to_file(url, cached_file, hash_prefix, progress=progress) + download_url_to_file(url, cached_file, hash_prefix, progress=progress) return cached_file