目录
代码位置:configs/_base_/models/faster_rcnn_r50_fpn.py
代码位置:configs/_base_/datasets/voc0712.py
代码位置:configs/_base_/datasets/schedule_1x.py
代码位置:tools/train.py
cfg.work_dir = osp.join('./work_dirs',
osp.splitext(osp.basename(args.config))[0]) #work_dir = './work_dirs/faster_rcnn_r50_fpn_1x' 代表log文件和模型文件存储路径
代码位置:configs/_base_/models/faster_rcnn_r50_fpn.py
# model settings
model = dict(
type='FasterRCNN', # model类型
pretrained='torchvision://resnet50', # 预训练模型
backbone=dict(
type='ResNet', # backbone类型
depth=50, # 网络层数
num_stages=4, # rsenet的stage数量
out_indices=(0, 1, 2, 3), # 输出的stage序号
frozen_stages=1, # 冻结的stage数量,即该stage不更新参数。-1表示所有的stage都更新参数
norm_cfg=dict(type='BN', requires_grad=True), # 传递梯度,更新weight和bias
style='pytorch'), # 网络风格:如果设置为pytorch,那么stride为2的层是conv3*3卷积。如果设置为caffe,则stride为2的层是第一个conv1x1的卷积层
neck=dict(
type='FPN', # neck类型
in_channels=[256, 512, 1024, 2048], # 输入的各个stage的通道数
out_channels=256, # 输出的特征层的通道数
num_outs=5), # 输出的特征层的数量
rpn_head=dict(
type='RPNHead', # RPN网络类型
in_channels=256, # RPN网络的通道数
feat_channels=256, # 特征层的通道数
anchor_scales=[8], # 生成的anchor的baselen,baselen=sqrt(w*h);w,h为anchor的width,height。
anchor_ratios=[0.5, 1.0, 2.0], # anchor的宽高比
anchor_strides=[4, 8, 16, 32, 64], # 对应于原图,每个特征层上的 anchor的步长
target_means=[.0, .0, .0, .0], # 均值
target_stds=[1.0, 1.0, 1.0, 1.0], # 方差
loss_cls=dict(
type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0), # 是否使用sigmoid来进行分类,如果False则使用softmax来分类
loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weigh