python argparse模块详解,argparser python
本文主要介绍python深度学习标准库使用argparse调整参数的详细讲解。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010前言使用步骤:常用规则使用配置文件传入超参数argparse中action的可选参数store_true。
目录
Argparse是深度学习项目调优中常用的python标准库。使用argparse后,我们在命令行输入的参数可以用这种形式设置Python filename . py-LR1e-4-batch _ size 32来完成常用超级参数的设置。一般可以总结为以下三步。
前言
创建ArgumentParser()对象,调用add_argument()方法,添加参数,并使用parse_args()解析参数。下面的内容,我们将通过实际操作来学习如何使用argparse:导入argparse。
parser=arg parse . argument parser()#创建已解析的对象
Parser.add_argument() #将您想要关注的命令行参数和选项添加到该对象中。
Arg=parser.parse_args () #调用parse_args()方法进行解析。
使用步骤:
在命令行中输入python demo.py -h或pythondemo.py-help,查看这个python文件的参数描述。arg字典类似于python字典。例如,arg字典命名空间(integers=5 )可以使用arg。提取此参数解析器的参数名。Add _ argument (integers ,type=str,nargs= ,help=传入的数字)。Nargs用于描述传入参数的个数,表示至少传入一个参数, * 表示可以为参数设置零个或一个parser.add _ argument (-n ,-name ,type=str,required=True,default= ,help= name )。Required=true表示必需的参数,-n表示可以使用short选项来使用参数parser . add _ argument(-test _ action ,default= False ,action= store _ True )。触发时Store _ true为真,未触发时为假(test.py,假输出,test.py - test_action,真输出
常见规则
为了使代码更加简洁和模块化,可以在config.py中编写关于超参数的操作,然后在train.py或其他文件中导入。具体config.py可以参考以下内容。
导入argparse
def get_options(parser=argparse。ArgumentParser()):
parser.add_argument( - workers ,type=int,default=0,
help=数据加载工人数量,你最好把它
您的gpu的4倍’)
parser . add _ argument(-batch _ size ,type=int,default=4,help=input batch size,default=64 )
parser.add_argument( - niter ,type=int,default=10,help=要训练的时期数,default=10 )
parser.add_argument(--lr, type=float, default=3e-5, help=select the learning rate, default=1e-3)
parser.add_argument(--seed, type=int, default=118, help="random seed")
parser.add_argument(--cuda, action=store_true, default=True, help=enables cuda)
parser.add_argument(--checkpoint_path,type=str,default=,
help=Path to load a previous trained model if not empty (default empty))
parser.add_argument(--output,action=store_true,default=True,help="shows output")
opt = parser.parse_args()
if opt.output:
print(fnum_workers: {opt.workers})
print(fbatch_size: {opt.batch_size})
print(fepochs (niters) : {opt.niter})
print(flearning rate : {opt.lr})
print(fmanual_seed: {opt.seed})
print(fcuda enable: {opt.cuda})
print(fcheckpoint_path: {opt.checkpoint_path})
return opt
if __name__ == __main__:
opt = get_options()
$ python config.py
随后在train.py等其他文件,我们就可以使用下面的这样的结构来调用参数。
# 导入必要库
argparse中action的可选参数store_true
# test.py
以上面的代码为例,若触发 test_action,则为True, 否则为False:
$ python test.py,输出为 False
$ python test.py --test_action,输出为 True
若在上面的代码中加入default,设为 False 时:
parser.add_argument("--test_action", default=False, action=store_true)
$ python test.py,输出为 False
$ python test.py --test_action,输出为 True
default 设为 True 时:
parser.add_argument("--test_action", default=True, action=store_true)
$ python test.py,输出为 True
$ python test.py --test_action,输出为 True
参考:https://www.jb51.net/article/250215.htm
以上就是python深度学习标准库使用argparse调参的详细内容,更多关于python标准库argparse调参的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。