in main.py [0:0]
def main(cfg):
has_custom_script, has_sm_recipe = preprocess_config(cfg)
if has_custom_script:
stage_class = get_training_stage(cfg)
stage = stage_class(cfg)
job_id = stage.run()
else:
requested_stages = cfg.get("stages") or ["training"]
dependency = None
for stage_name in requested_stages:
# Get our training stages
if stage_name == "training" and has_sm_recipe:
stage_class = get_training_stage(cfg)
else:
stage_class = STR2STAGECLASS[stage_name]
if isinstance(stage_class, dict):
stage_config_choice = cfg.get(f"{stage_name}_config")
choice_model_type = stage_config_choice.rsplit("/", 1)[0]
for cls, model_types in stage_class.items():
if choice_model_type in model_types:
stage_class = cls
break
if dependency is not None:
cfg[stage_name]["run"]["dependency"] = dependency
stage = stage_class(cfg)
job_id = stage.run()
job_path = stage.get_job_path()
command = " \\\n ".join(sys.argv)
with open(job_path.folder / "launcher_cmd.log", "w") as f:
f.write(command)
if job_id:
dependency = f"afterany:{job_id}"