3.5 KiB
3.5 KiB
MMCLS 中的约定
配置文件命名规则
MMClassification 按照以下风格进行配置文件命名,代码库的贡献者需要遵循相同的命名规则。文件名总体分为四部分:算法信息,模块信息,训练信息和数据信息。逻辑上属于不同部分的单词之间用下划线 '_'
连接,同一部分有多个单词用短横线 '-'
连接。
{algorithm info}_{module info}_{training info}_{data info}.py
algorithm info
:算法信息,算法名称或者网络架构,如 resnet 等;module info
: 模块信息,因任务而异,用以表示一些特殊的 neck、head 和 pretrain 信息;training info
:一些训练信息,训练策略设置,包括 batch size,schedule 以及数据增强等;data info
:数据信息,数据集名称、模态、输入尺寸等,如 imagenet, cifar 等;
算法信息
指论文中的算法名称缩写,以及相应的分支架构信息。例如:
resnet50
mobilenet-v3-large
vit-small-patch32
:patch32
表示ViT
切分的分块大小seresnext101-32x4d
:SeResNet101
基本网络结构,32x4d
表示在Bottleneck
中groups
和width_per_group
分别为32和4
模块信息
指一些特殊的 neck
、head
或者 pretrain
的信息, 在分类中常见为预训练信息,比如:
in21k-pre
: 在ImageNet21k
上预训练in21k-pre-3rd-party
: 在ImageNet21k
上预训练,其权重来自其他仓库
训练信息
训练策略的一些设置,包括训练类型、 batch size
、 lr schedule
、 数据增强以及特殊的损失函数等等,比如:
Batch size 信息:
- 格式为
{gpu x batch_per_gpu}
, 如8xb32
训练类型(主要见于 transformer 网络,如 ViT
算法,这类算法通常分为预训练和微调两种模式):
ft
: Finetune config,用于微调的配置文件pt
: Pretrain config,用于预训练的配置文件
训练策略信息,训练策略以复现配置文件为基础,此基础不必标注训练策略。但如果在此基础上进行改进,则需注明训练策略,按照应用点位顺序排列,如:{pipeline aug}-{train aug}-{loss trick}-{scheduler}-{epochs}
coslr-200e
: 使用 cosine scheduler, 训练 200 个 epochautoaug-mixup-lbs-coslr-50e
: 使用了autoaug
、mixup
、label smooth
、cosine scheduler
, 训练了 50 个轮次
数据信息
in1k
:ImageNet1k
数据集,默认使用224x224
大小的图片in21k
:ImageNet21k
数据集,有些地方也称为ImageNet22k
数据集,默认使用224x224
大小的图片in1k-384px
: 表示训练的输出图片大小为384x384
cifar100
配置文件命名案例
repvgg-D2se_deploy_4xb64-autoaug-lbs-mixup-coslr-200e_in1k.py
repvgg-D2se
: 算法信息repvgg
: 主要算法名称。D2se
: 模型的结构。
deploy
:模块信息,该模型为推理状态。4xb64-autoaug-lbs-mixup-coslr-200e
: 训练信息4xb64
: 使用4块 GPU 并且 每块 GPU 的批大小为64。autoaug
: 使用AutoAugment
数据增强方法。lbs
: 使用label smoothing
损失函数。mixup
: 使用mixup
训练增强方法。coslr
: 使用cosine scheduler
优化策略。200e
: 训练 200 轮次。
in1k
: 数据信息。 配置文件用于ImageNet1k
数据集上使用224x224
大小图片训练。
权重命名规则
权重的命名主要包括配置文件名,日期和哈希值。
{config_name}_{date}-{hash}.pth