深度学习使用argparse模块存放参数

为了更格式化代码,在写深度学习时,我们通常会采用将所有参数都放在同一个容器里,如装在一个类里,或者装在内置于python中的命令行解析的标准模块argparse中,这样可以方便类或者函数中的参数传递(直接传一整个容器),这篇文章我们介绍argparse。


一、创建解析器

我们首先需要创建一个ArgumentParser模块的解析器,也可以把他看作是一个装参数的容器。
代码如下:

import argparse # 引入argparse库。
parser = argparse.ArgumentParser() # 我们可以把这一步看作是是创建一个装参数的容器。

二、在解析器中添加参数

我们在创建好容器(解析器)后,就可以往里面通过add_argument增加参数。
代码如下:

parser.add_argument('--seed', type=int, default=1, help='Random seed') # 这里只写了几个常用的参数。
# 在parser这个容器中装入了名为seed的参数,且数据类型是int,默认seed为1,help我认为就是注释的作用。

三、解析参数

我们在解析器中添加完参数后,我们需要将这个参数拿出来用,所以我们要用parse_args()来解析参数。
代码如下:

args = parser.parse_args() # 将parser中的参数解析出来,args就作为一个可以直接输出对应参数的容器
print(args.seed) # 输出1。
args.seed = 10 # 可以对args中的参数进行修改。
print(args.seed) # 输出10。

四、一些补充

1. 打印解析器中所有参数。

可以对args容器中的所有参数及参数值进行打印,以便跑完代码后可以根据参数值进行复现。

for arg, value in sorted(vars(args).items()):
    print('%s: %s' % (arg, value))

2. 命令行输入改变参数值。

argparse.ArgumentParser()会自动从sys.argv中确定命令行参数
如在终端中输入:

python train.py ---seed 10

这样argparse.ArgumentParser()容器中的seed就为10,而不是他的默认值1。


总结

记录一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
argparse 是一个 Python 的命令行解析库,可以帮助开发者轻松处理命令行参数。对于深度学习任务,argparse 可以用于解析和处理训练模型时的各种参数设置。 在深度学习中,通常需要设置一些参数,如训练数据路径、模型架构、优化器设置、学习率等。使用 argparse 可以将这些参数作为命令行参数传递给脚本,方便调试和复现实验。 以下是一个使用 argparse 解析深度学习参数的示例代码: ```python import argparse def parse_args(): parser = argparse.ArgumentParser(description='Deep learning training arguments') # 添加需要解析的参数 parser.add_argument('--data_path', type=str, default='./data/', help='Path to training data') parser.add_argument('--model_name', type=str, default='my_model', help='Name of the model') parser.add_argument('--lr', type=float, default=0.001, help='Learning rate') parser.add_argument('--batch_size', type=int, default=64, help='Batch size for training') args = parser.parse_args() return args if __name__ == '__main__': args = parse_args() print(args) # 在这里可以使用 args 训练深度学习模型 ``` 在上述代码中,我们通过 argparse 添加了四个参数:data_path、model_name、lr 和 batch_size。每个参数都可以指定类型、默认值和帮助信息。在 `if __name__ == '__main__'` 的主函数中,我们调用 `parse_args()` 函数来解析命令行参数,并将其存储在 args 对象中。然后,我们可以使用 args 对象来访问和使用这些参数。 例如,在命令行中运行 `python train.py --data_path ./data/ --model_name my_model --lr 0.001 --batch_size 64`,args 对象将会包含这些参数的值。 这样,我们就可以根据命令行传递的参数值来训练深度学习模型,使得代码更具灵活性和可复用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值