feat: migrate switch to conditional flow matching from sphere trajectory

This commit is contained in:
gameloader
2026-01-22 14:37:50 +08:00
parent c15115edc4
commit 444f5fc109
5 changed files with 1264 additions and 455 deletions

50
main.py
View File

@@ -4,12 +4,13 @@ from as_mamba import TrainConfig, run_training_and_plot
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="Train AS-Mamba on sphere-to-sphere flow.")
parser = argparse.ArgumentParser(description="Train AS-Mamba on MNIST flow matching.")
parser.add_argument("--epochs", type=int, default=None)
parser.add_argument("--batch-size", type=int, default=None)
parser.add_argument("--steps-per-epoch", type=int, default=None)
parser.add_argument("--batch-size", type=int, default=None)
parser.add_argument("--seq-len", type=int, default=None)
parser.add_argument("--lr", type=float, default=None)
parser.add_argument("--weight-decay", type=float, default=None)
parser.add_argument("--device", type=str, default=None)
parser.add_argument("--output-dir", type=str, default=None)
parser.add_argument("--project", type=str, default=None)
@@ -20,29 +21,28 @@ def build_parser() -> argparse.ArgumentParser:
parser.add_argument("--lambda-flow", type=float, default=None)
parser.add_argument("--lambda-pos", type=float, default=None)
parser.add_argument("--lambda-dt", type=float, default=None)
parser.add_argument(
"--use-flow-loss",
action=argparse.BooleanOptionalAction,
default=None,
)
parser.add_argument(
"--use-pos-loss",
action=argparse.BooleanOptionalAction,
default=None,
)
parser.add_argument(
"--use-dt-loss",
action=argparse.BooleanOptionalAction,
default=None,
)
parser.add_argument("--use-flow-loss", action=argparse.BooleanOptionalAction, default=None)
parser.add_argument("--use-pos-loss", action=argparse.BooleanOptionalAction, default=None)
parser.add_argument("--use-dt-loss", action=argparse.BooleanOptionalAction, default=None)
parser.add_argument("--num-classes", type=int, default=None)
parser.add_argument("--image-size", type=int, default=None)
parser.add_argument("--channels", type=int, default=None)
parser.add_argument("--num-workers", type=int, default=None)
parser.add_argument("--dataset-name", type=str, default=None)
parser.add_argument("--dataset-split", type=str, default=None)
parser.add_argument("--d-model", type=int, default=None)
parser.add_argument("--n-layer", type=int, default=None)
parser.add_argument("--d-state", type=int, default=None)
parser.add_argument("--d-conv", type=int, default=None)
parser.add_argument("--expand", type=int, default=None)
parser.add_argument("--headdim", type=int, default=None)
parser.add_argument("--chunk-size", type=int, default=None)
parser.add_argument("--use-residual", action=argparse.BooleanOptionalAction, default=None)
parser.add_argument("--val-every", type=int, default=None)
parser.add_argument("--val-samples", type=int, default=None)
parser.add_argument("--val-plot-samples", type=int, default=None)
parser.add_argument("--val-samples-per-class", type=int, default=None)
parser.add_argument("--val-grid-rows", type=int, default=None)
parser.add_argument("--val-max-steps", type=int, default=None)
parser.add_argument("--center-min", type=float, default=None)
parser.add_argument("--center-max", type=float, default=None)
parser.add_argument("--center-distance-min", type=float, default=None)
parser.add_argument("--use-residual", action="store_true")
parser.add_argument("--use-ddp", action=argparse.BooleanOptionalAction, default=None)
return parser
@@ -55,8 +55,8 @@ def main() -> None:
if value is not None:
setattr(cfg, key.replace("-", "_"), value)
plot_path = run_training_and_plot(cfg)
print(f"Saved trajectory plot to {plot_path}")
out_path = run_training_and_plot(cfg)
print(f"Saved outputs to {out_path}")
if __name__ == "__main__":