




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第python深度学习标准库使用argparse调参目录前言使用步骤:常见规则使用config文件传入超参数argparse中action的可选参数store_true
前言
argparse是深度学习项目调参时常用的python标准库,使用argparse后,我们在命令行输入的参数就可以以这种形式pythonfilename.py--lr1e-4--batch_size32来完成对常见超参数的设置。,一般使用时可以归纳为以下三个步骤
使用步骤:
创建ArgumentParser()对象调用add_argument()方法添加参数使用parse_args()解析参数在接下来的内容中,我们将以实际操作来学习argparse的使用方法
importargparse
parser=argparse.ArgumentParser()#创建一个解析对象
parser.add_argument()#向该对象中添加你要关注的命令行参数和选项
args=parser.parse_args()#调用parse_args()方法进行解析
常见规则
在命令行中输入pythondemo.py-h或者pythondemo.py--help可以查看该python文件参数说明arg字典类似python字典,比如arg字典Namespace(integers=5)可使用arg.参数名来提取这个参数parser.add_argument(integers,type=str,nargs=+,help=传入的数字)nargs是用来说明传入的参数个数,+表示传入至少一个参数,*表示参数可设置零个或多个,表示参数可设置零个或一个parser.add_argument(-n,--name,type=str,required=True,default=,help=名)required=True表示必须参数,-n表示可以使用短选项使用该参数parser.add_argument(--test_action,default=False,action=store_true)store_true触发时为真,不触发则为假(test.py,输出为False,test.py--test_action,输出为True)
使用config文件传入超参数
为了使代码更加简洁和模块化,可以将有关超参数的操作写在config.py,然后在train.py或者其他文件导入就可以。具体的config.py可以参考如下内容。
importargparse
defget_options(parser=argparse.ArgumentParser()):
parser.add_argument('--workers',type=int,default=0,
help='numberofdataloadingworkers,youhadbetterputit'
'4timesofyourgpu')
parser.add_argument('--batch_size',type=int,default=4,help='inputbatchsize,default=64')
parser.add_argument('--niter',type=int,default=10,help='numberofepochstotrainfor,default=10')
parser.add_argument('--lr',type=float,default=3e-5,help='selectthelearningrate,default=1e-3')
parser.add_argument('--seed',type=int,default=118,help="randomseed")
parser.add_argument('--cuda',action='store_true',default=True,help='enablescuda')
parser.add_argument('--checkpoint_path',type=str,default='',
help='Pathtoloadaprevioustrainedmodelifnotempty(defaultempty)')
parser.add_argument('--output',action='store_true',default=True,help="showsoutput")
opt=parser.parse_args()
ifopt.output:
print(f'num_workers:{opt.workers}')
print(f'batch_size:{opt.batch_size}')
print(f'epochs(niters):{opt.niter}')
print(f'learningrate:{opt.lr}')
print(f'manual_seed:{opt.seed}')
print(f'cudaenable:{opt.cuda}')
print(f'checkpoint_path:{opt.checkpoint_path}')
returnopt
if__name__=='__main__':
opt=get_options()
$pythonconfig.py
num_workers:0
batch_size:4
epochs(niters):10
learningrate:3e-05
manual_seed:118
cudaenable:True
checkpoint_path:
随后在train.py等其他文件,我们就可以使用下面的这样的结构来调用参数。
#导入必要库
importconfig
opt=config.get_options()
manual_seed=opt.seed
num_workers=opt.workers
batch_size=opt.batch_size
lr=opt.lr
niters=opt.niters
checkpoint_path=opt.checkpoint_path
#随机数的设置,保证复现结果
defset_seed(seed):
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
random.seed(seed)
np.random.seed(seed)
torch.backends.cudnn.benchmark=False
torch.backends.cudnn.deterministic=True
if__name__=='__main__':
set_seed(manual_seed)
forepochinrange(niters):
train(model,lr,batch_size,num_workers,checkpoint_path)
val(model,lr,batch_size,num_workers,checkpoint_path)
argparse中action的可选参数store_true
#test.py
importargparse
if__name__=='__main__':
parser=argparse.ArgumentParser()
parser.add_argument("--test_action",action='store_true')
args=parser.parse_args()
action_val=args.test_action
print(action_val)
以上面的代码为例,若触发test_action,则为True,否则为False:
$pythontest.py,输出为False$pythontest.py--test_action,输出为True
若在上面的代码中加入default,设为False时:
parser.add_argument("--test_action",default='False',action='store_true')
$pythontest.py,输出为False$pythontest.py--test_action,输出为True
default设为True时:
parser.add_argument("--test_action"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双极细胞外段的超微结构与感受器电位产生的课件
- 习惯养成教育主题班会
- 12月公共营养师基础知识模拟题与答案(附解析)
- 小学学校消除大班额工作实施方案
- 派遣员工职业满意度调查与反馈利用考核试卷
- 《催化裂化技术讲座》课件
- 谷物磨制在特殊人群饮食中的应用考核试卷
- 《并串电路电流规律及例题课件》
- 制鞋业行业供应链管理考核试卷
- 环境工程讲解课件
- 舞蹈艺术赏析课件
- 《孔子的简介》课件
- 2025年浙江省宁波市江北区行政服务中心招聘编外人员笔试和高频重点提升(共500题)附带答案详解
- 非谓语动词-动名词和分词
- 生产安全质量培训
- 复工协议书模板
- 数列-2020-2024年高考数学试题分类汇编(原卷版)
- 2025年部门预算支出经济分类科目说明表
- 基于强磁吸附的履带式爬壁机器人结构设计
- 《煤矿安全生产条例》知识培训
- 外语系职业规划
评论
0/150
提交评论