Source: scripts/train_small_3d_pilot.py · Plain text

scripts/train_small_3d_pilot.py

"""Execute the train-only small dynamic carrier engineering pilot."""

import argparse
import json
from pathlib import Path

from mcss.mechanism_pilot.small_training import SmallTrainingConfig, run_small_training
from mcss.mechanism_pilot.spatial import SPATIAL_MODES, carrier_config_for_spatial_mode


def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("--manifest", type=Path, required=True)
    parser.add_argument("--output-dir", type=Path, required=True)
    parser.add_argument("--device", default="cuda", choices=("cpu", "cuda"))
    parser.add_argument("--config", type=Path)
    parser.add_argument("--spatial-mode", choices=SPATIAL_MODES, default="legacy-forward")
    args = parser.parse_args()
    config = SmallTrainingConfig(**json.loads(args.config.read_text())) if args.config else None
    print(
        json.dumps(
            run_small_training(
                args.manifest,
                args.output_dir,
                device=args.device,
                config=config,
                carrier_config=carrier_config_for_spatial_mode(args.spatial_mode),
            ),
            indent=2,
        )
    )


if __name__ == "__main__":
    main()