Getting Started¶
Installation¶
Install the package from PyPI:
pip install creyone_model
creyone_model requires Python ≥ 3.10 and PyTorch ≥ 2.0.
The companion creyone_layer package (which supplies the registered layer
factories) is installed automatically as a dependency.
Basic usage¶
1. Create a config object¶
CNNBlockCfg is a plain Python dataclass. All
fields have sensible defaults (2-D tensors, standard convolution,
BatchNorm, ReLU), so you only need to specify what differs:
from creyone_model import CNNBlockCfg
cfg = CNNBlockCfg(
tensor_dims=2, # 2-D spatial (image) tensors
act_name='silu', # swap ReLU → SiLU
norm_name='batch',
)
2. Build a ConvNormAct block¶
Call block_module() to get a ready-to-use
nn.Module:
block = cfg.block_module(in_dim=3, out_dim=64, kernel_size=3)
# block: Conv2d(3→64) → BatchNorm2d(64) → SiLU()
import torch
x = torch.randn(1, 3, 224, 224)
y = block(x) # shape: (1, 64, 224, 224)
3. Override per-block layer options¶
Factory methods accept keyword overrides so individual blocks can deviate from the shared config without spawning a whole new config object:
# One block with LayerNorm instead of BatchNorm
special_block = ConvNormAct(
cfg, in_dim=64, out_dim=128,
kernel_size=3, norm_name='layer',
)
Building configs from kwargs¶
For programmatic construction (e.g. from a YAML file), use the class-method
instance():
cfg, remaining = CNNBlockCfg.instance(
tensor_dims=2,
act_name='gelu',
norm_eps=1e-6,
unknown_key='ignored', # returned in `remaining`
)
Nested BaseCfg fields are built recursively; any
kwargs not consumed by a level are passed down to sub-configs.