| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #!/usr/bin/env python3
- """Run the whole vibration pipeline: build -> split -> train -> evaluate -> infer.
- Default reproduces the documented 3h vibration model. Pass ``--window-hours 6``
- to keep the 6h capability (not regenerated by default).
- """
- from __future__ import annotations
- import argparse
- import subprocess
- import sys
- from pathlib import Path
- HERE = Path(__file__).resolve().parent
- def run(script: str, *args: str) -> None:
- command = [sys.executable, str(HERE / script), *args]
- print("\n$ " + " ".join(command), flush=True)
- subprocess.run(command, check=True)
- def main() -> None:
- parser = argparse.ArgumentParser(description="振动模型完整流水线")
- parser.add_argument("--window-hours", type=int, default=3)
- parser.add_argument("--skip-build", action="store_true")
- parser.add_argument("--skip-split", action="store_true")
- parser.add_argument("--skip-train", action="store_true")
- args = parser.parse_args()
- window = str(args.window_hours)
- if not args.skip_build:
- run("build_datasets.py", "--window-hours", window)
- if not args.skip_split:
- run("split_datasets.py", "--split-ratios", "6.5", "2", "1.5", "--seed", "20260921", "--positive-basis", "groups")
- if not args.skip_train:
- run("train_model.py", "--all-normal", "--rounds", "800", "--early-stopping-rounds", "50")
- run("evaluate_model.py")
- run("infer_and_combine.py")
- if __name__ == "__main__":
- main()
|