基础配置结构 
SSCMA 使用的配置文件位于 configs 目录下,用于不同任务下不同模型的训练。我们在其根据不同的任务分类划分了子文件夹,在各个子文件夹中,保存有多个模型的不同训练管线参数。
TIP
其中名为 _base_ 的任务文件夹是我们其他任务的继承对象,关于配置文件继承的详细说明,请参考 MMEngine - 配置文件的继承。
我们使用 Python 的字典和列表来定义模型、数据加载、训练和评估等各个部分的参数。以下是该配置文件的结构和各个部分的作用,以及一般需要调整的参数。
导入模块 
在开始构建你的配置文件之前,首先需要导入必要的模块,如下所示:
python
import torch.nn as nn
from mmengine.registry import OPTIMIZERS模型配置 
num_classes:类别数量,对于口罩检测,通常是 2(戴口罩和不戴口罩)。widen_factor:模型宽度因子,用于调整模型的宽度。
数据配置 
dataset_type:指定数据集类型。data_root:数据集的根目录。train_ann、train_data、val_ann、val_data:训练和验证数据的注释文件和数据目录。height、width、imgsz:输入图像的尺寸。
训练配置 
batch、workers、persistent_workers:训练时的批处理大小、工作线程数和持久工作线程。val_batch、val_workers:验证时的批处理大小和工作线程数。lr、epochs、weight_decay、momentum:学习率、训练周期、权重衰减和动量。
钩子 
default_hooks:定义了训练过程中的钩子,如可视化钩子。visualizer:定义了可视化器。
数据预处理 
data_preprocessor:定义了数据预处理的参数,如均值、标准差、颜色转换等。
模型结构 
定义了模型的类型、数据预处理器、骨干网络和头部网络的配置。
部署配置 
deploy:定义了模型部署时的数据预处理器配置。
图像解码后端 
imdecode_backend:指定图像解码的后端。
预处理流水线 
pre_transform、train_pipeline、test_pipeline:定义了训练和测试数据的预处理流水线。
数据加载器 
train_dataloader、val_dataloader、test_dataloader:定义了训练、验证和测试数据加载器的配置。
优化器配置 
optim_wrapper:定义了优化器的类型和参数。
评估器 
val_evaluator、test_evaluator:定义了验证和测试的评估器。
训练配置 
train_cfg:定义了训练的配置,如是否按周期训练和最大周期数。
学习策略 
param_scheduler:定义了学习率调度器的策略。
配置文件涵盖了从数据预处理到模型训练和评估的各个方面。根据具体的训练需求,可能需要调整的参数包括学习率、批次大小、训练周期、优化器参数、数据增强策略等。这些参数的调整将直接影响模型的性能和训练效果。