def parse_args(): """Parse arguments. Parses the args from argparse. If hydra is installed, uses hydra based args (experimental). """ if hydra_available: global args, config _parse_hydra_args() return args, config else: args = parse_train_arguments() config = load_json(args.config_file) return args, config
@hydra.main(config_path="hydra_configs", config_name="args") def hydra_main(cfg): args = cfg check_generic_args(cfg) config = omegaconf.OmegaConf.to_container(cfg.config) main(args, config) # run all the things: if __name__ == "__main__": logger = logging.getLogger() logger.setLevel(logging.INFO) logging.info("Classy Vision's default training script.") # This imports all modules in the same directory as classy_train.py # Because of the way Classy Vision's registration decorators work, # importing a module has a side effect of registering it with Classy # Vision. This means you can give classy_train.py a config referencing your # custom module (e.g. my_dataset) and it'll actually know how to # instantiate it. file_root = Path(__file__).parent import_all_packages_from_directory(file_root) if hydra_available: hydra_main() else: args = parse_train_arguments() config = load_json(args.config_file) main(args, config)