The 3-Tier System
torchvision-customizer is built around three tiers of abstraction, designed to flexible for different needs.
Tier 1: Component Registry
The foundation of the library. It manages all building blocks.
from torchvision_customizer import registry
# Get a block class
ConvBlock = registry.get('conv')
block = ConvBlock(64, 128)
Tier 2: Architecture Recipes
Declarative blueprints. Ideal for saving configurations and rapid experimentation.
from torchvision_customizer import Recipe, build_recipe
recipe = Recipe(
stem="conv(64)",
stages=["residual(64) x 2", "residual(128) x 2 | downsample"],
head="linear(10)"
)
model = build_recipe(recipe)
Tier 3: Model Composer
Fluent, imperative API. Best for readability and writing custom model scripts.
from torchvision_customizer import Stem, Stage, Head
model = (
Stem(64)
>> Stage(64, blocks=2, pattern='residual')
>> Stage(128, blocks=2, pattern='residual+se', downsample=True)
>> Head(10)
)
Parametric Templates
For standard architectures with modern tweaks.
from torchvision_customizer import resnet, vgg
# Standard ResNet-50
model = resnet(layers=50)