| 
									
										
										
										
											2019-09-28 18:24:47 +10:00
										 |  |  | import os, sys, time, random, argparse | 
					
						
							|  |  |  | from .share_args import add_shared_args | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def obtain_search_single_args(): | 
					
						
							| 
									
										
										
										
											2021-03-30 09:17:05 +00:00
										 |  |  |     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() | 
					
						
							| 
									
										
										
										
											2019-09-28 18:24:47 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-30 09:17:05 +00:00
										 |  |  |     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 |