DINOv2 模型选择速览:3 个问题定下 ViT-S 到 ViT-G 的档位
2026/9/12 17:49:46 网站建设 项目流程

DINOv2 模型选择速览:3 个问题定下 ViT-S 到 ViT-G 的档位

【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2

DINOv2 模型选择其实只取决于三件事:你的显卡和显存、你要跑的任务、以及精度目标。DINOv2 是 Meta 出品的自监督视觉预训练方法,在 1.42 亿张无标注图像上训练,产出可直接接线性分类器的视觉特征,并提供 ViT-S 到 ViT-G 四档开箱即用的骨干网络(backbone)。下面不铺垫背景,直接给结论——读完这一页,1 分钟内定下该用哪一档。

先想清楚档位:用选车类比四档模型

四档模型的 patch 大小都是 14,输入粒度和特征图尺寸一致,区别只在"发动机排量"(宽度与深度):

  • ViT-S/14(21 M):代步电动车。便宜、快、够通勤,资源紧张时的安全牌。
  • ViT-B/14(86 M):家用车。大多数场景的默认答案,速度和成本平衡得最好。
  • ViT-L/14(300 M):性能车。预算够就升,精度明显高一档。
  • ViT-g/14(1,100 M):超跑。全场最准,但"油费"(显存)要先算好再上。

决策表:DINOv2 ViT-B 还是 ViT-L,看这张表

模型参数量registersImageNet k-NNImageNet linear
ViT-S/14 distilled21 M79.0%81.1%
ViT-S/14 distilled21 M79.1%80.9%
ViT-B/14 distilled86 M82.1%84.5%
ViT-B/14 distilled86 M82.0%84.6%
ViT-L/14 distilled300 M83.5%86.3%
ViT-L/14 distilled300 M83.8%86.7%
ViT-g/141,100 M83.5%86.5%
ViT-g/141,100 M83.7%87.1%

表有两个信号:参数越大越准(linear 从 81.1% 一路到 87.1%);带 registers 在 L、g 档收益最大。下面是文字版"三问决策流":

  1. 显存/算力够吗?显存只有几 GB → 选 S;常见 12–24 GB 卡 → B、L 都能跑;想用 G,先看下方 FAQ 算账。
  2. 什么任务?只做分类、k-NN 或线性评估 → 直接按精度目标选档;做语义分割、深度估计这类密集任务 → 建议 L 或 g 的 registers 版本(仓库内 dinov2/eval/depth/ 与 dinov2/eval/segmentation/ 有对应评测代码)。
  3. 精度卡多少?要 87% 以上(ImageNet linear)→ 只有 ViT-g/14 + registers 达标(87.1%);86% 以上 → ViT-L/14 + registers(86.7%);84.5% 够用 → ViT-B/14 即可。

PyTorch Hub 加载 DINOv2:最短路径

只需一行torch.hub.load,换型号名即可切换档位:

import torch # 型号:vits14 / vitb14 / vitl14 / vitg14;带 registers 版本加 _reg 后缀 model = torch.hub.load("facebookresearch/dinov2", "dinov2_vitb14") model.eval()

想要 ImageNet 上训好的分类头(_lc后缀)或各任务的预训练头,命名规则相同,见 dinov2/hub/backbones.py。

FAQ

DINOv2 ViT-G 需要多大显存?

官方表只给了参数量,但显存可以先粗算:fp32 下 1,100 M 参数光权重就约 4.4 GB;ViT-L(300 M)约 1.2 GB,ViT-B(86 M)仅约 0.34 GB。⚠️ 这只是起点,激活值还会随输入分辨率和 batch size 增长。稳妥做法:先用 ViT-B 把 pipeline 跑通,再换 G 验证显存是否够。

要不要选带 registers 的版本?

registers(reg4,4 个可学习 token)相当于给模型加了"额外记号位",让注意力有地方吸收冗余信息。数据说话:S 档收益很小(linear 反而 80.9% 略低于 81.1%);B 档基本持平(84.5% → 84.6%);L 档 k-NN、linear 各 +0.3、+0.4 个百分点;g 档 linear 从 86.5% 提到 87.1%。结论:L 及以上默认开 registers,S/B 差别不大,随意。

表里的 distilled 是什么意思?

指蒸馏训练形式:学生网络在预训练时由教师网络的输出引导学习,表里 S/B/L 三档列出的都是 distilled 版本。选型时不用额外操心,按表中名字加载即可,同一档位下 distilled 版本通常是默认推荐。

收尾

一句话:没有特殊约束就选 ViT-B/14;要 87% 以上精度且显存够,直接 ViT-g/14 + registers。每个模型的评测细节与使用建议见 MODEL_CARD.md,更多可视化材料在 docs/ 目录。

【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询