def main(): args = parse_args() exp = Experiment(args.exp_name, args, mode=args.mode) if args.cfg is None: cfg_path = exp.cfg_path else: cfg_path = args.cfg cfg = Config(cfg_path) exp.set_cfg(cfg, override=False) device = torch.device('cpu') if not torch.cuda.is_available() or args.cpu else torch.device('cuda') runner = Runner(cfg, exp, device, view=args.view, resume=args.resume, deterministic=args.deterministic) if args.mode == 'train': try: runner.train() except KeyboardInterrupt: logging.info('Training interrupted.') runner.eval(epoch=args.epoch or exp.get_last_checkpoint_epoch(), save_predictions=args.save_predictions)
def main() -> None: args = parse_args() exp = Experiment(args.exp_name, args, mode=args.mode) if args.cfg is None: cfg_path = exp.cfg_path else: cfg_path = args.cfg cfg = Config(cfg_path) exp.set_cfg(cfg, override=False) device = ( torch.device("cpu") if not torch.cuda.is_available() else torch.device("cuda") ) runner = Runner(cfg, exp, device, resume=args.resume) if args.mode == "train": try: runner.train() except KeyboardInterrupt: logging.info("Training interrupted.")