1010import torch .nn as nn
1111from tensorboardX import SummaryWriter
1212
13- from pcdet .config import cfg , cfg_from_list , cfg_from_yaml_file , log_config_to_file
13+ from pcdet .config import cfg , log_config_to_file , create_cfg_from_sets
1414from pcdet .datasets import build_dataloader
1515from pcdet .models import build_network , model_fn_decorator
1616from pcdet .utils import common_utils
1919
2020
2121def parse_config ():
22+ global cfg
23+
2224 parser = argparse .ArgumentParser (description = 'arg parser' )
2325 parser .add_argument ('--cfg_file' , type = str , default = None , help = 'specify the config for training' )
2426
@@ -38,6 +40,8 @@ def parse_config():
3840 parser .add_argument ('--merge_all_iters_to_one_epoch' , action = 'store_true' , default = False , help = '' )
3941 parser .add_argument ('--set' , dest = 'set_cfgs' , default = None , nargs = argparse .REMAINDER ,
4042 help = 'set extra config keys if needed' )
43+ parser .add_argument ('--modify' , type = str , dest = 'modify_cfgs' , default = None , nargs = '*' ,
44+ help = 'specify extra modifier configs' )
4145
4246 parser .add_argument ('--max_waiting_mins' , type = int , default = 0 , help = 'max waiting minutes' )
4347 parser .add_argument ('--start_epoch' , type = int , default = 0 , help = '' )
@@ -52,16 +56,18 @@ def parse_config():
5256
5357
5458 args = parser .parse_args ()
59+ if args .set_cfgs is None :
60+ args .set_cfgs = []
61+ if args .modify_cfgs is None :
62+ args .modify_cfgs = []
63+
64+ cfg = create_cfg_from_sets (args .cfg_file , args .modify_cfgs , args .set_cfgs , cfg )
5565
56- cfg_from_yaml_file (args .cfg_file , cfg )
5766 cfg .TAG = Path (args .cfg_file ).stem
5867 cfg .EXP_GROUP_PATH = '/' .join (args .cfg_file .split ('/' )[1 :- 1 ]) # remove 'cfgs' and 'xxxx.yaml'
5968
6069 args .use_amp = args .use_amp or cfg .OPTIMIZATION .get ('USE_AMP' , False )
6170
62- if args .set_cfgs is not None :
63- cfg_from_list (args .set_cfgs , cfg )
64-
6571 return args , cfg
6672
6773
0 commit comments