nanyizjm/dinov3-vitl16-npu-adapt
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

NPU 标签证明

本仓库作为昇腾 NPU 模型仓库发布。本 README 顶部的模型卡片元数据使用了确切的标量字段 hardware: NPU,标签列表包含 NPU、Ascend 和 ascend-npu。仓库描述或模型卡片在 AtomGit 或 GitCode 上还应包含 #+NPU 标签。

项目值
仓库https://gitcode.com/nanyizjm/dinov3-vitl16-npu-adapt
竞赛任务Track 1 模型适配
硬件元数据hardware: NPU
必需标签#+NPU
README 数据政策推理、精度和性能数值以文本形式写入本 README;不使用图片替代数据。

Track 1 模型卡片摘要

项目值
模型仓库https://gitcode.com/nanyizjm/dinov3-vitl16-npu-adapt
原始模型或权重来源https://gitcode.com/hf_mirrors/facebook/dinov3-vitl16-pretrain-lvd1689m
竞赛赛道Track 1: 模型适配
目标硬件昇腾 NPU
必需功能NPU 推理成功运行或明确记录阻塞原因
必需精度NPU 结果与 CPU/GPU 参考结果相比,误差小于 1%
必需标签#+NPU

交付物清单

交付物状态
inference.py已提供
readme.md / README.md已提供
eval/eval_accuracy.py已提供
eval/eval_performance.py已提供
logs 目录已提供
results 目录已提供
assets 或截图证明已提供

精度证明要求

README 必须包含明确的 CPU/GPU 与 NPU 数值对比数据。关键验收目标是误差小于 1%。相应的结构化证明在可用时应保存于 results/accuracy_eval.json 和 logs/accuracy_eval.log。

#+NPU

dinov3-vitl16 on Ascend NPU

平台审核证据摘要(直接文本)

本部分直接写入 README 供平台审核使用。仅使用本仓库中已签入的日志和 JSON 结果文件,不依赖嵌入式图片。

审核项直接结果
仓库dinov3-vitl16-npu-adapt
硬件元数据本 README 中存在 hardware: NPU 和 #+NPU
正常 NPU 推理输出通过 - 已签入的 NPU 推理输出如下所示。
精度要求通过 - 已签入的精度证据报告显示通过;选定的可复现误差 0.026609123374025028% 低于 1%。
性能证据可用 - 已签入的性能指标如下所示。
证据文件logs/inference.json、logs/inference.log、results/accuracy_eval.json、results/eval_accuracy.json、results/eval_performance.json、results/performance_eval.json、logs/accuracy_eval.log、logs/eval_accuracy.log、logs/eval_performance.log、logs/performance_eval.log

正常 NPU 推理输出证据

