mmdetection集成的训练方法
mmdetection-master/configs/{方法名}/{方法名}.py
但是我们点开这些.py文件会发现里面的代码非常短
实际上,这是通过_base_
链接到了其他文件,往往这样的链接会有七八层。那问题就是我们需要生成一个完整的配置文件并对其参数进行修改
查看、生成配置文件
#查看目标对象完整的配置文件,包含所有字段pythontools/misc/print_config.pyconfigs/{方法名}/{方法名}.py#将内容导入到txt生成在mmdetection-master主目录下pythontools/misc/print_config.pyconfigs/{方法名}/{方法名}.py>config.txt#生成项目文件夹record,在record下保存训练结果,并生成完整的对应方法的config配置文件pythontools/train.pyconfigs/{方法名}/{方法名}.py--work-dirrecord
config参数介绍
方法名介绍
config配置#faster_rcnn方法名#r5050层训练#caffe#cocococo数据集faster_rcnn_r50_caffe_c4_1x_coco.py#fpn目标检测进一步处理#mstrain多尺度训练策略#3x3*12=36个epoch训练faster_rcnn_r101_fpn_mstrain_3x_coco.py
models参数(一般改动不多)
models(一般改动不多)每一个属性中的参数其实都是为了传递到mmdet/models下的模型类文件中去参数type对应模型的类名,每一个类文件都会登记在mmdet/models/__init__里常用参数:(参数和模型有关,每个模型参数不同)backbone.depth将50改成101,对应r50、r101roi_head.numclass=80训练次数model=dict(#类型type=...#backbone#后处理fpnneck#rpn层和roi层rpn_headroi_head#设置train_cfgtest_cfg)
datasets参数---数据处理(自定义成分高)
sample_per_gpu=2#batchsizeofeachgpu每个gpu上的sample,类似pytorchdataloader上的参数work_per_gpu=2#子线程traintype同上,传参到对应的类文件mmdet/datasets/.....类名在mmdet/datasets/__init__里登记过ann_file标注文件路径json文件img_prefix标注文件的图片前缀pipeline=..数据处理流valtest
schedules(自定义成分高)
optimizerlrcheckpoint多少个epoch保存一个loglog_config多少个epoch打印一次当前epoch的logload_from重新跑resume_from从断点继续跑,参数效果覆盖load_fromworckflow=[{(train,12),(val,1),(test,1)}]train12次,val1次,test1次(这个参数有问题*)work_dir
其他训练指令
使用单个GPU进行训练
pythontools/train.py${CONFIG_FILE}
绘制训练日志文件的损耗曲线
#参数#--keys分析对象#--legend图表标题#--out生成文件
安装依赖项 pip install seaborn
python tools/analyze_logs.py plot_curve [--keys ${KEYS}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}]
绘制分类损失 python tools/analyze_logs.py plot_curve log.json --keys loss_cls --legend loss_cls
绘制一些运行的分类和回归损失,并将该图保存为pdf python tools/analyze_logs.py plot_curve log.json --keys loss_cls loss_reg --out losses.pdf
3.比较同一图中两次运行的bboxmAP```js#参数#json文件运行生成的数据pythontools/analyze_logs.pyplot_curvelog1.jsonlog2.json--keysbbox_mAP--legendrun1run2
计算平均训练速度
#参数#${CONFIG_FILE}训练用的框架pythontools/analyze_logs.pycal_train_time${CONFIG_FILE}[--include-outliers]