mmdetection:记录算法训练配置文件
本文记录了使用mmdetection进行训练模型的配置文件。以便以后复现使用。
文章目录
- 一、faster-rcnn
- 二、tood
- 三、atss
- 四、mask-rcnn
一、faster-rcnn
# 引用基础配置文件
_base_ = 'faster-rcnn_r50_fpn_1x_coco.py'# 修改模型的roi_head和bbox_head以适应我们的数据集
# 不这么写会报错TypeError: FasterRCNN.__init__() got an unexpected keyword argument 'bbox_he
model = dict(roi_head=dict(bbox_head=dict(type='Shared2FCBBoxHead',num_classes=1 # 只有一个类别class1))
)# 数据集根目录路径
data_root = '/path/to/your/dataset/'# 数据集的类别和调色板配置
metainfo = {'classes': ('class1', ), # 类别名称'palette': [(220, 20, 60), # 类别class1的颜色]
}# 训练配置
train_cfg = dict(max_epochs=500, # 最大训练轮数val_interval=2 # 每隔多少轮进行一次验证
)# 训练数据加载器配置
train_dataloader = dict(batch_size=8,num_workers=8,dataset=dict(data_root=data_root, # 数据集根目录metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/train.json', # 训练集标注文件路径data_prefix=dict(img='images/') # 图像文件路径前缀)
)# 验证数据加载器配置
val_dataloader = dict(batch_size=8,num_workers=8,dataset=dict(data_root=data_root, # 数据集根目录metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/val.json', # 验证集标注文件路径data_prefix=dict(img='images/') # 图像文件路径前缀)
)# 评估配置
val_evaluator = dict(ann_file='/path/to/annotations/val.json') # 验证集标注文件路径
test_evaluator = dict(ann_file='/path/to/annotations/val.json') # 测试集标注文件路径# 保存模型检查点的配置
default_hooks = dict(checkpoint=dict(type='CheckpointHook',interval=1, # 每轮保存一次模型save_best='coco/bbox_mAP', # 根据bbox_mAP保存最佳模型max_keep_ckpts=1 # 最多保留一个检查点)
)# 加载预训练模型路径
load_from = '/path/to/pretrained/model.pth' # 假路径# 训练命令(示例)
# nohup python tools/train.py configs/faster_rcnn/faster-rcnn_r50_fpn_ciou_1x_visdrone.py > faster-rcnn-visdrone.log 2>&1 & tail -f faster-rcnn-visdrone.log# 测试命令(示例)
# python tools/test.py configs/faster_rcnn/faster-rcnn_r50_fpn_ciou_1x_visdrone.py work_dirs/faster-rcnn_r50_fpn_ciou_1x_visdrone/epoch_12.pth --show --show-dir test_save
二、tood
# 引用基础配置文件
_base_ = './tood_r50_fpn_1x_coco.py'# 修改模型的 bbox_head 配置以适应我们的数据集
model = dict(bbox_head=dict(num_classes=1 # 我们的任务只有一个类别:class1)
)# 数据集相关配置
data_root = '/path/to/your/dataset/' # 假数据集路径
metainfo = {'classes': ('class1',), # 类别名称'palette': [(220, 20, 60), # 类别class1的颜色]
}# 训练配置
train_cfg = dict(max_epochs=500, # 最大训练轮数val_interval=2 # 每隔 2 轮进行一次验证
)# 数据加载器配置
train_dataloader = dict(batch_size=8, # 每批次的样本数num_workers=8, # 数据加载的线程数dataset=dict(data_root=data_root, # 数据集根路径metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/train.json', # 训练集标注文件data_prefix=dict(img='images/') # 图像文件夹前缀)
)val_dataloader = dict(batch_size=8, # 每批次的样本数num_workers=8, # 数据加载的线程数dataset=dict(data_root=data_root, # 数据集根路径metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/val.json', # 验证集标注文件data_prefix=dict(img='images/') # 图像文件夹前缀)
)# 评估配置(验证集和测试集)
val_evaluator = dict(ann_file='/path/to/annotations/val.json') # 验证集标注文件路径
test_evaluator = dict(ann_file='/path/to/annotations/test.json') # 测试集标注文件路径# 保存模型检查点的配置
default_hooks = dict(checkpoint=dict(type='CheckpointHook',interval=1, # 每轮保存一次模型save_best='coco/bbox_mAP', # 根据bbox_mAP保存最佳模型max_keep_ckpts=1 # 最多保留一个检查点)
)# 加载预训练模型路径(如果需要的话)
# load_from = '/path/to/pretrained/model.pth' # 假路径# 训练命令(示例)
# nohup python tools/train.py configs/tood/tood_r50_fpn_1x_visdrone.py > tood-visdrone.log 2>&1 & tail -f tood-visdrone.log# 测试命令(示例)
# python tools/test.py configs/tood/tood_r50_fpn_1x_visdrone.py work_dirs/tood_r50_fpn_1x_visdrone/epoch_12.pth --show --show-dir test_save
# python tools/test.py configs/tood/tood_r50_fpn_1x_visdrone.py work_dirs/tood_r50_fpn_1x_visdrone/epoch_12.pth --tta
三、atss
# 引用基础配置文件
_base_ = 'atss_r50_fpn_1x_coco.py'# 修改模型的 bbox_head 配置以适应我们的数据集
model = dict(bbox_head=dict(num_classes=1 # 只有一个类别:class1)
)# 数据集相关配置
data_root = '/path/to/your/dataset/' # 假数据集路径metainfo = {'classes': ('class1',), # 类别名称'palette': [(220, 20, 60), # 类别class1的颜色]
}# 训练配置
train_cfg = dict(max_epochs=500, # 最大训练轮数val_interval=2 # 每隔 2 轮进行一次验证
)# 数据加载器配置
train_dataloader = dict(batch_size=8, # 每批次的样本数num_workers=8, # 数据加载的线程数dataset=dict(data_root=data_root, # 数据集根路径metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/train.json', # 训练集标注文件路径data_prefix=dict(img='images/') # 图像文件夹前缀)
)val_dataloader = dict(batch_size=8, # 每批次的样本数num_workers=8, # 数据加载的线程数dataset=dict(data_root=data_root, # 数据集根路径metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/val.json', # 验证集标注文件路径data_prefix=dict(img='images/') # 图像文件夹前缀)
)# 评估配置(验证集和测试集)
val_evaluator = dict(ann_file='/path/to/annotations/val.json') # 验证集标注文件路径
test_evaluator = dict(ann_file='/path/to/annotations/test.json') # 测试集标注文件路径# 保存模型检查点的配置
default_hooks = dict(checkpoint=dict(type='CheckpointHook',interval=2, # 每 2 轮保存一次模型save_best='coco/bbox_mAP', # 根据 bbox_mAP 保存最佳模型max_keep_ckpts=1 # 最多保留一个检查点)
)# 加载预训练模型路径(如果需要的话)
load_from = '/path/to/pretrained/model.pth' # 假路径# 训练命令(示例)
# nohup python tools/train.py configs/dyhead/atss_r50_fpn_dyhead_1x_visdrone.py > atss-dyhead-visdrone.log 2>&1 & tail -f atss-dyhead-visdrone.log# 测试命令(示例)
# python tools/test.py configs/dyhead/atss_r50_fpn_dyhead_1x_visdrone.py work_dirs/tood_r50_fpn_1x_visdrone/epoch_12.pth --show --show-dir test_save
# python tools/test.py configs/dyhead/atss_r50_fpn_dyhead_1x_visdrone.py work_dirs/tood_r50_fpn_1x_visdrone/epoch_12.pth --tta
四、mask-rcnn
# 引用基础配置文件
_base_ = 'mask-rcnn_r50-caffe_fpn_1x_coco.py'# 修改模型的 bbox_head 配置以适应我们的数据集
model = dict(roi_head=dict(bbox_head=dict(type='Shared2FCBBoxHead',num_classes=1 # 只有一个类别class1))
)# 数据集相关配置
data_root = '/path/to/your/dataset/' # 假数据集路径metainfo = {'classes': ('class1',), # 类别名称'palette': [(220, 20, 60), # 类别class1的颜色]
}# 训练配置
train_cfg = dict(max_epochs=500, # 最大训练轮数val_interval=2 # 每隔 2 轮进行一次验证
)# 数据加载器配置
train_dataloader = dict(batch_size=8, # 每批次的样本数num_workers=8, # 数据加载的线程数dataset=dict(data_root=data_root, # 数据集根路径metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/train.json', # 训练集标注文件路径data_prefix=dict(img='images/') # 图像文件夹前缀)
)val_dataloader = dict(batch_size=8, # 每批次的样本数num_workers=8, # 数据加载的线程数dataset=dict(data_root=data_root, # 数据集根路径metainfo=metainfo, # 数据集类别和调色板信息ann_file='annotations/val.json', # 验证集标注文件路径data_prefix=dict(img='images/') # 图像文件夹前缀)
)# 评估配置(验证集和测试集)
val_evaluator = dict(ann_file='/path/to/annotations/val.json') # 验证集标注文件路径
test_evaluator = dict(ann_file='/path/to/annotations/test.json') # 测试集标注文件路径# 保存模型检查点的配置
default_hooks = dict(checkpoint=dict(type='CheckpointHook',interval=1, # 每 1 轮保存一次模型save_best='coco/bbox_mAP', # 根据 bbox_mAP 保存最佳模型max_keep_ckpts=1 # 最多保留一个检查点)
)# 加载预训练模型路径(如果需要的话)
load_from = '/path/to/pretrained/model.pth' # 假路径# 训练命令(示例)
# nohup python tools/train.py configs/faster_rcnn/faster-rcnn_r50_fpn_ciou_1x_visdrone.py > faster-rcnn-visdrone.log 2>&1 & tail -f faster-rcnn-visdrone.log# 测试命令(示例)
# python tools/test.py configs/faster_rcnn/faster-rcnn_r50_fpn_ciou_1x_visdrone.py work_dirs/faster-rcnn_r50_fpn_ciou_1x_visdrone/epoch_12.pth --show --show-dir test_save
# python tools/test.py configs/faster_rcnn/faster-rcnn_r50_fpn_ciou_1x_visdrone.py work_dirs/faster-rcnn_r50_fpn_ciou_1x_visdrone/epoch_12.pth --tta