Backbones¶
A backbone is the pretrained convolutional network that turns an image into features, before any embedding head or descriptor flattening happens.
Supported backbones¶
Name |
Architecture |
Weights |
Feature dim |
|---|---|---|---|
|
ResNet-18 |
ImageNet (torchvision default) |
512 |
|
ResNet-34 |
ImageNet (torchvision default) |
512 |
|
ResNet-50 |
ImageNet (torchvision default) |
2048 |
|
ResNet-101 |
ImageNet (torchvision default) |
2048 |
|
ResNet-152 |
ImageNet (torchvision default) |
2048 |
|
VGG-16 |
ImageNet (torchvision default) |
512 |
To list the names in code:
from pyvisim.neural_networks.backbones import build_backbone, list_backbones
print(list_backbones()) # every supported backbone name
model = build_backbone("resnet50") # torchvision model, ImageNet weights
# architecture without weights
bare = build_backbone("resnet50", pretrained=False)
Preprocessing¶
Every ResNet is served by the ImageNet preprocessing the torchvision weights
were trained with, which can be obtained via get_transform:
from pyvisim.neural_networks.backbones import get_transform
transform = get_transform("resnet50")
References¶
Deep Residual Learning for Image Recognition (He, Zhang, Ren, & Sun, 2015) https://arxiv.org/abs/1512.03385
Very Deep Convolutional Networks for Large-Scale Image Recognition (Simonyan & Zisserman, 2014) https://arxiv.org/abs/1409.1556