File size: 1,074 Bytes
dc62233
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
"""Train Graph-Residual from a portable YAML configuration."""

import argparse
import sys
from pathlib import Path

import yaml

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from src.training.training import train_job


def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument("--config", type=Path, required=True)
    args = parser.parse_args()
    config = yaml.safe_load(args.config.read_text())
    project_dir = Path(config["project_dir"].replace("PROJECT_ROOT", str(ROOT)))
    out_dir = Path(config["out_dir"].replace("PROJECT_ROOT", str(ROOT)))
    training = dict(config["training"])
    training["lr"] = training.get("learning_rate", training.get("lr", 0.001))
    training.pop("learning_rate", None)
    train_job(
        project_dir,
        out_dir,
        **training,
        beta_init=config["model"]["beta_init"],
        preserve_weight=config["loss"]["preserve_weight"],
        residual_weight=config["loss"]["residual_weight"],
    )


if __name__ == "__main__":
    main()