配置文件的路径如下:
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.benchmark和torch.backend.cudnn.deterministicseed:在numpy,torch和cuda中使用的随机种子
device_ids: 3
n_gpu: 1
seed: 0
deterministic: False