Skip to content

基础配置结构

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_anntrain_dataval_annval_data:训练和验证数据的注释文件和数据目录。
  • heightwidthimgsz:输入图像的尺寸。

训练配置

  • batchworkerspersistent_workers:训练时的批处理大小、工作线程数和持久工作线程。
  • val_batchval_workers:验证时的批处理大小和工作线程数。
  • lrepochsweight_decaymomentum:学习率、训练周期、权重衰减和动量。

钩子

  • default_hooks:定义了训练过程中的钩子,如可视化钩子。
  • visualizer:定义了可视化器。

数据预处理

  • data_preprocessor:定义了数据预处理的参数,如均值、标准差、颜色转换等。

模型结构

定义了模型的类型、数据预处理器、骨干网络和头部网络的配置。

部署配置

  • deploy:定义了模型部署时的数据预处理器配置。

图像解码后端

  • imdecode_backend:指定图像解码的后端。

预处理流水线

  • pre_transformtrain_pipelinetest_pipeline:定义了训练和测试数据的预处理流水线。

数据加载器

  • train_dataloaderval_dataloadertest_dataloader:定义了训练、验证和测试数据加载器的配置。

优化器配置

  • optim_wrapper:定义了优化器的类型和参数。

评估器

  • val_evaluatortest_evaluator:定义了验证和测试的评估器。

训练配置

  • train_cfg:定义了训练的配置,如是否按周期训练和最大周期数。

学习策略

  • param_scheduler:定义了学习率调度器的策略。

配置文件涵盖了从数据预处理到模型训练和评估的各个方面。根据具体的训练需求,可能需要调整的参数包括学习率、批次大小、训练周期、优化器参数、数据增强策略等。这些参数的调整将直接影响模型的性能和训练效果。

在 Apache 2.0 授权下发布