Workflow i CLI¶
Po ostatnim refaktorze Easy-RT-DETR ma juz jeden glowny workflow eksperymentow zamiast wielu rozlacznych skryptow.
Glowne elementy¶
Nowy stack sklada sie z:
- YAML configow w
configs/, - loadera configow i override'ow w
easy_rtdetr/configuration.py, - wspolnego solvera w
easy_rtdetr/engine/solver.py, - wspolnych builderow danych w
easy_rtdetr/data/, - builderow optimizera, schedulerow, warmupu i EMA w
easy_rtdetr/optim/, - glownego CLI w
easy_rtdetr/cli.py, - cienkich wrapperow w
scripts/.
To jest teraz preferowana sciezka uruchamiania projektu.
Glowne entrypointy¶
W repo pozostaly uniwersalne skrypty:
scripts/train.pyscripts/eval.pyscripts/visualize.pyscripts/calibrate.pyscripts/prepare_dataset.pyscripts/run_remote.py
Skrypty dataset-specific zostaly usuniete z glownego workflow.
Trening¶
Przyklad treningu na VOC car:
.venv/bin/python scripts/train.py --config configs/voc_car/base.yaml
Przyklad treningu z override:
.venv/bin/python scripts/train.py \
--config configs/voc_car/base.yaml \
--set solver.epochs=5 \
--set model.backbone_name=resnet34
Mozna tez wymusic zapis finalnego checkpointu pod konkretna sciezka:
.venv/bin/python scripts/train.py \
--config configs/voc_car/base.yaml \
--output artifacts/voc_car_best.pt
Ewaluacja¶
Przyklad:
.venv/bin/python scripts/eval.py \
--config configs/voc_car/base.yaml \
--checkpoint runs/voc_car/.../checkpoints/best.pt
Wynik obejmuje miedzy innymi:
AP50AP75mAP@0.50:0.95avg_best_iou- proxy precision/recall
- duplikaty boxow
Wizualizacja¶
Przyklad:
.venv/bin/python scripts/visualize.py \
--config configs/voc_car/base.yaml \
--checkpoint runs/voc_car/.../checkpoints/best.pt \
--input car_on_street.avif \
--output-dir artifacts/inference_vis
Kalibracja score¶
Model zwraca surowe score po sigmoid, ale repo zawiera tez prosty etap kalibracji precision:
.venv/bin/python scripts/calibrate.py \
--config configs/voc_car/base.yaml \
--checkpoint runs/voc_car/.../checkpoints/best.pt \
--output artifacts/voc_calibration.json
To jest przydatne do wizualizacji typu:
raw=...p=...
gdzie p jest empiryczna precyzja oszacowana na zbiorze ewaluacyjnym.
Co robi solver¶
Wspolny solver obsluguje:
- train loop,
- eval loop,
- checkpointing
best/last, - AMP,
- gradient clipping,
- scheduler learning rate,
- warmup,
- EMA wag modelu,
- logowanie i prosty profiling.
Struktura wynikow¶
Kazdy run tworzy katalog z:
checkpoints/best.ptcheckpoints/last.ptmetrics.jsonconfig_resolved.yamltrain.log
To upraszcza porownywanie eksperymentow i integracje ze zdalnym runnerem.