claimflow-api / ml_training /train_modality.py
Minifigures's picture
feat: ClaimFlow API demo backend
ceea9e1 verified
Raw
History Blame Contribute Delete
1.34 kB
"""Train the modality classifier (ct/mri/xray) on the built imaging set.
uv run python -m ml_training.train_modality --data-dir ml_training/data/imaging \
--epochs 12 --batch-size 32 --out weights/
Uses the full modality train recipe (geometric + JPEG-quality jitter + blur, the
source-confound killers) so the model cannot key on per-source compression signatures.
Saves ``weights/modality_efficientnet_b0.pt`` + ``weights/modality_config.json``.
"""
from __future__ import annotations
import argparse
from ml_training.models import add_train_args, run_training, spec_from_args
from ml_training.models.backbone import make_transforms
MODALITY_CLASSES = ["ct", "mri", "xray"] # alphabetical, must match serving config
def main(argv: list[str] | None = None) -> None:
parser = argparse.ArgumentParser(description="Train the ct/mri/xray modality classifier.")
add_train_args(parser)
args = parser.parse_args(argv)
spec = spec_from_args(
args,
name="modality",
classes=MODALITY_CLASSES,
manifest_name="manifest.csv",
label_column="modality",
train_transform=make_transforms(train=True, size=args.input_size),
eval_transform=make_transforms(train=False, size=args.input_size),
)
run_training(spec)
if __name__ == "__main__":
main()