-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrain_stack.py
More file actions
47 lines (36 loc) · 1.19 KB
/
Copy pathtrain_stack.py
File metadata and controls
47 lines (36 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python3
"""Train both one-class GNN models in sequence (malware + benign)."""
import argparse
import subprocess
import sys
def run_cmd(cmd: list[str]) -> int:
print("[TrainStack] Running:", " ".join(cmd))
return subprocess.call(cmd)
def main() -> int:
parser = argparse.ArgumentParser(
description="Train malware + benign one-class GNN stack"
)
parser.add_argument("manifest", help="Path to dataset_manifest.csv")
parser.add_argument("--base-dir", default=None, dest="base_dir")
parser.add_argument(
"--exclude-uncertain",
action="store_true",
dest="exclude_uncertain",
)
args, passthrough = parser.parse_known_args()
py = sys.executable
common = [args.manifest]
if args.base_dir:
common += ["--base-dir", args.base_dir]
if args.exclude_uncertain:
common += ["--exclude-uncertain"]
rc = run_cmd([py, "train_malware_model.py", *common, *passthrough])
if rc != 0:
return rc
rc = run_cmd([py, "train_benign_model.py", *common, *passthrough])
if rc != 0:
return rc
print("[TrainStack] Done.")
return 0
if __name__ == "__main__":
raise SystemExit(main())