-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhydra_training_driver.py
31 lines (23 loc) · 1014 Bytes
/
hydra_training_driver.py
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
import hydra
import os
import subprocess
from omegaconf import OmegaConf, DictConfig
OVERLAY_FILEPATH = "/scratch/wf541/rl_finance_singularity/rl_finance.ext3"
SINGULARITY_IMAGE_FILEPATH = "/scratch/work/public/singularity/cuda11.1.1-cudnn8-devel-ubuntu20.04.sif"
HYDRA_CONFIG_FILENAME = "hydra_config.yaml"
@hydra.main(config_path=".", config_name=HYDRA_CONFIG_FILENAME)
def main(cfg: DictConfig):
print(f"Hydra driver script, NOT running in Singularity, calling from cwd = {os.getcwd()}")
hydra_config_filepath = os.path.join(os.getcwd(), HYDRA_CONFIG_FILENAME)
with open(hydra_config_filepath, "w") as f:
f.write(OmegaConf.to_yaml(cfg))
subprocess.run(
[
"singularity", "exec",
"--overlay", f"{OVERLAY_FILEPATH}:ro",
SINGULARITY_IMAGE_FILEPATH,
"/bin/bash", "-c", f"source /ext3/env.sh; python /scratch/wf541/Capstone-2021/train_singularity.py {hydra_config_filepath}"
]
)
if __name__ == '__main__':
main()