ViT 微调准确率掉到 72%?timm 三组参数拉回 90%

发布时间:2026/9/1 9:53:25
ViT 微调准确率掉到 72%?timm 三组参数拉回 90% ViT 微调准确率掉到 72%timm 三组参数拉回 90%【免费下载链接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more项目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models换了个自己的数据集预训练 ViT 的准确率从 95% 直接砸到 72%。其实多半不是模型不行是微调参数没配对。用 timmpytorch-image-models调好三组参数就能回到 90% 档位。微调到底在干嘛一句话拨弦不是换琴微调不是重训。预训练权重早就看过海量图像相当于老厨师换了个厨房——刀工不用学只需适应新灶台。你只是换掉分类头再让新数据把参数洗一遍把通用能力掰向你自己的任务。 从零到能跑环境与数据管道先装好依赖拉代码git clone https://gitcode.com/GitHub_Trending/py/pytorch-image-models cd pytorch-image-models pip install -r requirements.txt数据侧用 timm 的两个工厂函数就够了from timm.data import create_dataset, create_loader dataset create_dataset(rootdata/train, splittrain) loader create_loader(dataset, input_size224, batch_size32, is_trainingTrue)is_trainingTrue会自动带上随机裁剪和水平翻转验证时设成 False 即可。⚙️ 三组参数决定你的微调上限 值得拨的就三组旋钮学习率、正则化、增强。ViT 微调学习率设置5e-5 起步就够了预训练权重是被打磨过的学习率一大味道立刻被冲掉。AdamW 配 5e-5 起步收敛太慢再升到 1e-4再高基本就翻车。optimizer create_optimizer_v2(model, optadamw, lr5e-5, weight_decay0.05)过拟合解决方案三件套一起上三个开关默认都是关的得手动开DropPath 防深层网络过拟合权重衰减压参数幅度标签平滑防止模型过度自信。model timm.create_model(vit_base_patch16_224, pretrainedTrue, drop_path_rate0.1) # 数据少时提到 0.2 criterion LabelSmoothingCrossEntropy(smoothing0.1)配合上面weight_decay0.05一整套就齐了。数据增强策略一行 RandAugment 打底别自己堆增强直接用社区验证过的 RandAugment 配置串transform create_transform( input_size224, is_trainingTrue, auto_augmentrand-m9-mstd0.5-inc1, # 强度中档的 RandAugment re_prob0.25) # 随机擦除额外正则re_prob0.25的随机擦除相当于打码逼模型别看局部纹理泛化更稳。进阶让模型稳一点 这部分是锦上添花。模型 EMA指数移动平均是给主模型配一个影子分身每步都往主模型身上蹭一点权重更新更平滑。验证时用影子模型打分通常比主模型更稳from timm.utils import ModelEmaV3 ema ModelEmaV3(model, decay0.9998) # 每个 batch 末尾调用ema.update(model)推理端想提速两招任选包一层torch.cuda.amp.autocast()开混合精度或model torch.compile(model)让图编译器干活。精度几乎无损速度能快一截。 微调效果怎么验收一张表说清验收点健康范围出问题了怎么办训练/验证精度 gap 3%正则加量学习率减半EMA 与非 EMA 精度差EMA 高 0~1%延长训练或换 decay收敛轮数10 epoch 内进平台期换一档学习率重跑单 epoch 精度跳变 1%补 warmup 轮数loss 曲线形态平滑下降无尖峰查数据归一化 踩坑速查loss 变 NaN→ 学习率或权重衰减太大 → 先回 5e-5再逐项调验证精度忽上忽下→ 缺 warmup 或没用 EMA 验证 → 加 3~5 个 epoch 预热推理慢得离谱→ 还在全精度裸跑 → 上 autocast 或 torch.compile三组旋钮拧到位准确率自然往上走。下一步可以试vit_large_patch16_224或知识蒸馏再挤一挤。本文基于 timm 1.0.29.dev0timm/models/vision_transformer.py、timm/utils/model_ema.py。【免费下载链接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more项目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考