LibContinual / docs /tutorials /zh /config_file_zh.md
boringKey's picture
Upload 236 files
5fee096 verified

配置文件的路径如下:

config/*

LibContinual配置文件构成

LibContinual配置文件使用yaml文件格式。我们预定义的配置文件位于core/config/default.yaml,用户可以将自定义的配置项放入config/目录下,并且保存为.yaml格式。

虽然大多数配置已经在default.yaml提前编写好了,但是您不能直接使用default.yaml配置来运行框架,需要预先定义所运行方法对应的配置文件。可以参考下面的参数说明编写你自己的配置文件。

config/headers文件夹中,包含了以下文件:

  • data.yaml:数据相关的配置定义在此文件中
  • device.yaml:与GPU相关的配置项定义在此文件中
  • model.yaml:与模型相关的配置定义此文件中
  • optimizer.yaml:与优化器相关的配置定义在此文件中

LibContinual配置文件的设置

数据设置

  • data_root:数据集的存储路径
  • image_size:输入图片的大小
  • pin_momery:是否使用内存来加速读取
  • workers:并行读取数据进程的数量
data_root: /data/cifar10/
image_size: 32

模型设置

backbone:该方法中使用的骨干网络信息

  • name: 骨干网络的名称,需要与LibContinual框架中的实现所对应

  • kwargs:骨干网络所需要的参数,需要与代码中的命名一致

    • num_classes:模型需要的分类总数
    • args:需要的其他参数
      • dataset:所使用的数据集,不同数据集的骨干网络实现细节有所不同
    backbone:
      name: resnet18
      kwargs:
        num_classes: 10
        args: 
          dataset: cifar10
    

classifier:方法中使用的分类器信息

  • name:分类器的名称,需要与LibContinual中的方法实现保持一致

  • kwargs:分类器的初始化参数,需要与代码实现的名称保持一致

    classifier:
      name: PASS
      kwargs:
        num_class: 100
        feat_dim: 512
        # 下面是方法相关的超参数
        feat_KD: 10.0
        proto_aug: 10.0
        temp : 0.1
    

训练设置

  • init_cls_num:第一个任务的训练类别数
  • inc_cls_num:随后增量任务的训练类别数
  • task_num:任务总数
  • init_epoch:第一个任务上的训练轮数
  • epoch:增量任务上的训练轮数
  • val_per_epoch:每过多少轮训练在测试集上测试性能
  • batch_size:训练时的批次大小
  • warm_up:训练之前的预热轮次
warmup: 0
init_cls_num: 50
inc_cls_num: 10
task_num: 6
batch_size: 64
init_epoch: 100
epoch: 100
val_per_epoch: 10

优化器设置

  • optimizer:训练中使用的优化器信息
    • name:优化器的名称,只支持Pytorch内置的优化器
    • kwargs:该优化器使用的参数,参数名称需要与Pytorch中优化器参数的参数名称相同,例如
      • lr:优化器学习率
      • weight_decay:权重衰减
optimizer:
  name: Adam
  kwargs:
    lr: 0.001
    weight_decay: 0.0002

lr_scheduler:训练中使用的学习率调整策略,只支持Pytorch内置的优化器调整策略

  • name:学习率调整策略的名称
  • kwargs:学习率调整策略的参数,注意不同的学习率调整策略会有不同的参数
lr_scheduler:
  name: StepLR
  kwargs:
    step_size: 45
    gamma: 0.1

硬件设置

  • device_ids:所使用的GPU编号
  • n_gpu:训练中使用的并行GPU数量, 如果是1, 表示不使用并行训练
  • deterministic:是否开启 torch.backend.cudnn.benchmarktorch.backend.cudnn.deterministic
  • seed:在 numpytorchcuda中使用的随机种子
device_ids: 3
n_gpu: 1
seed: 0
deterministic: False