import os, sys, time, random, argparse from .share_args import add_shared_args def obtain_search_single_args(): parser = argparse.ArgumentParser(description='Train a classification model on typical image classification datasets.', formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--resume' , type=str, help='Resume path.') parser.add_argument('--model_config' , type=str, help='The path to the model configuration') parser.add_argument('--optim_config' , type=str, help='The path to the optimizer configuration') parser.add_argument('--split_path' , type=str, help='The split file path.') parser.add_argument('--search_shape' , type=str, help='The shape to be searched.') #parser.add_argument('--arch_para_pure', type=int, help='The architecture-parameter pure or not.') parser.add_argument('--gumbel_tau_max', type=float, help='The maximum tau for Gumbel.') parser.add_argument('--gumbel_tau_min', type=float, help='The minimum tau for Gumbel.') parser.add_argument('--procedure' , type=str, help='The procedure basic prefix.') parser.add_argument('--FLOP_ratio' , type=float, help='The expected FLOP ratio.') parser.add_argument('--FLOP_weight' , type=float, help='The loss weight for FLOP.') parser.add_argument('--FLOP_tolerant' , type=float, help='The tolerant range for FLOP.') add_shared_args( parser ) # Optimization options parser.add_argument('--batch_size' , type=int, default=2, help='Batch size for training.') args = parser.parse_args() if args.rand_seed is None or args.rand_seed < 0: args.rand_seed = random.randint(1, 100000) assert args.save_dir is not None, 'save-path argument can not be None' assert args.gumbel_tau_max is not None and args.gumbel_tau_min is not None assert args.FLOP_tolerant is not None and args.FLOP_tolerant > 0, 'invalid FLOP_tolerant : {:}'.format(FLOP_tolerant) #assert args.arch_para_pure is not None, 'arch_para_pure is not None: {:}'.format(args.arch_para_pure) #args.arch_para_pure = bool(args.arch_para_pure) return args