mmcls中配置文件的继承和更改(同样适用于其余的mmlab项目)
- 基础配置文件(来自于config文件夹中所需模型的某一版本)
_base_ = [
'../_base_/models/resnet18.py', '../_base_/datasets/imagenet_bs32.py',
'../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
]
- 在mmcls neck而后在配置中引入
mmcls.models.necks.pafpn.py文件
注意此时没有在__init__()中添加任何自定义的neck注册器,而是通过配置文件中的用户自定义导入
custom_imports = dict(
imports=['mmcls.models.necks.pafpn'],
allow_failed_imports=False)
model = dict(
neck=dict(type='PAFPN') # 后面加入PAFPN 初始化__init__()需要的参数
)
- 更改数据集为用户自定义数据集,并用文件夹的名字当作类别
dataset_type = 'CustomDataset'
data = dict(
train=dict(
type=dataset_type,
data_prefix='G:\\github-projects\\deep-learning-for-image-processing\\data_set\\flower_data\\train',
ann_file=None
),
val=dict(
type=dataset_type,
data_prefix='G:\\github-projects\\deep-learning-for-image-processing\\data_set\\flower_data\\val',
ann_file=None
),
test=dict(
type=dataset_type,
data_prefix='G:\\github-projects\\deep-learning-for-image-processing\\data_set\\flower_data\\val',
ann_file=None
)
)
- 其余需要更改的地方
评估执行的次数,1个epoch
优化器种类(学习率等学习速度超参的修改)
优化器参数
学习率降低策略
evaluation = dict(interval=1, metric='accuracy')
optimizer = dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None)
lr_config = dict(policy='step', step=[30, 60, 90])
- 日志、模型保存路径和间隔
load_from——迁移学习模型路径
resume_from——接续训练模型路径
checkpoint_config = dict(interval=1)
checkpoint_config = dict(interval=1)
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])
load_from = 'G:\\github-projects\\mmclassfication-new\\mmclassification\\resources\\resnet18_8xb32_in1k_20210831-fbbb1da6.pth'
resume_from = None
work_dir = './work_dirs/new_neck'
gpu_ids = [0]