如何解决使用ArgumentParser将参数保存在字典中
我从命令行获取了不同的参数:
def get_args():
parser = ArgumentParser(description='neural network project')
parser.add_argument('--epochs',type=int,default=150)
parser.add_argument('--decay_epoch',default=100)
parser.add_argument('--batch_size',default=1)
parser.add_argument('--lr',type=float,default=.0002)
parser.add_argument('--load_height',default=286)
parser.add_argument('--load_width',default=286)
args = parser.parse_args()
return args
我想将从get_args获得的所有参数保存在字典中(然后保存在.json文件或.txt文件中)。
解决方法
argparse.ArgumentParser.parse_args
返回一个argparse.Namespace
对象,这很容易变成字典。直接来自documentation:
该类故意简化,只是一个对象子类,带有 可读的字符串表示形式。如果您更喜欢像字典一样的观点 属性,您可以使用标准的Python习惯用法vars():
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> args = parser.parse_args(['--foo','BAR'])
>>> vars(args)
{'foo': 'BAR'}
,
创建字典并通过parser关键字添加它们。
neural_dict = {}
neural_dict['EPOCHS'] = args.epochs
neural_dict['DECAY_EPOCH'] = args.decay_epoch
.
.
.
要使用for循环添加到字典中:
neural_dict = {}
parser = argparse.ArgumentParser(description='neural network project')
parser.add_argument('--epochs',type=int,default=150)
parser.add_argument('--decay_epoch',default=100)
parser.add_argument('--batch_size',default=1)
parser.add_argument('--lr',type=float,default=.0002)
parser.add_argument('--load_height',default=286)
parser.add_argument('--load_width',default=286)
args = parser.parse_args()
#chepner is right...use his method instead
neural_dict = vars(args)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。