mmdetection炼丹大法
前言
不定时更新。
Last time UPDATE:2022.03.29
训练网络
常见的训练代码,以swin-transformer为例:
CUDA_VISIBLE_DEVICES=2 python tools/train.py configs/swin/mask_rcnn_swin-t-p4-w7_fpn_1x_coco.py
CUDA_VISIBLE_DEVICES=1:指定仅gpu1对程序可见(使用单块GPU进行训练)
--work-dir:保存模型pth的路径
--resume-from:用于恢复的checkpoint
文件
--auto-resume:自动从最近一次保存的checkpoint
文件恢复
--validate:是否在训练中建立checkpoint的时候对该checkpoint进行评估(evaluate)(未采用分布式训练时,--validate无效)
--launcher:分布式训练的任务启动器
更改相关参数
更改模型保存周期(未实测)
修改:mmdetection/configs/_base_/default_runtime.py
# checkpoint_config
# interval=n:每隔n轮保存一次模型,注意不是epoch
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(
interval=50,
hooks=[
dict(type='TextLoggerHook'),
# dict(type='TensorboardLoggerHook')
])
# yapf:enable
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = None
resume_from = None
workflow = [('train', 1)]
可视化
此处以保存swin-t模型的acc值为例(注意:是保存了这个key才能plot):
python tools/analysis_tools/analyze_logs.py plot_curve /*训练保存的json文件*/ --keys acc --out /*结果保存路径*/
plot_curve:训练保存的json文件路径
-/-keys:绘制的损失关键字,可以跟多个值
-/-out:绘制保存结果路径,可以保存成png图片,也可以保存成pdf
其他功能
计算训练时间(未实测)
python tools/analyze_logs.py cal_train_time ./1_work_dir_gfl_hat_hair_beard/20200805_154359.log.json