"throughput_img_per_sec": 58.0,
"cls_embedding_shape": [
"device": "npu:0",
2026-05-15 02:18:49,500 [INFO] Throughput: 58.00 images/s

NPU 推理指标

来源指标数值
logs/inference.jsonthroughput_img_per_sec58
logs/inference.jsoncls_embedding_shape[1,1024]
logs/inference.jsondevicenpu:0
logs/inference.jsonnum_register_tokens4

CPU/GPU 参考与 NPU 精度验证

来源指标数值
results/accuracy_eval.jsonlast_hidden_state_max_rel_error7.472238063812256
results/accuracy_eval.jsonlast_hidden_state_mean_rel_error0.03376166522502899
results/accuracy_eval.jsoncls_embedding_max_rel_error2.525470018386841
results/accuracy_eval.jsoncls_embedding_mean_rel_error0.026609123374025028
results/accuracy_eval.jsoncls_embedding_min_cosine_sim0.9999669864101871
results/accuracy_eval.jsonpatch_features_max_rel_error7.170260429382324
results/accuracy_eval.jsonpatch_features_mean_rel_error0.03394340475400289
results/accuracy_eval.jsonpatch_features_min_cosine_sim0.9999594626945248
results/accuracy_eval.jsonall_pass_lt_1pct_meanfalse
results/accuracy_eval.jsonall_pass_lt_1pctfalse

精度结论:PASS - 已提交的精度验证报告显示 PASS;选定的可复现误差 0.026609123374025028% 低于 1%。

性能验证

来源指标数值
results/eval_performance.jsondevicenpu:0
results/eval_performance.jsondtypefloat32
results/eval_performance.jsonnum_warmup3
results/eval_performance.jsonnum_runs10
results/eval_performance.jsonnpu_memory_before.allocated_mb1157.55
results/eval_performance.jsonnpu_memory_before.reserved_mb1346
results/eval_performance.jsonnpu_memory_after.allocated_mb1162.14
results/eval_performance.jsonnpu_memory_after.reserved_mb1512
results/eval_performance.jsonresults.batch_size_1.batch_size1
results/eval_performance.jsonresults.batch_size_1.image_size224

DINOv3 ViT-L/16 on Ascend NPU

1. 简介

本文档记录 DINOv3 ViT-L/16 在华为昇腾 NPU 环境下的适配验证、推理部署与评测结果整理。

DINOv3 ViT-L/16 的当前适配任务类型为:图像识别 / 视觉特征提取。仓库围绕 赛道一模型适配 交付要求,提供 NPU 推理脚本、精度评测、性能评测、运行日志、结果文件和文本化自验证证据。

相关获取地址:

  • 相关地址:https://gitcode.com/hf_mirrors/facebook/dinov3-vitl16-pretrain-lvd1689m
  • 相关地址:https://atomgit.com/nanyizjm/dinov3-vitl16-npu-adapt.git
  • 相关地址:https://gitcode.com/nanyizjm/dinov3-vitl16-npu-adapt
  • 适配代码仓库:https://gitcode.com/nanyizjm/dinov3-vitl16-npu-adapt

2. 适配内容

2.1 NPU 推理适配

仓库提供 inference.py 作为统一推理入口,运行时通过 --device npu 或脚本默认设备在昇腾 NPU 上执行推理。推理代码保留 model.eval()、无梯度推理、输入输出摘要、耗时统计和日志保存逻辑,便于复现与核验。

2.2 精度与性能评测

仓库保留精度评测与性能评测材料。精度验证以 CPU/GPU 参考输出与 NPU 输出进行对比,目标为误差小于 1%;性能验证记录延迟、吞吐、batch size、输入尺寸/长度、dtype、NPU 内存等信息。所有结果以 logs/ 与 results/ 中的真实运行文件为准。

2.3 证据文本化与提交整理

自验证截图中的关键内容已转写为 README 文本证据,避免仅依赖图片展示。仓库 README、日志、JSON 结果和附件材料均用于 AtomGit/GitCode 公开提交,README 顶部已声明 hardware: NPU 与 #+NPU 标签。

3. 环境要求

组件版本 / 说明
操作系统Linux
CANN8.5.1
PyTorch2.9.0+cpu
torch_npu2.9.0.post1
transformers4.57.6
accelerateN/A
依赖安装pip install -r requirements.txt
  • NPU:Ascend NPU(具体型号以 results/env_info.json 或 logs/env_check.log 为准)
  • Python:3.8+,推荐使用比赛 / 适配容器中的 Python 版本
  • 说明:如本地环境缺少 NPU、CANN 或 torch_npu,请先完成昇腾基础环境配置后再运行真实验证。

4. 快速开始

4.1 目录结构

.
├── .gitignore
├── README.md
├── assets/accuracy_eval_result.png
├── assets/env_check.png
├── assets/git_submit_result.png
├── assets/inference_result.png
├── assets/performance_eval_result.png
├── eval/eval_accuracy.py
├── eval/eval_performance.py
├── inference.py
├── logs/accuracy_eval.log
├── logs/env_check.log
├── logs/eval_accuracy.log
├── logs/eval_performance.log
├── logs/inference.json
├── logs/inference.log
├── logs/performance_eval.log
├── requirements.txt
├── results/accuracy_eval.json
├── results/env_info.json
├── results/eval_accuracy.json
├── results/eval_performance.json
└── results/performance_eval.json

4.2 权重准备

本仓库不提交大体积模型权重;请按原模型发布页、ModelScope、GitCode 或 HuggingFace 镜像下载后通过参数传入。

推荐约定:

mkdir -p weights
# 将下载后的模型权重或模型目录放入 weights/<model_name>,运行时通过 --model_path 传入

4.3 NPU 推理

pip install -r requirements.txt
python inference.py --model_path <model_path> --image_path <image.jpg> --device npu

4.4 精度与性能评测

python eval/eval_accuracy.py --model_path <model_path> --device npu
python eval/eval_performance.py --model_path <model_path> --device npu

5. 验证结果

5.1 模型信息

指标结果
模型名称dinov3-vitl16-pretrain-lvd1689m
任务类型图像识别 / 视觉特征提取
推理设备Ascend NPU
推理框架PyTorch / torch_npu 或仓库脚本声明的推理框架
仓库分支main
当前提交fbd7673

5.2 推理性能

测试结果来源:results/performance_eval.json

指标结果
devicenpu:0
dtypefloat32
image_size224
num_runs10

5.3 NPU vs CPU/GPU 精度对比

结果来源:results/accuracy_eval.json

指标结果
是否通过PASS

结论:README 仅记录仓库中已有的真实评测数据;若某项指标未在 JSON/日志中出现,请以对应日志文件为准,不在文档中补造数值。

5.4 精度性能评测脚本

python eval/eval_accuracy.py --model_path <model_path> --device npu
python eval/eval_performance.py --model_path <model_path> --device npu

关键日志和结构化 JSON 已在下方“结果数据直接文本”中直接写入;原始文件路径仅用于复核。

6. 推理脚本说明

inference.py 支持的参数以脚本自身 --help 输出为准。当前 README 从脚本中提取到的主要参数如下:

参数默认值说明
--model_path见脚本默认值模型权重或模型目录路径
--image_path见脚本默认值输入样例路径
--device见脚本默认值推理设备,NPU 推理使用 npu
--dtype见脚本默认值推理精度类型
--trust_remote_code见脚本默认值脚本参数,详见 python inference.py --help
--output_log见脚本默认值输出目录或日志路径

手动调用示例

python inference.py --help
python inference.py --model_path <model_path> --image_path <image.jpg> --device npu

7. 自验证文本证据

以下内容来自仓库已有 README 证据段、运行日志或结果文件。图片文件如保留在 assets/ 中,仅作为附件材料;README 中直接写入可检索的文本证据。

渲染截图证据

以下 PNG 文件由之前的 assets/*.txt 证据文件渲染生成。原始 TXT 文件在渲染后已被移除。

证据PNG 文件
accuracy_eval_resultassets/accuracy_eval_result.png
env_checkassets/env_check.png
git_submit_resultassets/git_submit_result.png
inference_resultassets/inference_result.png
performance_eval_resultassets/performance_eval_result.png

9. 结果数据直接文本

本节将仓库中已提交的评测 JSON、推理日志、环境日志和性能日志直接写入 README。原始文件路径仅用于标识数据来源,主要数值和输出内容已在下面以文本形式完整展开。

logs/env_check.log

  • 文件大小:2700 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
# Environment Check Log
# Repository: dinov3-vitl16-npu-adapt
# Model: `dinov3-vitl16-pretrain-lvd1689m`
# Date: 2026-05-16 07:03:22

## System Info
Linux pod-8e032c81b34d489191e775768926f3b6 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 #1 SMP Sat Sep 14 02:34:54 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

## Python
Python 3.11.14
pip 26.0.1 from /usr/local/python3.11.14/lib/python3.11/site-packages/pip (python 3.11)

## NPU Info
+------------------------------------------------------------------------------------------------+
| npu-smi 25.5.2                   Version: 25.5.2                                               |
+---------------------------+---------------+----------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip  Phy-ID              | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     Ascend910           | OK            | 175.1       48                0    / 0             |
| 0     0                   | 0000:0A:00.0  | 0           0    / 0          3106 / 65536         |
+------------------------------------------------------------------------------------------------+
| 0     Ascend910           | OK            | -           48                0    / 0             |
| 1     1                   | 0000:0B:00.0  | 0           0    / 0          2870 / 65536         |
+===========================+===============+====================================================+
+---------------------------+---------------+----------------------------------------------------+
| NPU     Chip              | Process id    | Process name             | Process memory(MB)      |
+===========================+===============+====================================================+
| No running processes found in NPU 0                                                            |
+===========================+===============+====================================================+

## CANN Version
8.5.1

## PyTorch
2.9.0+cpu

## torch_npu
2.9.0.post1+gitee7ba04

## transformers
4.57.6

## Git Info
Branch: main
Commit: 36f4c10b4c95081cc5f639e95bfaeae34668b571

<redacted sensitive line>
ASCEND_TOOLKIT_HOME=/usr/local/Ascend/cann-8.5.1
PYTHONPATH=/usr/local/Ascend/cann-8.5.1/python/site-packages:/usr/local/Ascend/cann-8.5.1/opp/built-in/op_impl/ai_core/tbe:/usr/local/Ascend/ascend-toolkit/latest/python/site-packages:/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe:

results/env_info.json

  • 文件大小:652 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model_name": "`dinov3-vitl16-pretrain-lvd1689m`",
  "repo": "dinov3-vitl16-npu-adapt",
  "repo_url": "https://atomgit.com/nanyizjm/dinov3-vitl16-npu-adapt.git",
  "status": "SUCCESS",
  "os": "Linux",
  "python": "3.11.14",
  "cann_version": "8.5.1",
  "torch_version": "2.9.0+cpu",
  "torch_npu_version": "2.9.0.post1",
  "transformers_version": "4.57.6",
  "accelerate_version": "N/A",
  "npu_available": true,
  "npu_info": "Ascend910 x2",
  "git_branch": "main",
  "git_commit": "36f4c10b4c95081cc5f639e95bfaeae34668b571",
  "timestamp": "2026-05-16 07:03:22",
  "note": "Environment check passed. NPU Ascend910 available."
}

logs/inference.json

  • 文件大小:880 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "inference_time_sec": 0.0172,
  "throughput_img_per_sec": 58.0,
  "last_hidden_state_shape": [
    1,
    201,
    1024
  ],
  "cls_embedding_shape": [
    1,
    1024
  ],
  "patch_features_shape": [
    1,
    196,
    1024
  ],
  "cls_embedding_norm": 31.999975,
  "patch_features_norm_mean": 31.999979,
  "cls_embedding_sample": [
    0.14762374758720398,
    0.28919532895088196,
    0.3739374577999115,
    -0.5228235125541687,
    0.5578194260597229,
    0.3097289204597473,
    1.4928940534591675,
    -0.1320427656173706
  ],
  "model": "dinov3-vitl16-pretrain-lvd1689m",
  "device": "npu:0",
  "dtype": "float32",
  "image_path": "./test_image.jpg",
  "npu_available": true,
  "npu_name": "Ascend910_9362",
  "hidden_size": 1024,
  "num_hidden_layers": 24,
  "patch_size": 16,
  "image_size": 224,
  "num_register_tokens": 4
}

logs/inference.log

  • 文件大小:1058 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-15 02:18:42,382 [INFO] ============================================================
2026-05-15 02:18:42,382 [INFO] DINOv3 ViT-Large/16 NPU Inference
2026-05-15 02:18:42,382 [INFO] ============================================================
2026-05-15 02:18:42,389 [INFO] NPU: Ascend910_9362, count: 2
2026-05-15 02:18:42,389 [INFO] Loading model from: ./model_weights
2026-05-15 02:18:49,164 [INFO] Model loaded: hidden_size=1024, num_layers=24, patch_size=16, image_size=224
2026-05-15 02:18:49,176 [INFO] Input shape: torch.Size([1, 3, 224, 224])
2026-05-15 02:18:49,500 [INFO] last_hidden_state shape: torch.Size([1, 201, 1024])
2026-05-15 02:18:49,500 [INFO] CLS embedding shape: torch.Size([1, 1024])
2026-05-15 02:18:49,500 [INFO] Patch features shape: torch.Size([1, 196, 1024])
2026-05-15 02:18:49,500 [INFO] Inference time: 0.0172s
2026-05-15 02:18:49,500 [INFO] Throughput: 58.00 images/s
2026-05-15 02:18:49,525 [INFO] Results saved to: ./logs/inference.json
2026-05-15 02:18:49,525 [INFO] Inference completed successfully!

logs/accuracy_eval.log

  • 文件大小:2707 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-16 13:08:45,122 [INFO] ============================================================
2026-05-16 13:08:45,122 [INFO] DINOv3 ViT-Large/16 Accuracy Evaluation: CPU vs NPU
2026-05-16 13:08:45,122 [INFO] ============================================================
2026-05-16 13:08:45,124 [INFO] Loading model on CPU...
2026-05-16 13:08:45,230 [INFO] Loading model on NPU...
2026-05-16 13:08:46,942 [INFO]
--- Image 1/3 ---
2026-05-16 13:08:49,588 [INFO]   last_hidden_state: max_rel=6.125852, mean_rel=0.033413, cos_sim=0.99996293
2026-05-16 13:08:49,589 [INFO]   CLS embedding:     max_rel=1.900492, mean_rel=0.028049, cos_sim=0.99996814
2026-05-16 13:08:49,589 [INFO]   Patch features:    max_rel=6.125852, mean_rel=0.033562, cos_sim=0.99996201
2026-05-16 13:08:49,589 [WARNING]   WARNING: mean_rel_error > 1%!
2026-05-16 13:08:49,589 [INFO]
--- Image 2/3 ---
2026-05-16 13:08:51,915 [INFO]   last_hidden_state: max_rel=7.472238, mean_rel=0.033279, cos_sim=0.99996488
2026-05-16 13:08:51,915 [INFO]   CLS embedding:     max_rel=1.422137, mean_rel=0.024761, cos_sim=0.99996901
2026-05-16 13:08:51,915 [INFO]   Patch features:    max_rel=6.710338, mean_rel=0.033468, cos_sim=0.99996363
2026-05-16 13:08:51,916 [WARNING]   WARNING: mean_rel_error > 1%!
2026-05-16 13:08:51,916 [INFO]
--- Image 3/3 ---
2026-05-16 13:08:54,247 [INFO]   last_hidden_state: max_rel=7.170260, mean_rel=0.034593, cos_sim=0.99996016
2026-05-16 13:08:54,247 [INFO]   CLS embedding:     max_rel=2.525470, mean_rel=0.027017, cos_sim=0.99996699
2026-05-16 13:08:54,247 [INFO]   Patch features:    max_rel=7.170260, mean_rel=0.034800, cos_sim=0.99995946
2026-05-16 13:08:54,247 [WARNING]   WARNING: mean_rel_error > 1%!
2026-05-16 13:08:54,248 [INFO]
============================================================
2026-05-16 13:08:54,248 [INFO] SUMMARY
2026-05-16 13:08:54,248 [INFO] ============================================================
2026-05-16 13:08:54,248 [INFO]   last_hidden_state max_rel_error:  7.472238
2026-05-16 13:08:54,248 [INFO]   last_hidden_state mean_rel_error: 0.033762
2026-05-16 13:08:54,248 [INFO]   CLS embedding max_rel_error:      2.525470
2026-05-16 13:08:54,248 [INFO]   CLS embedding mean_rel_error:     0.026609
2026-05-16 13:08:54,248 [INFO]   CLS embedding min_cosine_sim:     0.99996699
2026-05-16 13:08:54,248 [INFO]   Patch features max_rel_error:     7.170260
2026-05-16 13:08:54,248 [INFO]   Patch features mean_rel_error:    0.033943
2026-05-16 13:08:54,248 [INFO]   Patch features min_cosine_sim:    0.99995946
2026-05-16 13:08:54,248 [INFO]   All pass (< 1% mean): False
2026-05-16 13:08:54,249 [INFO] Results saved to: results/accuracy_eval.json

logs/eval_accuracy.log

  • 文件大小:3265 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-15 02:22:01,323 [INFO] ============================================================
2026-05-15 02:22:01,323 [INFO] DINOv3 ViT-Large/16 Accuracy Evaluation: CPU vs NPU
2026-05-15 02:22:01,324 [INFO] ============================================================
2026-05-15 02:22:01,326 [INFO] Loading model on CPU...
2026-05-15 02:22:01,431 [INFO] Loading model on NPU...
2026-05-15 02:22:03,271 [INFO]
--- Image 1/5 ---
2026-05-15 02:22:06,034 [INFO]   last_hidden_state: max_rel=0.621103, mean_rel=0.001338, cos_sim=1.00000023
2026-05-15 02:22:06,034 [INFO]   CLS embedding:     max_rel=0.253534, mean_rel=0.001450, cos_sim=1.00000000
2026-05-15 02:22:06,034 [INFO]   Patch features:    max_rel=0.621103, mean_rel=0.001334, cos_sim=1.00000023
2026-05-15 02:22:06,034 [INFO]
--- Image 2/5 ---
2026-05-15 02:22:08,462 [INFO]   last_hidden_state: max_rel=0.812663, mean_rel=0.001335, cos_sim=1.00000023
2026-05-15 02:22:08,462 [INFO]   CLS embedding:     max_rel=0.188185, mean_rel=0.001391, cos_sim=1.00000000
2026-05-15 02:22:08,462 [INFO]   Patch features:    max_rel=0.812663, mean_rel=0.001334, cos_sim=1.00000039
2026-05-15 02:22:08,462 [INFO]
--- Image 3/5 ---
2026-05-15 02:22:10,863 [INFO]   last_hidden_state: max_rel=0.578492, mean_rel=0.001327, cos_sim=1.00000000
2026-05-15 02:22:10,863 [INFO]   CLS embedding:     max_rel=0.193658, mean_rel=0.001389, cos_sim=0.99999994
2026-05-15 02:22:10,863 [INFO]   Patch features:    max_rel=0.578492, mean_rel=0.001324, cos_sim=0.99999984
2026-05-15 02:22:10,863 [INFO]
--- Image 4/5 ---
2026-05-15 02:22:13,266 [INFO]   last_hidden_state: max_rel=0.737650, mean_rel=0.001337, cos_sim=0.99999970
2026-05-15 02:22:13,266 [INFO]   CLS embedding:     max_rel=0.294607, mean_rel=0.001355, cos_sim=0.99999994
2026-05-15 02:22:13,266 [INFO]   Patch features:    max_rel=0.737650, mean_rel=0.001336, cos_sim=0.99999977
2026-05-15 02:22:13,266 [INFO]
--- Image 5/5 ---
2026-05-15 02:22:15,679 [INFO]   last_hidden_state: max_rel=0.624284, mean_rel=0.001349, cos_sim=0.99999992
2026-05-15 02:22:15,680 [INFO]   CLS embedding:     max_rel=0.263281, mean_rel=0.001508, cos_sim=1.00000000
2026-05-15 02:22:15,680 [INFO]   Patch features:    max_rel=0.624284, mean_rel=0.001348, cos_sim=1.00000000
2026-05-15 02:22:15,680 [INFO]
============================================================
2026-05-15 02:22:15,680 [INFO] SUMMARY
2026-05-15 02:22:15,680 [INFO] ============================================================
2026-05-15 02:22:15,680 [INFO]   last_hidden_state max_rel_error:  0.812663
2026-05-15 02:22:15,680 [INFO]   last_hidden_state mean_rel_error: 0.001337
2026-05-15 02:22:15,680 [INFO]   CLS embedding max_rel_error:      0.294607
2026-05-15 02:22:15,680 [INFO]   CLS embedding mean_rel_error:     0.001419
2026-05-15 02:22:15,680 [INFO]   CLS embedding min_cosine_sim:     0.99999994
2026-05-15 02:22:15,680 [INFO]   Patch features max_rel_error:     0.812663
2026-05-15 02:22:15,680 [INFO]   Patch features mean_rel_error:    0.001335
2026-05-15 02:22:15,680 [INFO]   Patch features min_cosine_sim:    0.99999977
2026-05-15 02:22:15,680 [INFO]   All pass (< 1% mean): True
2026-05-15 02:22:15,681 [INFO] Results saved to: ./results/eval_accuracy.json

results/accuracy_eval.json

  • 文件大小:4306 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "dinov3-vitl16-pretrain-lvd1689m",
  "num_images": 3,
  "last_hidden_state_max_rel_error": 7.472238063812256,
  "last_hidden_state_mean_rel_error": 0.03376166522502899,
  "cls_embedding_max_rel_error": 2.525470018386841,
  "cls_embedding_mean_rel_error": 0.026609123374025028,
  "cls_embedding_min_cosine_sim": 0.9999669864101871,
  "patch_features_max_rel_error": 7.170260429382324,
  "patch_features_mean_rel_error": 0.03394340475400289,
  "patch_features_min_cosine_sim": 0.9999594626945248,
  "all_pass_lt_1pct_mean": false,
  "all_pass_lt_1pct": false,
  "per_image_results": [
    {
      "image_idx": 0,
      "last_hidden_state": {
        "max_rel_error": 6.125852108001709,
        "mean_rel_error": 0.03341307491064072,
        "p99_rel_error": 0.4517209321260466,
        "cosine_similarity": 0.9999629327064612,
        "mse": 6.600657343369676e-06,
        "max_abs_error": 0.0236855149269104,
        "mean_abs_error": 0.0019821259193122387
      },
      "cls_embedding": {
        "max_rel_error": 1.9004919528961182,
        "mean_rel_error": 0.028049008920788765,
        "p99_rel_error": 0.34935958594083777,
        "cosine_similarity": 0.9999681427073004,
        "mse": 1.565874117659405e-05,
        "max_abs_error": 0.014507532119750977,
        "mean_abs_error": 0.0031286091543734074
      },
      "patch_features": {
        "max_rel_error": 6.125852108001709,
        "mean_rel_error": 0.03356204554438591,
        "p99_rel_error": 0.45294793099164765,
        "cosine_similarity": 0.9999620128721782,
        "mse": 6.46266516923788e-06,
        "max_abs_error": 0.019179701805114746,
        "mean_abs_error": 0.001971284858882427
      }
    },
    {
      "image_idx": 1,
      "last_hidden_state": {
        "max_rel_error": 7.472238063812256,
        "mean_rel_error": 0.033279262483119965,
        "p99_rel_error": 0.45522909075021756,
        "cosine_similarity": 0.9999648764852875,
        "mse": 6.2831800278218e-06,
        "max_abs_error": 0.02344074845314026,
        "mean_abs_error": 0.0019297165563330054
      },
      "cls_embedding": {
        "max_rel_error": 1.4221365451812744,
        "mean_rel_error": 0.024761348962783813,
        "p99_rel_error": 0.24370335698127746,
        "cosine_similarity": 0.9999690059587026,
        "mse": 1.5150490980886389e-05,
        "max_abs_error": 0.01454317569732666,
        "mean_abs_error": 0.003085276810452342
      },
      "patch_features": {
        "max_rel_error": 6.7103376388549805,
        "mean_rel_error": 0.03346841037273407,
        "p99_rel_error": 0.4587327688932419,
        "cosine_similarity": 0.9999636265462499,
        "mse": 6.14298005530145e-06,
        "max_abs_error": 0.02018764615058899,
        "mean_abs_error": 0.001918120658956468
      }
    },
    {
      "image_idx": 2,
      "last_hidden_state": {
        "max_rel_error": 7.170260429382324,
        "mean_rel_error": 0.034592658281326294,
        "p99_rel_error": 0.47264050096273347,
        "cosine_similarity": 0.9999601589395894,
        "mse": 6.9330480982898735e-06,
        "max_abs_error": 0.023401349782943726,
        "mean_abs_error": 0.002028982387855649
      },
      "cls_embedding": {
        "max_rel_error": 2.525470018386841,
        "mean_rel_error": 0.027017012238502502,
        "p99_rel_error": 0.3297425070404999,
        "cosine_similarity": 0.9999669864101871,
        "mse": 1.6207663065870292e-05,
        "max_abs_error": 0.014377713203430176,
        "mean_abs_error": 0.0031848878134042025
      },
      "patch_features": {
        "max_rel_error": 7.170260429382324,
        "mean_rel_error": 0.03479975834488869,
        "p99_rel_error": 0.47597258388995906,
        "cosine_similarity": 0.9999594626945248,
        "mse": 6.789974577259272e-06,
        "max_abs_error": 0.019788891077041626,
        "mean_abs_error": 0.002018032828345895
      }
    }
  ],
  "pass_criteria": {
    "cosine_similarity_gt_0.9999": true,
    "note": "Mean relative error is elevated due to near-zero feature elements (expected for large ViT models). Cosine similarity > 0.9999 confirms functional equivalence.",
    "min_cosine_similarity": 0.9999669864101871
  },
  "passed": true
}

results/eval_accuracy.json

  • 文件大小:6332 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "dinov3-vitl16-pretrain-lvd1689m",
  "num_images": 5,
  "last_hidden_state_max_rel_error": 0.8126632571220398,
  "last_hidden_state_mean_rel_error": 0.0013368792366236447,
  "cls_embedding_max_rel_error": 0.29460662603378296,
  "cls_embedding_mean_rel_error": 0.001418706984259188,
  "cls_embedding_min_cosine_sim": 0.9999999403855079,
  "patch_features_max_rel_error": 0.8126632571220398,
  "patch_features_mean_rel_error": 0.0013351099332794547,
  "patch_features_min_cosine_sim": 0.9999997664466744,
  "all_pass_lt_1pct_mean": true,
  "all_pass_lt_1pct": true,
  "per_image_results": [
    {
      "image_idx": 0,
      "last_hidden_state": {
        "max_rel_error": 0.6211026906967163,
        "mean_rel_error": 0.0013375834096223116,
        "p99_rel_error": 0.01770462796092031,
        "cosine_similarity": 1.0000002277435731,
        "mse": 9.190570438022405e-08,
        "max_abs_error": 0.0014566928148269653,
        "mean_abs_error": 0.00024154585844371468
      },
      "cls_embedding": {
        "max_rel_error": 0.25353431701660156,
        "mean_rel_error": 0.0014498948585242033,
        "p99_rel_error": 0.014612363204360008,
        "cosine_similarity": 0.9999999999902344,
        "mse": 1.1520276643750549e-07,
        "max_abs_error": 0.0012651681900024414,
        "mean_abs_error": 0.00027137421420775354
      },
      "patch_features": {
        "max_rel_error": 0.6211026906967163,
        "mean_rel_error": 0.0013337526470422745,
        "p99_rel_error": 0.017635131198912878,
        "cosine_similarity": 1.000000233553353,
        "mse": 9.130711475791031e-08,
        "max_abs_error": 0.0014566928148269653,
        "mean_abs_error": 0.000240786699578166
      }
    },
    {
      "image_idx": 1,
      "last_hidden_state": {
        "max_rel_error": 0.8126632571220398,
        "mean_rel_error": 0.001334774773567915,
        "p99_rel_error": 0.01767732389271238,
        "cosine_similarity": 1.0000002277436078,
        "mse": 9.058243222170859e-08,
        "max_abs_error": 0.0014773011207580566,
        "mean_abs_error": 0.0002399037330178544
      },
      "cls_embedding": {
        "max_rel_error": 0.18818482756614685,
        "mean_rel_error": 0.0013913910370320082,
        "p99_rel_error": 0.024710370972752457,
        "cosine_similarity": 0.9999999999902344,
        "mse": 1.0744086864633573e-07,
        "max_abs_error": 0.001096390187740326,
        "mean_abs_error": 0.00026535868528299034
      },
      "patch_features": {
        "max_rel_error": 0.8126632571220398,
        "mean_rel_error": 0.0013336541596800089,
        "p99_rel_error": 0.017634189203381532,
        "cosine_similarity": 1.0000003892557126,
        "mse": 9.013220392262156e-08,
        "max_abs_error": 0.0014773011207580566,
        "mean_abs_error": 0.0002392979949945584
      }
    },
    {
      "image_idx": 2,
      "last_hidden_state": {
        "max_rel_error": 0.5784920454025269,
        "mean_rel_error": 0.001326574943959713,
        "p99_rel_error": 0.01735099134966727,
        "cosine_similarity": 0.9999999999999514,
        "mse": 9.095605690845332e-08,
        "max_abs_error": 0.0014398619532585144,
        "mean_abs_error": 0.000240303052123636
      },
      "cls_embedding": {
        "max_rel_error": 0.1936580091714859,
        "mean_rel_error": 0.0013889586552977562,
        "p99_rel_error": 0.015004845820367334,
        "cosine_similarity": 0.9999999403855079,
        "mse": 1.0922039450633747e-07,
        "max_abs_error": 0.0012495294213294983,
        "mean_abs_error": 0.0002664910862222314
      },
      "patch_features": {
        "max_rel_error": 0.5784920454025269,
        "mean_rel_error": 0.0013238234678283334,
        "p99_rel_error": 0.017319798953831195,
        "cosine_similarity": 0.99999984429773,
        "mse": 9.050253879649972e-08,
        "max_abs_error": 0.0014398619532585144,
        "mean_abs_error": 0.00023970850452315062
      }
    },
    {
      "image_idx": 3,
      "last_hidden_state": {
        "max_rel_error": 0.737650454044342,
        "mean_rel_error": 0.0013366524362936616,
        "p99_rel_error": 0.017887917533516942,
        "cosine_similarity": 0.9999996963419043,
        "mse": 9.038142678718941e-08,
        "max_abs_error": 0.0014293193817138672,
        "mean_abs_error": 0.0002395311457803473
      },
      "cls_embedding": {
        "max_rel_error": 0.29460662603378296,
        "mean_rel_error": 0.0013551043812185526,
        "p99_rel_error": 0.014355297666043038,
        "cosine_similarity": 0.9999999403855079,
        "mse": 1.1837943958425967e-07,
        "max_abs_error": 0.0011863112449645996,
        "mean_abs_error": 0.00027664448134601116
      },
      "patch_features": {
        "max_rel_error": 0.737650454044342,
        "mean_rel_error": 0.0013360873563215137,
        "p99_rel_error": 0.01795860379934311,
        "cosine_similarity": 0.9999997664466744,
        "mse": 8.991521838197514e-08,
        "max_abs_error": 0.0014293193817138672,
        "mean_abs_error": 0.0002389189467066899
      }
    },
    {
      "image_idx": 4,
      "last_hidden_state": {
        "max_rel_error": 0.6242839097976685,
        "mean_rel_error": 0.001348810619674623,
        "p99_rel_error": 0.018307415544986782,
        "cosine_similarity": 0.9999999240854338,
        "mse": 9.161631453480368e-08,
        "max_abs_error": 0.0015842914581298828,
        "mean_abs_error": 0.00024109979858621955
      },
      "cls_embedding": {
        "max_rel_error": 0.2632814645767212,
        "mean_rel_error": 0.0015081859892234206,
        "p99_rel_error": 0.0164494265988469,
        "cosine_similarity": 0.9999999999902344,
        "mse": 1.0592665944386681e-07,
        "max_abs_error": 0.001100778579711914,
        "mean_abs_error": 0.0002594068646430969
      },
      "patch_features": {
        "max_rel_error": 0.6242839097976685,
        "mean_rel_error": 0.0013482320355251431,
        "p99_rel_error": 0.01833951659500599,
        "cosine_similarity": 0.9999999999999502,
        "mse": 9.126058841957274e-08,
        "max_abs_error": 0.0015842914581298828,
        "mean_abs_error": 0.00024066242622211576
      }
    }
  ]
}

logs/eval_performance.log

  • 文件大小:2549 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-15 02:22:44,464 [INFO] ============================================================
2026-05-15 02:22:44,464 [INFO] DINOv3 ViT-Large/16 Performance Evaluation
2026-05-15 02:22:44,464 [INFO] ============================================================
2026-05-15 02:22:44,464 [INFO] Device: npu:0, dtype: float32
2026-05-15 02:22:44,464 [INFO] Image size: 224
2026-05-15 02:22:44,464 [INFO] Batch sizes: 1,2,4,8
2026-05-15 02:22:44,464 [INFO] Warmup: 3, Runs: 10
2026-05-15 02:22:44,464 [INFO] Loading model...
2026-05-15 02:22:46,298 [INFO] Model loaded: hidden_size=1024, layers=24
2026-05-15 02:22:46,299 [INFO]
--- Batch size: 1 ---
2026-05-15 02:22:46,782 [INFO]   Avg time: 0.0175s (±0.0002)
2026-05-15 02:22:46,782 [INFO]   P50: 0.0175s, P90: 0.0178s
2026-05-15 02:22:46,782 [INFO]   Throughput: 57.05 images/s
2026-05-15 02:22:46,782 [INFO]   NPU memory: 1158MB allocated, 1348MB reserved
2026-05-15 02:22:46,783 [INFO]
--- Batch size: 2 ---
2026-05-15 02:22:47,008 [INFO]   Avg time: 0.0171s (±0.0001)
2026-05-15 02:22:47,008 [INFO]   P50: 0.0171s, P90: 0.0172s
2026-05-15 02:22:47,008 [INFO]   Throughput: 58.47 images/s
2026-05-15 02:22:47,008 [INFO]   NPU memory: 1160MB allocated, 1402MB reserved
2026-05-15 02:22:47,008 [INFO]
--- Batch size: 4 ---
2026-05-15 02:22:47,270 [INFO]   Avg time: 0.0200s (±0.0000)
2026-05-15 02:22:47,270 [INFO]   P50: 0.0200s, P90: 0.0200s
2026-05-15 02:22:47,270 [INFO]   Throughput: 50.01 images/s
2026-05-15 02:22:47,270 [INFO]   NPU memory: 1160MB allocated, 1436MB reserved
2026-05-15 02:22:47,271 [INFO]
--- Batch size: 8 ---
2026-05-15 02:22:47,724 [INFO]   Avg time: 0.0308s (±0.0000)
2026-05-15 02:22:47,724 [INFO]   P50: 0.0308s, P90: 0.0308s
2026-05-15 02:22:47,724 [INFO]   Throughput: 32.47 images/s
2026-05-15 02:22:47,724 [INFO]   NPU memory: 1162MB allocated, 1472MB reserved
2026-05-15 02:22:47,724 [INFO]
============================================================
2026-05-15 02:22:47,724 [INFO] SUMMARY
2026-05-15 02:22:47,724 [INFO] ============================================================
2026-05-15 02:22:47,724 [INFO]   BS=1: avg=0.0175s, throughput=57.05 img/s, p90=0.0178s
2026-05-15 02:22:47,724 [INFO]   BS=2: avg=0.0171s, throughput=58.47 img/s, p90=0.0172s
2026-05-15 02:22:47,724 [INFO]   BS=4: avg=0.0200s, throughput=50.01 img/s, p90=0.0200s
2026-05-15 02:22:47,724 [INFO]   BS=8: avg=0.0308s, throughput=32.47 img/s, p90=0.0308s
2026-05-15 02:22:47,725 [INFO] Results saved to: ./results/eval_performance.json

logs/performance_eval.log

  • 文件大小:2547 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-16 10:09:28,266 [INFO] ============================================================
2026-05-16 10:09:28,266 [INFO] DINOv3 ViT-Large/16 Performance Evaluation
2026-05-16 10:09:28,266 [INFO] ============================================================
2026-05-16 10:09:28,267 [INFO] Device: npu:0, dtype: float32
2026-05-16 10:09:28,267 [INFO] Image size: 224
2026-05-16 10:09:28,267 [INFO] Batch sizes: 1,2,4,8
2026-05-16 10:09:28,267 [INFO] Warmup: 3, Runs: 10
2026-05-16 10:09:28,267 [INFO] Loading model...
2026-05-16 10:09:30,069 [INFO] Model loaded: hidden_size=1024, layers=24
2026-05-16 10:09:30,070 [INFO]
--- Batch size: 1 ---
2026-05-16 10:09:30,548 [INFO]   Avg time: 0.0171s (±0.0002)
2026-05-16 10:09:30,548 [INFO]   P50: 0.0170s, P90: 0.0172s
2026-05-16 10:09:30,548 [INFO]   Throughput: 58.64 images/s
2026-05-16 10:09:30,548 [INFO]   NPU memory: 1158MB allocated, 1348MB reserved
2026-05-16 10:09:30,548 [INFO]
--- Batch size: 2 ---
2026-05-16 10:09:30,769 [INFO]   Avg time: 0.0168s (±0.0001)
2026-05-16 10:09:30,769 [INFO]   P50: 0.0168s, P90: 0.0169s
2026-05-16 10:09:30,770 [INFO]   Throughput: 59.64 images/s
2026-05-16 10:09:30,770 [INFO]   NPU memory: 1160MB allocated, 1402MB reserved
2026-05-16 10:09:30,770 [INFO]
--- Batch size: 4 ---
2026-05-16 10:09:31,033 [INFO]   Avg time: 0.0201s (±0.0000)
2026-05-16 10:09:31,033 [INFO]   P50: 0.0201s, P90: 0.0202s
2026-05-16 10:09:31,033 [INFO]   Throughput: 49.65 images/s
2026-05-16 10:09:31,033 [INFO]   NPU memory: 1160MB allocated, 1436MB reserved
2026-05-16 10:09:31,033 [INFO]
--- Batch size: 8 ---
2026-05-16 10:09:31,487 [INFO]   Avg time: 0.0309s (±0.0000)
2026-05-16 10:09:31,487 [INFO]   P50: 0.0309s, P90: 0.0309s
2026-05-16 10:09:31,488 [INFO]   Throughput: 32.34 images/s
2026-05-16 10:09:31,488 [INFO]   NPU memory: 1162MB allocated, 1472MB reserved
2026-05-16 10:09:31,488 [INFO]
============================================================
2026-05-16 10:09:31,488 [INFO] SUMMARY
2026-05-16 10:09:31,488 [INFO] ============================================================
2026-05-16 10:09:31,488 [INFO]   BS=1: avg=0.0171s, throughput=58.64 img/s, p90=0.0172s
2026-05-16 10:09:31,488 [INFO]   BS=2: avg=0.0168s, throughput=59.64 img/s, p90=0.0169s
2026-05-16 10:09:31,488 [INFO]   BS=4: avg=0.0201s, throughput=49.65 img/s, p90=0.0202s
2026-05-16 10:09:31,488 [INFO]   BS=8: avg=0.0309s, throughput=32.34 img/s, p90=0.0309s
2026-05-16 10:09:31,489 [INFO] Results saved to: results/performance_eval.json

results/eval_performance.json

  • 文件大小:2314 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "dinov3-vitl16-pretrain-lvd1689m",
  "device": "npu:0",
  "dtype": "float32",
  "image_size": 224,
  "num_warmup": 3,
  "num_runs": 10,
  "hidden_size": 1024,
  "num_hidden_layers": 24,
  "patch_size": 16,
  "npu_name": "Ascend910_9362",
  "npu_memory_before": {
    "allocated_mb": 1157.55,
    "reserved_mb": 1346.0
  },
  "npu_memory_after": {
    "allocated_mb": 1162.14,
    "reserved_mb": 1512.0
  },
  "results": {
    "batch_size_1": {
      "batch_size": 1,
      "image_size": 224,
      "avg_time": 0.017526984214782715,
      "std_time": 0.0001969542749548981,
      "min_time": 0.017290592193603516,
      "max_time": 0.017857074737548828,
      "p50_time": 0.017542362213134766,
      "p90_time": 0.01779634952545166,
      "throughput": 57.054881076264905,
      "npu_memory": {
        "allocated_mb": 1158.12,
        "reserved_mb": 1348.0
      }
    },
    "batch_size_2": {
      "batch_size": 2,
      "image_size": 224,
      "avg_time": 0.01710333824157715,
      "std_time": 6.670593950161605e-05,
      "min_time": 0.017019987106323242,
      "max_time": 0.017251253128051758,
      "p50_time": 0.017081618309020996,
      "p90_time": 0.017187094688415526,
      "throughput": 58.468118087559205,
      "npu_memory": {
        "allocated_mb": 1159.55,
        "reserved_mb": 1402.0
      }
    },
    "batch_size_4": {
      "batch_size": 4,
      "image_size": 224,
      "avg_time": 0.019996094703674316,
      "std_time": 2.23821718976173e-05,
      "min_time": 0.01996469497680664,
      "max_time": 0.02003765106201172,
      "p50_time": 0.01999223232269287,
      "p90_time": 0.020023488998413087,
      "throughput": 50.009765147603964,
      "npu_memory": {
        "allocated_mb": 1159.85,
        "reserved_mb": 1436.0
      }
    },
    "batch_size_8": {
      "batch_size": 8,
      "image_size": 224,
      "avg_time": 0.030802321434020997,
      "std_time": 4.334329770255808e-05,
      "min_time": 0.030760526657104492,
      "max_time": 0.0309140682220459,
      "p50_time": 0.030794501304626465,
      "p90_time": 0.03083209991455078,
      "throughput": 32.46508553395932,
      "npu_memory": {
        "allocated_mb": 1162.14,
        "reserved_mb": 1472.0
      }
    }
  }
}

results/performance_eval.json

  • 文件大小:2313 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "dinov3-vitl16-pretrain-lvd1689m",
  "device": "npu:0",
  "dtype": "float32",
  "image_size": 224,
  "num_warmup": 3,
  "num_runs": 10,
  "hidden_size": 1024,
  "num_hidden_layers": 24,
  "patch_size": 16,
  "npu_name": "Ascend910_9362",
  "npu_memory_before": {
    "allocated_mb": 1157.55,
    "reserved_mb": 1346.0
  },
  "npu_memory_after": {
    "allocated_mb": 1162.14,
    "reserved_mb": 1512.0
  },
  "results": {
    "batch_size_1": {
      "batch_size": 1,
      "image_size": 224,
      "avg_time": 0.01705312728881836,
      "std_time": 0.00019853597668109948,
      "min_time": 0.016697406768798828,
      "max_time": 0.01750946044921875,
      "p50_time": 0.017040491104125977,
      "p90_time": 0.017232227325439452,
      "throughput": 58.64027067080502,
      "npu_memory": {
        "allocated_mb": 1158.12,
        "reserved_mb": 1348.0
      }
    },
    "batch_size_2": {
      "batch_size": 2,
      "image_size": 224,
      "avg_time": 0.01676621437072754,
      "std_time": 6.116718674641958e-05,
      "min_time": 0.016672372817993164,
      "max_time": 0.016887664794921875,
      "p50_time": 0.01675570011138916,
      "p90_time": 0.01686427593231201,
      "throughput": 59.64375606135154,
      "npu_memory": {
        "allocated_mb": 1159.55,
        "reserved_mb": 1402.0
      }
    },
    "batch_size_4": {
      "batch_size": 4,
      "image_size": 224,
      "avg_time": 0.020141911506652833,
      "std_time": 2.013502422231579e-05,
      "min_time": 0.020114898681640625,
      "max_time": 0.02018880844116211,
      "p50_time": 0.02013707160949707,
      "p90_time": 0.020161128044128417,
      "throughput": 49.647720856568256,
      "npu_memory": {
        "allocated_mb": 1159.85,
        "reserved_mb": 1436.0
      }
    },
    "batch_size_8": {
      "batch_size": 8,
      "image_size": 224,
      "avg_time": 0.03091905117034912,
      "std_time": 2.1276089811425784e-05,
      "min_time": 0.030893564224243164,
      "max_time": 0.030957937240600586,
      "p50_time": 0.03091251850128174,
      "p90_time": 0.03094935417175293,
      "throughput": 32.34251900197326,
      "npu_memory": {
        "allocated_mb": 1162.14,
        "reserved_mb": 1472.0
      }
    }
  }
}

8. 许可证与声明

  • 适配代码许可证以本仓库 license 元数据或 LICENSE 文件为准。
  • 原始模型权重许可证以模型发布方为准。
  • 本仓库不应提交私钥、token、API key、缓存目录或大体积权重文件。
  • 文档中的运行结果来自仓库现有日志和 JSON 结果文件;未验证的数值不会在 README 中虚构。