Config-driven PyTorch training framework: assemble nets, data, losses and trainers from YAML
Project description
echelon3
Config-driven PyTorch training framework. Every component of a training run —
network, dataset, augmentations, losses, metrics, optimizer, scheduler, trainer,
export — is described in a YAML config as a module / type / config triple
and instantiated dynamically:
net:
module: echelon3.nets.classifier # import path (or a path to a .py file)
type: ClassifierNet # class or factory function in that module
config: { ... } # constructor kwargs
There is no component registry: anything importable can be plugged in — classes
from echelon3, from torch/timm/torchmetrics/albumentations, or from
your own project code living next to your configs.
Documentation: https://veryviolet.github.io/echelon3/
Install
pip install echelon3
Train
echelon3-train --config-dir ./configs --config-name my_experiment
CLIs: echelon3-train, echelon3-finetune (warm-start / freeze / head-only),
echelon3-evaluate, echelon3-run (inference), echelon3-export (ONNX).
Multi-GPU — built in, no torchrun
Name the GPUs and echelon3 spawns one DDP worker per GPU itself:
echelon3-train --config-dir ./configs --config-name my_experiment gpus=[0,1,2,3]
gpus is a root config key — leave it out and echelon3 uses every visible GPU on
the node. dataloaders.train.config.batch_size is the global batch size; it
is split across ranks automatically. torchrun (and SLURM srun) still work
unchanged for multi-node / elastic jobs.
DataParallel was removed in 0.5.0 — multiple GPUs always run as DDP.
Mixed precision
Training, evaluation and inference use bf16 automatic mixed precision by
default on capable GPUs (fp32 on CPU / unsupported GPUs) — a large speedup on
modern hardware. Force full fp32 with precision: fp32 under trainer.config
(or precision: fp32 at the config root for evaluate / run).
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.
Project details
Release history Release notifications | RSS feed
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.5.1.tar.gz.
File metadata
- Download URL: echelon3-0.5.1.tar.gz
- Upload date:
- Size: 115.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
598d63b2eff8df1b0b6dc03e3b4c42ca63dce78c75347da84470d97c6ad262bb
|
|
| MD5 |
d0e956ce8e49304d2becf6004cbb392c
|
|
| BLAKE2b-256 |
d9e2e5a9024b7a30c92a8c77424e872c1d7aa7fda09e77b39ada0ba6d50fcd7a
|
Provenance
The following attestation bundles were made for echelon3-0.5.1.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.5.1.tar.gz -
Subject digest:
598d63b2eff8df1b0b6dc03e3b4c42ca63dce78c75347da84470d97c6ad262bb - Sigstore transparency entry: 2113559971
- Sigstore integration time:
-
Permalink:
veryviolet/echelon3@13cca0412abc3e5acbf59d8428ed801241d10d5c -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/veryviolet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13cca0412abc3e5acbf59d8428ed801241d10d5c -
Trigger Event:
push
-
Statement type:
File details
Details for the file echelon3-0.5.1-py3-none-any.whl.
File metadata
- Download URL: echelon3-0.5.1-py3-none-any.whl
- Upload date:
- Size: 122.7 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 |
fab83ef79fe0eacbf3a56deb3723600f4ad3b2f08a11dfc4acf76f1083634ca8
|
|
| MD5 |
2211e65427a7cb5797c472a67abf8588
|
|
| BLAKE2b-256 |
a3b8a0a568cced3541394c6eb8de67862529b73c33ef07ec63aa6a03f7331f55
|
Provenance
The following attestation bundles were made for echelon3-0.5.1-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.5.1-py3-none-any.whl -
Subject digest:
fab83ef79fe0eacbf3a56deb3723600f4ad3b2f08a11dfc4acf76f1083634ca8 - Sigstore transparency entry: 2113560015
- Sigstore integration time:
-
Permalink:
veryviolet/echelon3@13cca0412abc3e5acbf59d8428ed801241d10d5c -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/veryviolet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13cca0412abc3e5acbf59d8428ed801241d10d5c -
Trigger Event:
push
-
Statement type: