训练函数调用
训练脚本
python tools/train.py configs/faster_rcnn_r50_fpn_1x.py
训练可选项:
- –work_dir:模型checkpoint以及训练log文件的输出目录,若在脚本中不设置,则为
config/*.py
中work_dir中的路径。 - –resume_from:指定在某个checkpoint的基础上继续训练,若在脚本中不设置,则为
config/*.py
中resume_from中的值,默认为None。 - –validate:指是否在训练中建立checkpoint的时候对该checkpoint进行评估
- –gpus: 指使用GPU的数量,默认值为1
build_detector
build_dataset
train_detector
train_detector三个输入参数:
- model:build_detector返回的模型
- train_dataset:build_dataset返回的dataset
- cfg:模型的配置文件
- distributed:默认为False
- validate:默认为False
- logger:默认为None,若为None则会重新创建
配置文件详解
model
- type:model类型,需要在
/mmdet/models/detectors/__init__.py
中定义 - pretrained:预训练的模型
- backbone: 骨架参数字典 types需要在
/mmdet/models/backbones/__init__.py
中定义 - neck:neck的类型,需要在
/mmdet/models/necks/__init__.py
中定义 - rpn_head: RPN的类型需要在
/mmdet/models/anchor_heads/__init__.py
中定义 - bbox_roi_extractor: 目前只有
SingleRoIExtractor
这一种类型,需在/mmdet/models/roi_extractors/__init__.py
中定义 - bbox_head: head的类型需要在
/mmdet/models/bbox_heads/__init__.py
中定义
train_cfg
训练超参数的设置。需要设置一下参数字典rpn,rcnn。
其中assigner和sampler的类型分别要在/mmdet/core/box/assigners/__init__.py
和/mmdet/core/box/samplers/__init__.py
中进行配置。
test_cfg
测试阶段的超参数的配置
需要设置rpn、rcnn的参数字典,要配置如nms的阈值与置信度的阈值。
data
dataset_type:数据集类型,需要在/mmdet/datasets/__init__.py
中设置数据集类型。
data_root:数据集根目录
参数字典data配置,配置train、val、test数据集的参数。
optimizer
优化器的选择。
通过设置参数,构造优化器。
lr_config
学习率优化策略参数设置。
checkpoint_config
设置多少epoch存储一次checkpoint
log_config
输出log文件的配置
多少个batch输出一次信息
log文件的风格
其他
- total_epoches: 最大epoch数
- log_level:
- work_dir:log文件和模型文件存储路径
- load_from:训练模型的路径
- resume_from:恢复训练模型的路径
以下内容从mmdetection的configs中的各项参数具体解释转载过来。
1 | # model settings |