现在需要配置参数来达到修改训练的方式,我现在需要新建一个参数来开关wandb的使用。
首先就是在def parse_option():函数里添加上你要使用的变量名
parser.add_argument("--open_wandb",type= bool,default=False,help='open wandb')
到config文件里增加你的变量
最后在到config后边将这两个变量的值连接起来
你就可以在程序你使用这个config.TRAIN.OPEN_WANDB变量了
遇到问题
在使用的过程中发现无论我在终端输入的是True
还是False
,打印出的config的都不是我想要的.
这是因为 argparse 不会自动解析命令行参数为布尔值。即使你将 type=bool 设置为 bool,argparse 仍然会将命令行输入解析为字符串。为了解决这个问题,可以使用布尔开关 store_true 或 store_false 动作来明确地指定布尔值。
具体修改方法
使用store_true这种方法,无需检查 None,因为 store_true 或 store_false 会确保参数值为布尔值。
#1.在config中添加open_wandb
_C.TRAIN.OPEN_WANDB = False
#直接赋值即可,不用判断
config.TRAIN.OPEN_WANDB = args.open_wandb
#2. 在main中添加
parser.add_argument("--open_wandb",action='store_true',default=False,help='hello')
当你在终端中不输入 -- open_wandb
时它的值是默认的false,当你输入-- open_wandb true
他检测到有任意输入就会吧值设置为true