资讯详情

DINOv2 选型笔记:4 种尺寸怎么选

📅 2026/9/12 6:29:32 | 华诺云谱 👁 阅读
DINOv2 选型笔记:4 种尺寸怎么选
DINOv2 选型笔记4 种尺寸怎么选【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2DINOv2 是 Meta AI Research 的自监督视觉模型不经标注训练就能直接产出图像特征。这篇笔记只解决一个 DINOv2 模型选型问题ViT-S/14 到 ViT-g/14 的 4 种尺寸选哪个。速查按显存档位对号入座显存 8G 以下或边缘端、移动端部署ViT-S/1421M 参数linear 评测 81.1%。常规训练卡8–16G通用分类与特征提取ViT-B/1486M 参数linear 评测 84.5%。显存 24G 以上、精度优先ViT-L/14300M 参数linear 评测 86.3%无部署压力的研究场景上ViT-g/14(_reg)1100M 参数linear 评测 87.1%。三行就是结论下面讲为什么。命名解读S/B/L/g、/14 与 _reg 分别指什么S、B、L、g 取自 Small、Base、Large、giant对应参数 21M、86M、300M、1100M。注意 g 是小写它和 L 之间隔着 300M 到 1100M 的断档不是平滑的下一档。斜杠后的 /14 指把图像切成 14×14 像素的块patch每块一个 token。224×224 的图是 256 个 token518×518 的图是 1369 个。块越小细节越细注意力开销也越高。名字里的 _reg 表示模型带 4 个 registers token。可以把 registers 理解成注意力的专用草稿纸不属于任何 patch 的全局信息先堆在那里patch token 才能专注处理自己。对应权重文件叫*_reg4_pretrain.pth加载名以_reg结尾。看数字ViT-S/14 到 ViT-g/14 的边际收益在哪一档掉下去模型参数RegistersImageNet k-NNImageNet linearViT-S/1421M✗79.0%81.1%ViT-S/1421M✓79.1%80.9%ViT-B/1486M✗82.1%84.5%ViT-B/1486M✓82.0%84.6%ViT-L/14300M✗83.5%86.3%ViT-L/14300M✓83.8%86.7%ViT-g/141100M✗83.5%86.5%ViT-g/141100M✓83.7%87.1%沿不带 registers 的主线linear 评测逐档走看每多付参数买回多少分S→B多付 65M 参数换 3.4pt81.1→84.5每百万参数回报是四档里最高的。B→L多付 214M换 1.8pt还在涨但成本已是上一档的 3 倍。L→g多付 800M只换 0.2ptk-NN 原地不动。这一档基本属于花钱买不到分。全表最高的 87.1% 出自g registers代价是 1100M 参数和约 5 倍于 B 的显存。registers 本身是低配低回报的选项S/B 档的 linear 增益在 ±0.2pt 内噪声级L 是 0.4ptg 是 0.6pt。模型越大registers 收益越明显模型越小两个版本越没必要纠结。三步定型号硬件、精度、registers部署在哪。边缘端、CPU 或显存 8G 以下直接锁 ViT-S/14不进入后面两步。常规训练卡继续。精度底线是多少。linear 84.5%ViT-B/14够任务用就选 B需要 86% 以上再上 ViT-L/14。别为最后 1 个点上 g除非显存富余且任务本身就是研究基准。要不要 registers。只用 cls token 接分类器普通版足够做检测、分割这类要消费 patch 特征的密集任务选_reg版L/g 档的收益也最稳定。一行加载 DINOv2 权重拿到特征仓库 hubconf 暴露 8 个 backbone 入口dinov2_vits14/dinov2_vitb14/dinov2_vitl14/dinov2_vitg14及各自_reg版依赖只有 PyTorchimport torch from PIL import Image from torchvision import transforms model torch.hub.load(facebookresearch/dinov2, dinov2_vitb14).eval() tfm transforms.Compose([transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]) img tfm(Image.open(test.jpg)).unsqueeze(0) with torch.no_grad(): cls model.forward_features(img)[x_norm_clstoken] # shape (1, 768) print(cls.shape)来源README.mdforward_features 的输出字典见 dinov2/models/vision_transformer.py此图是 DINOv2 变体 Cell-DINO面向细胞显微图像的结构左侧是无标注的学生-教师自蒸馏右侧是 ViT 网络的输入流图像 → 切块 → 自注意力与上面加载的 backbone 结构一致。常见坑加载权重前对三件事_lc和 backbone 别混用。上一节的 8 个名字只输出特征_lc版如dinov2_vitb14_lc在上面接了一个 1000 类线性头直接输出 logits只服务于 ImageNet-1k。分类用_lc版提特征用 backbone 版。_reg 权重只认 _reg 模型。registers 版权重大了 4 个 token装进普通版模型会 strict 加载失败。dinov2_vitb14_reg对应dinov2_vitb14_reg4_pretrain.pth一一对应。按参数量粗估显存。fp16 权重约等于参数量 × 2 字节B 约 0.17GBL 约 0.6GBg 约 2.2GB。实际占用看激活和 batch经验值g 单图推理要留足 16G 以上显存L 在 12–16G 比较从容。S/B/L 都是 distilled 权重。表里 S、B、L 三档用的是蒸馏版学生权重g 是常规巨型模型命名上没有 distilled但不影响加载接口。以上是完整的 DINOv2 模型选型流程先档定位再精度最后定 registers。权重下载链接、许可说明与分割/深度等任务的预训练头完整列表见仓库 README.md。【免费下载链接】dinov2PyTorch code and models for the DINOv2 self-supervised learning method.项目地址: https://gitcode.com/GitHub_Trending/di/dinov2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。