cycle_lens = list(map(int, cycle_lens)) if len( cycle_lens ) == 2: # handles option of specifying cycles as pair (n_cycles, cycle_len) cycle_lens = cycle_lens[0] * [cycle_lens[1]] im_size = tuple([int(item) for item in args.im_size.split(',')]) if isinstance(im_size, tuple) and len(im_size) == 1: tg_size = (im_size[0], im_size[0]) elif isinstance(im_size, tuple) and len(im_size) == 2: tg_size = (im_size[0], im_size[1]) else: sys.exit('im_size should be a number or a tuple of two numbers') do_not_save = str2bool(args.do_not_save) if do_not_save is False: save_path = args.save_path if save_path == 'date_time': save_path = datetime.now().strftime("%Y-%m-%d-%H:%M:%S") experiment_path = osp.join('experiments', save_path) args.experiment_path = experiment_path os.makedirs(experiment_path, exist_ok=True) config_file_path = osp.join(experiment_path, 'config.cfg') with open(config_file_path, 'w') as f: json.dump(vars(args), f, indent=2) else: experiment_path = None csv_train = args.csv_train
if args.device.startswith("cuda"): # In case one has multiple devices, we must first set the one # we would like to use so pytorch can find it. os.environ['CUDA_VISIBLE_DEVICES'] = args.device.split(":", 1)[1] if not torch.cuda.is_available(): raise RuntimeError("cuda is not currently available!") print(f"* Running prediction on device '{args.device}'...") device = torch.device("cuda") else: #cpu device = torch.device(args.device) dataset = args.dataset binarize = args.binarize tta = args.tta public = str2bool(args.public) # parse config file if provided config_file = args.config_file if config_file is not None: if not osp.isfile(config_file): raise Exception('non-existent config file') with open(args.config_file, 'r') as f: args.__dict__.update(json.load(f)) experiment_path = args.experiment_path # these should exist in a config file model_name = args.model_name in_c = args.in_c if experiment_path is None: raise Exception('must specify path to experiment')