Spaces:
Running
on
Zero
Running
on
Zero
from torch import nn | |
from typing import Union, List, List | |
vgg_urls = { | |
"vgg11": "https://download.pytorch.org/models/vgg11-8a719046.pth", | |
"vgg11_bn": "https://download.pytorch.org/models/vgg11_bn-6002323d.pth", | |
"vgg13": "https://download.pytorch.org/models/vgg13-19584684.pth", | |
"vgg13_bn": "https://download.pytorch.org/models/vgg13_bn-abd245e5.pth", | |
"vgg16": "https://download.pytorch.org/models/vgg16-397923af.pth", | |
"vgg16_bn": "https://download.pytorch.org/models/vgg16_bn-6c64b313.pth", | |
"vgg19": "https://download.pytorch.org/models/vgg19-dcbb9e9d.pth", | |
"vgg19_bn": "https://download.pytorch.org/models/vgg19_bn-c79401a0.pth", | |
} | |
vgg_cfgs = { | |
"A": [64, "M", 128, "M", 256, 256, "M", 512, 512, "M", 512, 512], | |
"B": [64, 64, "M", 128, 128, "M", 256, 256, "M", 512, 512, "M", 512, 512], | |
"D": [64, 64, "M", 128, 128, "M", 256, 256, 256, "M", 512, 512, 512, "M", 512, 512, 512], | |
"E": [64, 64, "M", 128, 128, "M", 256, 256, 256, 256, "M", 512, 512, 512, 512, "M", 512, 512, 512, 512] | |
} | |
def make_vgg_layers(cfg: List[Union[str, int]], in_channels: int = 3, batch_norm: bool = False, dilation: int = 1) -> nn.Sequential: | |
layers = [] | |
for v in cfg: | |
if v == "M": | |
layers += [nn.MaxPool2d(kernel_size=2, stride=2)] | |
else: | |
conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=dilation, dilation=dilation) | |
if batch_norm: | |
layers += [conv2d, nn.BatchNorm2d(v), nn.ReLU(inplace=True)] | |
else: | |
layers += [conv2d, nn.ReLU(inplace=True)] | |
in_channels = v | |
return nn.Sequential(*layers) | |