模型训练不同批次大小与学习率下的训练损失对比(2)
以ConvNeXt 为例
ConvNeXt 中模型之间的关系
flyfish
一、架构尺寸维度
ConvNeXt-T / S / B / L / XL 是同一套架构的不同尺寸变体,只有通道数、每个阶段的block数量不同,核心设计(patchify stem、倒置瓶颈、7×7深度卷积、分层结构等)完全一致,参数量和计算量逐级递增。
| 模型 | 定位 | 对应对标 |
|---|---|---|
| ConvNeXt-T(Tiny) | 轻量版 | Swin-T |
| ConvNeXt-S(Small) | 小版 | Swin-S |
| ConvNeXt-B(Base) | 基础版 | Swin-B |
| ConvNeXt-L(Large) | 大版 | Swin-L |
| ConvNeXt-XL(Extra Large) | 加大版 |
二、训练阶段
论文里有两条训练路线,其中22K预训练→多任务微调是主流、效果更好的路线;1K从头训练是基线对照组。
随机初始化权重
├─ 路线1(基线):直接在ImageNet-1K从头训练300轮 → 1K从头分类模型
└─ 路线2(主流):在ImageNet-22K预训练90轮 → 22K通用预训练权重
├─ 分支1:ImageNet-1K分类微调30轮(224px/384px)→ 分类成品模型
├─ 分支2:COCO检测/分割微调 → 检测成品模型
└─ 分支3:ADE20K语义分割微调 → 分割成品模型
路线1:主流范式 ------ ImageNet-22K 预训练 → 多任务微调
第1层:通用预训练底座
输入:随机初始化的 ConvNeXt-T/S/B/L/XL
训练数据:ImageNet-22K(21841个类别,约1400万张图片,超大类别、超大规模)
训练:90轮预训练
产出:ImageNet-22K 预训练权重
定位:所有下游任务的通用特征底座,属于半成品,不直接用于具体任务;作用是让模型学到通用的底层视觉知识(边缘、纹理、形状、物体通用规律)。
第2层:各任务平级微调(都基于22K预训练权重)
22K预训练权重是公共底座,在此基础上分别对接不同的任务头,做独立的平级微调;三个任务之间没有继承关系,都直接来自22K预训练:
| 微调分支 | 任务 | 做法 | 产出 |
|---|---|---|---|
| 分支1 | ImageNet-1K 图像分类 | 接分类头,在1000类ImageNet-1K上微调30轮;分224×224、384×384两种分辨率 | 最终图像分类模型 |
| 分支2 | COCO 目标检测/实例分割 | 作为骨干网络,接入Mask R-CNN/Cascade Mask R-CNN检测头,在COCO数据集上微调 | 检测/分割任务模型 |
| 分支3 | ADE20K 语义分割 | 作为骨干网络,接入UperNet分割头,在ADE20K数据集上微调 | 语义分割任务模型 |
检测、分割等下游任务,直接用22K预训练的通用骨干微调,不是先微调1K分类,再微调检测分割;ImageNet-1K分类只是众多下游任务中的一个,和检测、分割是平级关系。
路线2:基线对照 ------ ImageNet-1K 从头全量训练
输入:随机初始化的 ConvNeXt-T/S/B/L(XL参数量过大,没有做1K从头训练)
训练数据:ImageNet-1K(1000个类别,120万张图片)
训练:直接从零开始训练300轮
定位:作为基线对照组,用来验证ConvNeXt架构本身的效果;精度显著低于22K预训练+1K微调的版本(比如ConvNeXt-B:从头训练83.8% vs 22K预训练+微调85.8%)。