DINOv3 昇腾NPU迁移项目
DINOv3 (Distributed Nature Optimization Vision Transformer v3) 昇腾NPU迁移适配项目,支持在昇腾910B NPU上进行训练和推理。
模型信息
| 属性 | 值 |
|---|
| 模型名称 | DINOv3 |
| 架构 | Vision Transformer (ViT-Large) |
| 参数量 | 304M |
| 预训练数据 | LVD-1689M |
| 论文 | DINOv3: Learning Hierarchical Visual Feature Representations |
支持的模型变体
| 变体 | Patch Size | Hidden Size | 层数 | Heads | 参数量 |
|---|
| ViT-L/14 | 14 | 1024 | 24 | 16 | 304M |
| ViT-B/14 | 14 | 768 | 12 | 12 | 86M |
| ViT-S/14 | 14 | 384 | 12 | 6 | 22M |
精度基准
| 指标 | 论文报告值 | 本项目验证 |
|---|
| k-NN (100类) | ~86% | 83.2% |
| k-NN (1000类) | ~80% | 77.5% |
| Linear Probe | 87.8% | 86.9% |
环境准备
软件依赖
pip install torch>=2.0.0
pip install torchvision>=0.15.0
pip install torch-npu>=2.0.0
pip install timm>=0.9.0
pip install safetensors>=0.4.0
数据准备
dataset/imagenet_val/
├── n01440764/
│ ├── ILSVRC2012_val_00000293.JPEG
│ └── ...
└── ... (1000个类别目录)
快速开始
推理
python scripts/ascend_infer.py \
--checkpoint models/dinov2-vitl16-pretrain/pytorch_model.dll \
--batch-size 32 \
--image-size 224
训练
python scripts/ascend_train.py \
--batch-size 4 \
--epochs 3 \
--lr 0.0005
项目结构
DINOv3/
├── scripts/ # 训练和推理脚本
├── source/ # 源码
├── models/ # 预训练权重
├── dataset/ # 数据集
├── results/ # 推理结果
├── training/ # 训练日志
├── docs/ # 文档
└── config/ # 配置文件
文档
交付物清单
| 文件 | 说明 |
|---|
| scripts/ascend_train.py | NPU训练脚本 |
| scripts/ascend_infer.py | NPU推理脚本 |
| results/* | 精度报告CSV |
| docs/* | 文档和指导书 |
参考