PyTorch layer building tools for CREYONE
Project description
creyone_model
PyTorch building blocks for Vision Transformer (ViT) and CNN models in the CREYONE framework.
Overview
creyone_model provides a config-first API for assembling ViT and CNN architectures.
All hyper-parameters live in composable dataclass configs, and every module exposes a
unified trainable_parameters / reset_parameters interface for fine-tuning workflows.
The library is built around CreYonT — a thin tensor wrapper that lets you pipe
nn.Module calls with method chaining (x(layer1)(layer2)) while preserving
subclass-specific metadata (masks, position IDs, etc.) through every operation.
Installation
pip install creyone_model
Requires Python ≥ 3.10 and PyTorch ≥ 2.0. Depends on creyone_layer and timm.
Package structure
creyone_model/
├── cynn/ # CreYonT tensor wrapper
├── cnn/ # CNNBlockCfg, ConvNormAct
├── vit/ # ViTCfg, ViT, pretrained configs, weight filters
├── transformer/ # TransformerCfg, Transformer, BlockCfg, Block
├── attention/ # AttnCfg, Attention, AttentionLoRA (LoRA)
├── mlp/ # MlpCfg, Mlp
├── embed/ # PatchEmbedCfg, PatchEmbed, ViTEmbedCfg, ViTEmbed
├── image/ # ImageClassification task wrapper
├── base/ # ModelCfg, ModuleBase, registry helpers
└── utils/ # BaseCfg, BuildShelf / BuildBook, registry
Quick start
CNN block
from creyone_model import CNNBlockCfg
cfg = CNNBlockCfg(tensor_dims=2, act_name='silu')
block = cfg.block_module(in_dim=3, out_dim=64, kernel_size=3)
from creyone_model.cynn import CreYonT
import torch
x = CreYonT(torchT=torch.randn(1, 3, 224, 224))
y = block(x) # CreYonT (1, 64, 224, 224)
ViT encoder
from creyone_model.vit import ViT, ViTCfg
from creyone_model.transformer import TransformerCfg
from creyone_model.cynn import CreYonT
import torch
cfg = ViTCfg(
output_dim=512,
transformer=TransformerCfg(depth=12, embed_dim=768),
)
model = ViT(cfg)
x = CreYonT(torchT=torch.randn(1, 3, 224, 224))
out = model(x) # CreYonT (1, 512)
Image classification via create_model
from creyone_model.factory import create_model
model = create_model(
'vit_base_16_224',
task_name='image_classification',
pretrained=True,
num_classes=1000,
)
Model name format: vit_<size>_<patch>_<imgsize> (e.g. vit_base_16_224,
vit_small_16_384). To use a different input resolution when loading a pretrained
checkpoint: vit_base_16_224(256) or vit_base_16_224(128x256).
Fine-tuning with trainable_parameters
Every module follows the same interface:
mode |
Effect |
|---|---|
'all' |
Unfreeze everything |
'none' |
Freeze everything |
'add' |
Freeze backbone, keep adapter / LoRA weights trainable |
'transformer' |
Unfreeze only the transformer blocks |
'head' |
Unfreeze only the classification head |
'transformer/head' |
Unfreeze transformer blocks and head |
# Fine-tune the head only
model.body.trainable_parameters('head')
# Fine-tune with LoRA adapters in the transformer
model.body.trainable_parameters('add')
Core concepts
CreYonT
CreYonT wraps a torch.Tensor and intercepts PyTorch operations via
__torch_function__, so existing nn.Module code works without modification.
Its __call__ enables functional chaining:
from creyone_model.cynn import CreYonT
x = CreYonT(torchT=tensor)
y = x(linear)(norm)(act) # equivalent to act(norm(linear(tensor)))
Config-first factory pattern
All modules are built from BaseCfg dataclasses. Nested configs compose cleanly:
from creyone_model.transformer import TransformerCfg
from creyone_model.transformer.block import BlockCfg
from creyone_model.attention import AttnCfg
cfg = TransformerCfg(
depth=6,
embed_dim=384,
drop_path_rate=0.1,
block=BlockCfg(
init_values=1e-5, # LayerScale
attn=AttnCfg(
num_heads=6,
bias='qkvo',
qk_norm='qk',
),
),
)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file creyone_model-1.0.4.tar.gz.
File metadata
- Download URL: creyone_model-1.0.4.tar.gz
- Upload date:
- Size: 48.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c50bfe4692ba6c1cbb7512197d5ad73abee2c844f2cceead5a69cc04e5cb1a5
|
|
| MD5 |
cea8c5f95a325be09d365d348b71a353
|
|
| BLAKE2b-256 |
49408e414fb8a9be5c3623155d41d52d26a0a1f117b8252fe073894ca69d6e16
|
Provenance
The following attestation bundles were made for creyone_model-1.0.4.tar.gz:
Publisher:
publish.yml on qnilix/creyone_model
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
creyone_model-1.0.4.tar.gz -
Subject digest:
4c50bfe4692ba6c1cbb7512197d5ad73abee2c844f2cceead5a69cc04e5cb1a5 - Sigstore transparency entry: 1895916158
- Sigstore integration time:
-
Permalink:
qnilix/creyone_model@854f58dc8c257ef60db8238d630c6026449bb423 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/qnilix
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@854f58dc8c257ef60db8238d630c6026449bb423 -
Trigger Event:
push
-
Statement type:
File details
Details for the file creyone_model-1.0.4-py3-none-any.whl.
File metadata
- Download URL: creyone_model-1.0.4-py3-none-any.whl
- Upload date:
- Size: 63.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65108c194c5acf6cc78d8866f2ca7ddd4141534ef515bfa9dc2c22883705085b
|
|
| MD5 |
f38a6bb0114763d0b390a366769a0da0
|
|
| BLAKE2b-256 |
124b745d40c60a787097c772fe4adb9ba35c8fcf9e50cec766816a0f01399014
|
Provenance
The following attestation bundles were made for creyone_model-1.0.4-py3-none-any.whl:
Publisher:
publish.yml on qnilix/creyone_model
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
creyone_model-1.0.4-py3-none-any.whl -
Subject digest:
65108c194c5acf6cc78d8866f2ca7ddd4141534ef515bfa9dc2c22883705085b - Sigstore transparency entry: 1895916404
- Sigstore integration time:
-
Permalink:
qnilix/creyone_model@854f58dc8c257ef60db8238d630c6026449bb423 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/qnilix
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@854f58dc8c257ef60db8238d630c6026449bb423 -
Trigger Event:
push
-
Statement type: