echelon3
Describe a PyTorch training run in YAML — network, data, augmentations, losses, metrics, optimizer, scheduler, trainer, export — and run it with one command.
No training-loop boilerplate and no component registry: every piece is a
module / type / config triple that echelon3 imports and instantiates, so
anything importable drops straight in — classes from echelon3, from
torch / timm / torchmetrics / albumentations, or from your own project code
sitting next to your configs.
# my_run.yaml — a whole training run
net: { module: my_pkg.nets, type: MyNet, config: { channels: 32 } }
data:
train: { module: my_pkg.data, type: MyDataset, config: { split: train } }
test: { module: my_pkg.data, type: MyDataset, config: { split: test } }
dataloaders:
train: { module: torch.utils.data, type: DataLoader, config: { batch_size: 64, shuffle: true } }
test: { module: torch.utils.data, type: DataLoader, config: { batch_size: 128 } }
loss:
- ce: { module: torch.nn, type: CrossEntropyLoss, config: {} }
optimizer: { module: torch.optim, type: AdamW, config: { lr: 3e-4 } }
trainer: { module: echelon3.trainers.baseline, type: Trainer, config: { epochs: 50 } }
target: { path: ./out }
echelon3 train -cd . -cn my_run # trains, validates, keeps the best, checkpoints, resumes
What you get
- One CLI, five tasks —
echelon3 train | finetune | evaluate | run | export. - Multi-GPU with no
torchrun—gpus=[0,1,2,3]spawns one DDP worker per GPU;batch_sizeis global and split across ranks automatically. - bf16 mixed precision by default on capable GPUs (
precision: fp32to opt out), plus an optionaltorch.compileknob and TF32. - Batteries included in the trainer — automatic resume, keep-best-checkpoint,
validation schedule, TensorBoard / mlops logging, clean
Ctrl-C. - Override anything on the CLI —
trainer.config.epochs=100 optimizer.config.lr=1e-4,~schedulerdrops a section,+key=…adds one; typed values, list literals,${oc.env:VAR,default}interpolation, anddefaults:config composition (OmegaConf). - Your own code, no registration — reference nets / datasets / losses by import
path and run from your repo root (the cwd is on
sys.path).
Install
pip install echelon3
# extras: echelon3[export] (ONNX) echelon3[detection] echelon3[smp]
CLI & overrides
echelon3 train -cd ./configs -cn my_run # train (auto-resumes from target.path)
echelon3 finetune -cd ./configs -cn my_run # + warm-start / freeze / head-only
echelon3 evaluate -cd ./configs -cn my_run # score the latest checkpoint
echelon3 export -cd ./configs -cn my_run # preprocess→net→postprocess to ONNX
echelon3 run -cd ./configs -cn my_run # inference over images / video
# override any config value; +add, ~delete, typed values, multi-GPU:
echelon3 train -cd ./configs -cn my_run \
trainer.config.epochs=100 optimizer.config.lr=5e-4 \
dataloaders.train.config.batch_size=256 \
gpus=[0,1] +trainer.config.compile=true ~scheduler
--config-dir/-cd picks the directory, --config-name/-cn the YAML.
Quick start
examples/ has self-contained smoke runs — a classifier, a CenterNet-style detector
and semantic segmentation — each with a synthetic-data generator and a minimal config
that trains, validates and checkpoints on CPU or GPU. For example:
cd examples/segmentation
python gen_seg_data.py --root ./seg_data
SEG_DATA=./seg_data echelon3 train -cd . -cn segmentation_smoke device=cpu
Use it from your AI coding agent
Marketplace-installable plugins teach Codex and Claude Code the echelon3 config format and CLI, so the agent writes correct configs and runs them for you — repo: https://github.com/veryviolet/echelon3-agent-skills.
# Codex
codex plugin marketplace add veryviolet/echelon3-agent-skills
codex plugin add echelon3@veryviolet
# Claude Code (run inside the REPL)
/plugin marketplace add veryviolet/echelon3-agent-skills
/plugin install echelon3@veryviolet
Full documentation
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 echelon3-0.9.4.tar.gz.
File metadata
- Download URL: echelon3-0.9.4.tar.gz
- Upload date:
- Size: 126.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 |
eb7e2e32408e721d7353122974e5e729b3d15e47fed1133e9534301ab849d997
|
|
| MD5 |
16c316fcf0d87764b70184343af3d498
|
|
| BLAKE2b-256 |
81527cbec9e97ed1e9a0379ff049af1a64ca07e2fe9dde84354d947112423fa1
|
Provenance
The following attestation bundles were made for echelon3-0.9.4.tar.gz:
Publisher:
publish.yml on veryviolet/echelon3
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
echelon3-0.9.4.tar.gz -
Subject digest:
eb7e2e32408e721d7353122974e5e729b3d15e47fed1133e9534301ab849d997 - Sigstore transparency entry: 2190514768
- Sigstore integration time:
-
Permalink:
veryviolet/echelon3@528e145cee8b0d99599577d21745af4f32b05c97 -
Branch / Tag:
refs/tags/v0.9.4 - Owner: https://github.com/veryviolet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@528e145cee8b0d99599577d21745af4f32b05c97 -
Trigger Event:
push
-
Statement type:
File details
Details for the file echelon3-0.9.4-py3-none-any.whl.
File metadata
- Download URL: echelon3-0.9.4-py3-none-any.whl
- Upload date:
- Size: 170.6 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 |
d1e0a618d6fa5a03b08561c92c0db342a092b15ac77e76ae0b8fed2988464f1e
|
|
| MD5 |
de5620a81e55f044713c2f4d3547eedd
|
|
| BLAKE2b-256 |
51c87775d9735c953ab062f8cbdab06df9cfb4a457cbe510b600c9d4ebc7cbec
|
Provenance
The following attestation bundles were made for echelon3-0.9.4-py3-none-any.whl:
Publisher:
publish.yml on veryviolet/echelon3
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
echelon3-0.9.4-py3-none-any.whl -
Subject digest:
d1e0a618d6fa5a03b08561c92c0db342a092b15ac77e76ae0b8fed2988464f1e - Sigstore transparency entry: 2190514773
- Sigstore integration time:
-
Permalink:
veryviolet/echelon3@528e145cee8b0d99599577d21745af4f32b05c97 -
Branch / Tag:
refs/tags/v0.9.4 - Owner: https://github.com/veryviolet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@528e145cee8b0d99599577d21745af4f32b05c97 -
Trigger Event:
push
-
Statement type: