Releases: ScrPzz/mutant
Releases · ScrPzz/mutant
Release list
MUTANT 0.1.0
MUTANT 0.1.0 — first public release.
First public release.
Added
- Documentation: overview, search space, algorithm, data, training/INT8, case study,
reproducibility, API, provenance and roadmap (docs/); full README;CITATION.cff. mutant.viz(optional[viz]extra): Pareto landscape, convergence, size-band heatmap,
winners' fingerprint, loop diagram, test IoU vs size and architecture cards, light/dark themes;
scripts/build_figures.pyregeneratesdocs/figures/from a run directory; two executed
notebooks innotebooks/.- Search aborts when every candidate of a generation fails (systematic error) instead of
silently producing a front of failed individuals. scripts/release_check.sh(also run in CI): fails on private paths/names, dataset-specific
wording in the generic code, or Italian residue; all comments, docstrings and CLI texts are
in English.runs/case_study/: the three real search runs converted to the current schema and the four
finalists transcribed from the original training logs (checkpoints not included).mutant train: full training of a searched genotype (FP32 with early stopping →
temperature/threshold calibration → quantization-aware training with the PyTorch 2 export
flow (torchao, x86 quantizer) → INT8 conversion → test metrics, CPU latency and weight size);
artifactsbest_fp32.pth,best_qat.pth,int8_model.pt2,history.json,run_summary.json.mutant eval: evaluate an FP32 checkpoint and/or an INT8.pt2program on a split, with
calibration on the validation split (--binary-logit {logodds,target}selects how two logits
are reduced to the calibrated scalar; wrapper prefixes in checkpoints are stripped).- Calibration on a random subset of at most
calib_max_pixelsvalidation pixels (memory-bound). label_fnmodules can live next todataset.json.- Losses for the full training: Dice+Focal (search default), Dice+CE, Focal Tversky.
- Dataset-agnostic data layer:
dataset.jsonspecification (DatasetSpec),tiles
(.npz) andgeotiffadapters (label_map/label_fndecoding, class-balanced tile
filtering, cached tile index, optional padded edge tiles so that every pixel of a scene is
evaluated once), label-preserving flip/rot90 augmentation, per-channel
statistics, and themutant data {check,stats,synth}utilities. - Any number of classes and a configurable target class (
--num-classes,--target-class;
-1optimizes the mean IoU); per-class IoU from a global confusion matrix. mutantcommand-line entry point withsearch,dataandsync-mlflowsub-commands.- src-layout package
mutant(core, space, model, search, train, data, cli). - Continuous integration (lint, unit tests, synthetic end-to-end search, CLI smoke).
Changed
MUTANT_OUTPUT_DIRapplies to every command; runs are seeded globally (seed_everything)
and per DataLoader worker, so augmentation is reproducible; the GeoTIFF index cache is
invalidated when directories or scenes change.
Removed
- The inert
--w-miouoption and the unused scalar fitness. - Search outputs (
runs/,mlflow/) are written under the working directory
(override withMUTANT_OUTPUT_DIR), never next to the installed package. - The search space has a single, fully implemented CNN vocabulary; attention tokens and
frozen-encoder profiles are tracked indocs/ROADMAP.md.
Install: pip install torch (CPU or CUDA wheel) then pip install -e ".[dev]" from a clone; docs in docs/, quick start in the README.