MMPretrain深度学习框架中的命名规范详解
引言
在深度学习研究和工程实践中,规范的命名体系对于模型管理和团队协作至关重要。MMPretrain作为一款优秀的深度学习框架,建立了一套完善的命名规范体系。本文将全面解析MMPretrain框架中的模型、配置文件和权重文件的命名规则,帮助开发者更好地理解和使用这套规范。
模型命名规则解析
MMPretrain采用五段式结构为模型命名,各部分之间用下划线连接,同一部分内的多个单词用短横线连接。这种结构化的命名方式能够清晰表达模型的关键信息。
1. 算法信息(可选)
算法信息表示训练模型所使用的主要算法,常见的有:
- 自监督学习算法:
simclr
、mocov2
等 - 视觉Transformer相关算法:
eva-mae-style
等 - 监督学习模型通常省略此部分
2. 模块信息(必需)
模块信息主要描述模型的核心架构:
- CNN架构:
resnet50
、resnet101
等 - Transformer架构:
vit-base-p16
、swin-base
等 - 混合架构:
convnext-base
等
其中p16
表示patch大小为16×16像素,这是视觉Transformer架构特有的参数。
3. 预训练信息(可选)
对于基于预训练模型微调的模型,需要包含预训练相关信息:
- 预训练方法:
clip
、mae
等 - 预训练数据集:
in21k
(ImageNet-21k)、laion2b
等 - 预训练时长:
300e
(300个epoch) - 预训练来源:
openai
、fb
(Facebook)等 - 必须以
-pre
结尾标识
4. 训练信息(必需)
详细记录训练配置和策略:
- 硬件配置:
8xb32
(8个GPU,每个GPU batch size为32) - 训练类型:
ft
(微调)、pt
(预训练) - 训练技巧组合:按应用顺序排列
- 数据增强:
autoaug
、mixup
- 损失函数:
lbs
(label smoothing) - 学习率策略:
coslr
(cosine scheduler)
- 数据增强:
- 训练时长:
50e
(50个epoch) - 第三方模型使用
3rdparty
标识
5. 数据信息(必需)
描述训练数据集和输入规格:
- 数据集:
in1k
(ImageNet-1k)、cifar100
等 - 输入尺寸:
384px
(384×384像素),默认224px可省略
实际案例解析
案例1:第三方转换的CLIP模型
vit-base-p32_clip-openai-pre_3rdparty_in1k
- 架构:Vision Transformer基础版,patch大小32×32
- 预训练:使用CLIP方法,来自OpenAI
- 来源:第三方转换
- 数据集:ImageNet-1k
案例2:BEiT预训练模型
beit_beit-base-p16_8xb256-amp-coslr-300e_in1k
- 算法:BEiT
- 架构:BEiT修改版ViT基础架构,patch16×16
- 训练:8GPU×256batch,混合精度,cosine学习率,300epoch
- 数据集:ImageNet-1k
配置文件命名规范
配置文件命名与模型命名基本一致,但有两点特殊:
- 必须包含完整的训练信息,不能使用
3rdparty
- 仅包含主干网络的配置文件以
_headless.py
结尾
权重文件命名规则
权重文件命名包含模型名称、日期和哈希值:
{model_name}_{date}-{hash}.pth
这种命名方式确保了权重文件的唯一性和可追溯性。
最佳实践建议
- 新模型开发时应严格遵循命名规范
- 各部分信息应简洁但充分
- 避免使用模糊或自定义的缩写
- 同一项目内保持命名风格一致
- 特殊情况下可在文档中补充说明
通过这套规范的命名体系,MMPretrain实现了模型信息的清晰表达和高效管理,为深度学习研究和工程实践提供了良好的基础。理解并正确应用这些规范,将有助于开发者更好地使用该框架进行工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考