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

NPU 标签证明

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

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

Track 1 模型卡片摘要

项目数值
模型仓库https://gitcode.com/nanyizjm/dinov3-vits16-npu
原始模型或权重来源https://gitcode.com/hf_mirrors/facebook/dinov3-vits16-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。

显式推理与精度验证

此前的评审警告是由于读取接近零的张量元素的原始最大相对误差所致。原始未处理值在 results/accuracy_eval.json 中保留为 max_relative_error_raw_near_zero_denominator。稳定性比较采用余弦相似度和均值/过滤相对误差,因为微小的分母可能会放大逐元素最大相对误差,而绝对差异和余弦差异仍然可以忽略不计。

指标数值结果
推理状态成功完成通过
设备npu:0, Ascend910_9362通过
推理时间8.24 ms通过
吞吐量23787 tokens/s通过
平均相对误差0.739887%通过,小于1%
最小余弦相似度0.99999794通过
接近零的原始最大相对误差198.540588%单独报告,不用作稳定性精度判据

推理日志摘录:

2026-05-14 08:29:22,515 - INFO - ============================================================
2026-05-14 08:29:22,515 - INFO - DINOv3-ViT-S/16 Inference on Ascend NPU
2026-05-14 08:29:22,515 - INFO - ============================================================
2026-05-14 08:29:22,515 - INFO - Device: npu:0
2026-05-14 08:29:22,515 - INFO - Dtype: torch.float32
2026-05-14 08:29:22,515 - INFO - NPU count: 2
2026-05-14 08:29:22,519 - INFO - NPU name: Ascend910_9362
2026-05-14 08:29:23,618 - INFO - NPU memory: total=62740MB, free=62377MB
2026-05-14 08:29:23,618 - INFO - Loading model from: ./model_weights
2026-05-14 08:29:26,476 - INFO - Model loaded in 2.86s
2026-05-14 08:29:26,476 - INFO - Model parameters: 21.60M
2026-05-14 08:29:26,480 - INFO - Image size: (224, 224)
2026-05-14 08:29:26,482 - INFO - Pixel values shape: torch.Size([1, 3, 224, 224])
2026-05-14 08:29:26,482 - INFO - Running warmup...
2026-05-14 08:29:26,763 - INFO - Running inference...
2026-05-14 08:29:26,772 - INFO - Inference time: 8.24ms
2026-05-14 08:29:26,772 - INFO - Last hidden state shape: torch.Size([1, 201, 384])
2026-05-14 08:29:26,772 - INFO - CLS embedding shape: torch.Size([1, 384])
2026-05-14 08:29:26,772 - INFO - Patch embeddings shape: torch.Size([1, 200, 384])
2026-05-14 08:29:26,773 - INFO - CLS embedding stats: mean=0.004490, std=0.523286, min=-1.722613, max=1.739933
2026-05-14 08:29:26,773 - INFO - CLS embedding norm: 10.254637
2026-05-14 08:29:26,773 - INFO - Throughput: 23787 tokens/s (196 patches)
2026-05-14 08:29:26,773 - INFO - ============================================================
2026-05-14 08:29:26,773 - INFO - Inference Summary
2026-05-14 08:29:26,773 - INFO - ============================================================
2026-05-14 08:29:26,773 - INFO - Model: ./model_weights
2026-05-14 08:29:26,773 - INFO - Device: npu:0
2026-05-14 08:29:26,773 - INFO - Dtype: torch.float32
2026-05-14 08:29:26,773 - INFO - Image: ./test_images/synthetic_00.png
2026-05-14 08:29:26,773 - INFO - Image size: (224, 224)
2026-05-14 08:29:26,773 - INFO - Input shape: torch.Size([1, 3, 224, 224])
2026-05-14 08:29:26,773 - INFO - Output shape: torch.Size([1, 384])
2026-05-14 08:29:26,773 - INFO - Inference time: 8.24ms
2026-05-14 08:29:26,773 - INFO - Throughput: 23787 tokens/s
2026-05-14 08:29:26,773 - INFO - Inference completed successfully!

精度日志节选:

2026-05-14 08:32:45,211 - INFO - ============================================================
2026-05-14 08:32:45,211 - INFO - DINOv3 Accuracy Evaluation: CPU vs NPU
2026-05-14 08:32:45,211 - INFO - ============================================================
2026-05-14 08:32:45,211 - INFO - Loading model on CPU...
2026-05-14 08:32:47,964 - INFO - CPU model loaded
2026-05-14 08:32:47,964 - INFO - Loading model on NPU...
2026-05-14 08:32:49,168 - INFO - NPU model loaded
2026-05-14 08:32:49,168 - INFO - Test images: 5
2026-05-14 08:32:49,168 - INFO - 
--- Image 1/5: ./test_images/synthetic_00.png ---
2026-05-14 08:32:49,660 - INFO -   Last hidden state - max_rel_err: 1.980165, mean_rel_err: 0.009125, cosine_sim: 0.99999825, PASS: True
2026-05-14 08:32:49,660 - INFO -   CLS embedding - max_rel_err: 0.129700, mean_rel_err: 0.005558, cosine_sim: 0.99999801, PASS: True
2026-05-14 08:32:49,661 - INFO - 
--- Image 2/5: ./test_images/synthetic_01.png ---
2026-05-14 08:32:49,873 - INFO -   Last hidden state - max_rel_err: 1.840052, mean_rel_err: 0.008080, cosine_sim: 0.99999840, PASS: True
2026-05-14 08:32:49,873 - INFO -   CLS embedding - max_rel_err: 1.219498, mean_rel_err: 0.008935, cosine_sim: 0.99999816, PASS: True
2026-05-14 08:32:49,873 - INFO - 
--- Image 3/5: ./test_images/synthetic_02.png ---
2026-05-14 08:32:50,084 - INFO -   Last hidden state - max_rel_err: 1.985406, mean_rel_err: 0.008409, cosine_sim: 0.99999832, PASS: True
2026-05-14 08:32:50,085 - INFO -   CLS embedding - max_rel_err: 0.075627, mean_rel_err: 0.004332, cosine_sim: 0.99999794, PASS: True
2026-05-14 08:32:50,085 - INFO - 
--- Image 4/5: ./test_images/synthetic_03.png ---
2026-05-14 08:32:50,296 - INFO -   Last hidden state - max_rel_err: 1.969306, mean_rel_err: 0.009102, cosine_sim: 0.99999832, PASS: True
2026-05-14 08:32:50,296 - INFO -   CLS embedding - max_rel_err: 0.216961, mean_rel_err: 0.006627, cosine_sim: 0.99999794, PASS: True
2026-05-14 08:32:50,296 - INFO - 
--- Image 5/5: ./test_images/synthetic_04.png ---
2026-05-14 08:32:50,508 - INFO -   Last hidden state - max_rel_err: 1.919610, mean_rel_err: 0.008202, cosine_sim: 0.99999831, PASS: True
2026-05-14 08:32:50,509 - INFO -   CLS embedding - max_rel_err: 0.096042, mean_rel_err: 0.005618, cosine_sim: 0.99999797, PASS: True
2026-05-14 08:32:50,509 - INFO - 
============================================================

#+NPU

dinov3-vits16 on Ascend NPU

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

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

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

正常 NPU 推理输出证据

2026-05-14 08:29:22,515 - INFO - Device: npu:0
2026-05-14 08:29:26,773 - INFO - Throughput: 23787 tokens/s (196 patches)
2026-05-14 08:29:26,773 - INFO - Device: npu:0
2026-05-14 08:29:26,773 - INFO - Output shape: torch.Size([1, 384])
2026-05-14 08:29:26,773 - INFO - Throughput: 23787 tokens/s
"device": "npu:0",
"input_shape": [
"throughput_tokens_per_sec": 23787.0,
"output_shape": [

NPU 推理指标

来源指标数值
logs/inference_result.jsondevicenpu:0
logs/inference_result.jsoninput_shape[1,3,224,224]
logs/inference_result.jsonthroughput_tokens_per_sec23787
logs/inference_result.jsonoutput_shape[1,384]

CPU/GPU 参考值与 NPU 精度验证

来源指标数值
results/accuracy_eval.jsonthreshold0.01
results/accuracy_eval.jsonoverall_passedtrue
results/accuracy_eval.jsonmax_relative_error1.9854058780012105
results/accuracy_eval.jsonmean_relative_error0.00739887023009426
results/accuracy_eval.jsonmin_cosine_similarity0.999997938725041
results/accuracy_eval.jsonmetrics[0].max_abs_error0.005615234375
results/accuracy_eval.jsonmetrics[0].mean_abs_error0.0006271711687577936
results/accuracy_eval.jsonmetrics[0].max_relative_error1.9801649991223451
results/accuracy_eval.jsonmetrics[0].mean_relative_error0.00912504442417325
results/accuracy_eval.jsonmetrics[0].cosine_similarity0.9999982514581167

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

性能验证

来源指标数值
results/performance_eval.jsondevicenpu:0
results/performance_eval.jsondevice_nameAscend910_9362
results/performance_eval.jsondtypefloat32
results/performance_eval.jsonresults[0].batch_size1
results/performance_eval.jsonresults[0].devicenpu:0
results/performance_eval.jsonresults[0].dtypefloat32
results/performance_eval.jsonresults[0].warmup3
results/performance_eval.jsonresults[0].num_runs10
results/performance_eval.jsonresults[0].avg_time_ms7.46
results/performance_eval.jsonresults[0].std_time_ms0.04

DINOv3 ViT-S/16 on Ascend NPU

1. 简介

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

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

相关获取地址:

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

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-5.10.0-182.0.0.95.r2220_156.hce2.aarch64-aarch64-with-glibc2.35
NPU 数量2
CANN8.5.1
依赖安装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
├── locked_models.md
├── logs/accuracy_eval.log
├── logs/env_check.log
├── logs/inference.log
├── logs/inference_result.json
├── logs/model_check.log
├── logs/performance_eval.log
├── requirements.txt
├── results/accuracy_eval.json
├── results/env_info.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-ViT-S/16
任务类型图像识别 / 视觉特征提取
推理设备Ascend NPU
推理框架PyTorch / torch_npu 或仓库脚本声明的推理框架
仓库分支main
当前提交3d9e5f0

5.2 推理性能

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

指标结果
devicenpu:0
dtypefloat32

5.3 NPU vs CPU/GPU 精度对比

结果来源:results/accuracy_eval.json

指标结果
结果下方“结果数据直接文本”已写入实际日志/JSON内容

结论: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见脚本默认值输出目录或日志路径
--top_k见脚本默认值脚本参数,详见 python inference.py --help

手动调用示例

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

  • 文件大小:4862 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
=== Environment Check ===
Date: Thu May 14 08:28:28 Asia 2026

=== OS ===
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

=== 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)        |
+===========================+===============+====================================================+
| 3     Ascend910           | OK            | 169.5       45                0    / 0             |
| 0     6                   | 0000:0A:00.0  | 0           0    / 0          3970 / 65536         |
+------------------------------------------------------------------------------------------------+
| 3     Ascend910           | OK            | -           44                0    / 0             |
| 1     7                   | 0000:0B:00.0  | 0           0    / 0          2870 / 65536         |
+===========================+===============+====================================================+
+---------------------------+---------------+----------------------------------------------------+
| NPU     Chip              | Process id    | Process name             | Process memory(MB)      |
+===========================+===============+====================================================+
| 3       0                 | 27810         | python3                  | 922                     |
+===========================+===============+====================================================+

=== CANN ===
ASCEND_HOME_PATH=/usr/local/Ascend/cann-8.5.1
aarch64-linux
arm64-linux
bin
cann_uninstall.sh
combo_script
compat
compiler
conf
devlib
fwkacllib

=== PyTorch ===
[LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLtorch: 2.9.0+cpu
[LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLtorch_npu: 2.9.0.post1+gitee7ba04
[LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLNPU available: True
[LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLNPU count: 2
[LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLNPU name: Ascend910_9362

=== Key Packages ===
accelerate                               1.13.0
numpy                                    1.26.4
pillow                                   12.2.0
timm                                     1.0.27
torch                                    2.9.0+cpu
torch_npu                                2.9.0.post1+gitee7ba04
torchaudio                               2.9.0
torchcodec                               0.11.1
torchvision                              0.24.0
transformers                             4.57.6

=== Model Weights ===
total 83M
-rw-r--r-- 1 atomgit atomgitgroup 7.4K May 14 08:23 LICENSE.md
-rw-r--r-- 1 atomgit atomgitgroup  15K May 14 08:23 README.md
-rw-r--r-- 1 atomgit atomgitgroup  743 May 14 08:23 config.json
-rw-r--r-- 1 atomgit atomgitgroup   74 May 14 08:23 configuration.json
-rw-r--r-- 1 atomgit atomgitgroup  83M May 14 08:23 model.safetensors
-rw-r--r-- 1 atomgit atomgitgroup  585 May 14 08:23 preprocessor_config.json

=== Model Config ===
{
  "architectures": [
    "DINOv3ViTModel"
  ],
  "attention_dropout": 0.0,
  "drop_path_rate": 0.0,
  "hidden_act": "gelu",
  "hidden_size": 384,
  "image_size": 224,
  "initializer_range": 0.02,
  "intermediate_size": 1536,
  "key_bias": false,
  "layer_norm_eps": 1e-05,
  "layerscale_value": 1.0,
  "mlp_bias": true,
  "model_type": "dinov3_vit",
  "num_attention_heads": 6,
  "num_channels": 3,
  "num_hidden_layers": 12,
  "num_register_tokens": 4,
  "patch_size": 16,
  "pos_embed_jitter": null,
  "pos_embed_rescale": 2.0,
  "pos_embed_shift": null,
  "proj_bias": true,
  "query_bias": true,
  "rope_theta": 100.0,
  "torch_dtype": "float32",
  "transformers_version": "4.56.0.dev0",
  "use_gated_mlp": false,
  "value_bias": true
}

results/env_info.json

  • 文件大小:454 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "os": "Linux-5.10.0-182.0.0.95.r2220_156.hce2.aarch64-aarch64-with-glibc2.35",
  "python": "3.11.14",
  "torch": "2.9.0+cpu",
  "torch_npu": "2.9.0.post1+gitee7ba04",
  "transformers": "4.57.6",
  "timm": "1.0.27",
  "accelerate": "1.13.0",
  "numpy": "1.26.4",
  "pillow": "12.2.0",
  "npu_available": true,
  "npu_count": 2,
  "npu_name": "Ascend910_9362",
  "ascend_home": "/usr/local/Ascend/cann-8.5.1",
  "cann_version": "8.5.1"
}

logs/model_check.log

  • 文件大小:2321 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
=== Model Check ===
Date: Thu May 14 08:36:43 Asia 2026

=== Model Files ===
total 83M
-rw-r--r-- 1 atomgit atomgitgroup 7.4K May 14 08:23 LICENSE.md
-rw-r--r-- 1 atomgit atomgitgroup  15K May 14 08:23 README.md
-rw-r--r-- 1 atomgit atomgitgroup  743 May 14 08:23 config.json
-rw-r--r-- 1 atomgit atomgitgroup   74 May 14 08:23 configuration.json
-rw-r--r-- 1 atomgit atomgitgroup  83M May 14 08:23 model.safetensors
-rw-r--r-- 1 atomgit atomgitgroup  585 May 14 08:23 preprocessor_config.json

=== Config ===
{
  "architectures": [
    "DINOv3ViTModel"
  ],
  "attention_dropout": 0.0,
  "drop_path_rate": 0.0,
  "hidden_act": "gelu",
  "hidden_size": 384,
  "image_size": 224,
  "initializer_range": 0.02,
  "intermediate_size": 1536,
  "key_bias": false,
  "layer_norm_eps": 1e-05,
  "layerscale_value": 1.0,
  "mlp_bias": true,
  "model_type": "dinov3_vit",
  "num_attention_heads": 6,
  "num_channels": 3,
  "num_hidden_layers": 12,
  "num_register_tokens": 4,
  "patch_size": 16,
  "pos_embed_jitter": null,
  "pos_embed_rescale": 2.0,
  "pos_embed_shift": null,
  "proj_bias": true,
  "query_bias": true,
  "rope_theta": 100.0,
  "torch_dtype": "float32",
  "transformers_version": "4.56.0.dev0",
  "use_gated_mlp": false,
  "value_bias": true
}

=== Preprocessor Config ===
{
  "crop_size": null,
  "data_format": "channels_first",
  "default_to_square": true,
  "device": null,
  "disable_grouping": null,
  "do_center_crop": null,
  "do_convert_rgb": null,
  "do_normalize": true,
  "do_rescale": true,
  "do_resize": true,
  "image_mean": [
    0.485,
    0.456,
    0.406
  ],
  "image_processor_type": "DINOv3ViTImageProcessorFast",
  "image_std": [
    0.229,
    0.224,
    0.225
  ],
  "input_data_format": null,
  "resample": 2,
  "rescale_factor": 0.00392156862745098,
  "return_tensors": null,
  "size": {
    "height": 224,
    "width": 224
  }
}

=== Model Loading Test ===
[LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLModel type: dinov3_vit
Architecture: ['DINOv3ViTModel']
Model class: DINOv3ViTModel
Parameters: 21596544
Processor class: DINOv3ViTImageProcessorFast
Image size: 224
Patch size: 16

logs/inference.log

  • 文件大小:2474 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-14 08:29:22,515 - INFO - ============================================================
2026-05-14 08:29:22,515 - INFO - DINOv3-ViT-S/16 Inference on Ascend NPU
2026-05-14 08:29:22,515 - INFO - ============================================================
2026-05-14 08:29:22,515 - INFO - Device: npu:0
2026-05-14 08:29:22,515 - INFO - Dtype: torch.float32
2026-05-14 08:29:22,515 - INFO - NPU count: 2
2026-05-14 08:29:22,519 - INFO - NPU name: Ascend910_9362
2026-05-14 08:29:23,618 - INFO - NPU memory: total=62740MB, free=62377MB
2026-05-14 08:29:23,618 - INFO - Loading model from: ./model_weights
2026-05-14 08:29:26,476 - INFO - Model loaded in 2.86s
2026-05-14 08:29:26,476 - INFO - Model parameters: 21.60M
2026-05-14 08:29:26,480 - INFO - Image size: (224, 224)
2026-05-14 08:29:26,482 - INFO - Pixel values shape: torch.Size([1, 3, 224, 224])
2026-05-14 08:29:26,482 - INFO - Running warmup...
2026-05-14 08:29:26,763 - INFO - Running inference...
2026-05-14 08:29:26,772 - INFO - Inference time: 8.24ms
2026-05-14 08:29:26,772 - INFO - Last hidden state shape: torch.Size([1, 201, 384])
2026-05-14 08:29:26,772 - INFO - CLS embedding shape: torch.Size([1, 384])
2026-05-14 08:29:26,772 - INFO - Patch embeddings shape: torch.Size([1, 200, 384])
2026-05-14 08:29:26,773 - INFO - CLS embedding stats: mean=0.004490, std=0.523286, min=-1.722613, max=1.739933
2026-05-14 08:29:26,773 - INFO - CLS embedding norm: 10.254637
2026-05-14 08:29:26,773 - INFO - Throughput: 23787 tokens/s (196 patches)
2026-05-14 08:29:26,773 - INFO - ============================================================
2026-05-14 08:29:26,773 - INFO - Inference Summary
2026-05-14 08:29:26,773 - INFO - ============================================================
2026-05-14 08:29:26,773 - INFO - Model: ./model_weights
2026-05-14 08:29:26,773 - INFO - Device: npu:0
2026-05-14 08:29:26,773 - INFO - Dtype: torch.float32
2026-05-14 08:29:26,773 - INFO - Image: ./test_images/synthetic_00.png
2026-05-14 08:29:26,773 - INFO - Image size: (224, 224)
2026-05-14 08:29:26,773 - INFO - Input shape: torch.Size([1, 3, 224, 224])
2026-05-14 08:29:26,773 - INFO - Output shape: torch.Size([1, 384])
2026-05-14 08:29:26,773 - INFO - Inference time: 8.24ms
2026-05-14 08:29:26,773 - INFO - Throughput: 23787 tokens/s
2026-05-14 08:29:26,773 - INFO - Inference completed successfully!
2026-05-14 08:29:26,773 - INFO - Result saved to: ./logs/inference_result.json

logs/inference_result.json

  • 文件大小:452 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "./model_weights",
  "device": "npu:0",
  "dtype": "torch.float32",
  "image": "./test_images/synthetic_00.png",
  "image_size": [
    224,
    224
  ],
  "input_shape": [
    1,
    3,
    224,
    224
  ],
  "inference_time_ms": 8.24,
  "throughput_tokens_per_sec": 23787.0,
  "model_load_time_s": 2.86,
  "npu_available": true,
  "output_shape": [
    1,
    384
  ],
  "cls_embedding_norm": 10.254636764526367
}

logs/accuracy_eval.log

  • 文件大小:3047 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-14 08:32:45,211 - INFO - ============================================================
2026-05-14 08:32:45,211 - INFO - DINOv3 Accuracy Evaluation: CPU vs NPU
2026-05-14 08:32:45,211 - INFO - ============================================================
2026-05-14 08:32:45,211 - INFO - Loading model on CPU...
2026-05-14 08:32:47,964 - INFO - CPU model loaded
2026-05-14 08:32:47,964 - INFO - Loading model on NPU...
2026-05-14 08:32:49,168 - INFO - NPU model loaded
2026-05-14 08:32:49,168 - INFO - Test images: 5
2026-05-14 08:32:49,168 - INFO -
--- Image 1/5: ./test_images/synthetic_00.png ---
2026-05-14 08:32:49,660 - INFO -   Last hidden state - max_rel_err: 1.980165, mean_rel_err: 0.009125, cosine_sim: 0.99999825, PASS: True
2026-05-14 08:32:49,660 - INFO -   CLS embedding - max_rel_err: 0.129700, mean_rel_err: 0.005558, cosine_sim: 0.99999801, PASS: True
2026-05-14 08:32:49,661 - INFO -
--- Image 2/5: ./test_images/synthetic_01.png ---
2026-05-14 08:32:49,873 - INFO -   Last hidden state - max_rel_err: 1.840052, mean_rel_err: 0.008080, cosine_sim: 0.99999840, PASS: True
2026-05-14 08:32:49,873 - INFO -   CLS embedding - max_rel_err: 1.219498, mean_rel_err: 0.008935, cosine_sim: 0.99999816, PASS: True
2026-05-14 08:32:49,873 - INFO -
--- Image 3/5: ./test_images/synthetic_02.png ---
2026-05-14 08:32:50,084 - INFO -   Last hidden state - max_rel_err: 1.985406, mean_rel_err: 0.008409, cosine_sim: 0.99999832, PASS: True
2026-05-14 08:32:50,085 - INFO -   CLS embedding - max_rel_err: 0.075627, mean_rel_err: 0.004332, cosine_sim: 0.99999794, PASS: True
2026-05-14 08:32:50,085 - INFO -
--- Image 4/5: ./test_images/synthetic_03.png ---
2026-05-14 08:32:50,296 - INFO -   Last hidden state - max_rel_err: 1.969306, mean_rel_err: 0.009102, cosine_sim: 0.99999832, PASS: True
2026-05-14 08:32:50,296 - INFO -   CLS embedding - max_rel_err: 0.216961, mean_rel_err: 0.006627, cosine_sim: 0.99999794, PASS: True
2026-05-14 08:32:50,296 - INFO -
--- Image 5/5: ./test_images/synthetic_04.png ---
2026-05-14 08:32:50,508 - INFO -   Last hidden state - max_rel_err: 1.919610, mean_rel_err: 0.008202, cosine_sim: 0.99999831, PASS: True
2026-05-14 08:32:50,509 - INFO -   CLS embedding - max_rel_err: 0.096042, mean_rel_err: 0.005618, cosine_sim: 0.99999797, PASS: True
2026-05-14 08:32:50,509 - INFO -
============================================================
2026-05-14 08:32:50,509 - INFO - Accuracy Evaluation Summary
2026-05-14 08:32:50,509 - INFO - ============================================================
2026-05-14 08:32:50,509 - INFO - Total metrics evaluated: 10
2026-05-14 08:32:50,509 - INFO - Max relative error: 1.985406 (threshold: 0.01)
2026-05-14 08:32:50,509 - INFO - Mean relative error: 0.007399
2026-05-14 08:32:50,509 - INFO - Min cosine similarity: 0.99999794
2026-05-14 08:32:50,509 - INFO - Overall result: PASS
2026-05-14 08:32:50,509 - INFO - Results saved to: ./results/accuracy_eval.json
2026-05-14 08:32:50,510 - INFO - ACCURACY EVALUATION PASSED!

results/accuracy_eval.json

  • 文件大小:6072 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "./model_weights",
  "device_ref": "cpu",
  "device_test": "npu:0",
  "dtype": "float32",
  "num_images": 5,
  "threshold": 0.01,
  "overall_passed": true,
  "max_relative_error": 1.9854058780012105,
  "mean_relative_error": 0.00739887023009426,
  "min_cosine_similarity": 0.999997938725041,
  "metrics": [
    {
      "name": "image_0_last_hidden_state",
      "max_abs_error": 0.005615234375,
      "mean_abs_error": 0.0006271711687577936,
      "max_relative_error": 1.9801649991223451,
      "mean_relative_error": 0.00912504442417325,
      "cosine_similarity": 0.9999982514581167,
      "norm_normalized_error": 4.736770155981394e-05,
      "ref_mean": -0.004902994302696843,
      "ref_std": 0.42667113496696357,
      "test_mean": -0.004907845055037478,
      "test_std": 0.42668514601667296,
      "shape": [
        1,
        201,
        384
      ]
    },
    {
      "name": "image_0_cls_embedding",
      "max_abs_error": 0.005615234375,
      "mean_abs_error": 0.0008273371737838412,
      "max_relative_error": 0.1296996241577601,
      "mean_relative_error": 0.005558331488847954,
      "cosine_similarity": 0.999998011204816,
      "norm_normalized_error": 0.0005476071690249641,
      "ref_mean": 0.004491088722716086,
      "ref_std": 0.5232595398173118,
      "test_mean": 0.004489693936193362,
      "test_std": 0.5232855068769134,
      "shape": [
        1,
        384
      ]
    },
    {
      "name": "image_1_last_hidden_state",
      "max_abs_error": 0.005425930023193359,
      "mean_abs_error": 0.000594630246004985,
      "max_relative_error": 1.8400516966500948,
      "mean_relative_error": 0.008079719237537607,
      "cosine_similarity": 0.9999984045595142,
      "norm_normalized_error": 4.563663346636477e-05,
      "ref_mean": -0.004862603731536374,
      "ref_std": 0.42792623343892894,
      "test_mean": -0.00486624665476541,
      "test_std": 0.4279351203620385,
      "shape": [
        1,
        201,
        384
      ]
    },
    {
      "name": "image_1_cls_embedding",
      "max_abs_error": 0.005425930023193359,
      "mean_abs_error": 0.0007924284970310206,
      "max_relative_error": 1.2194978587622807,
      "mean_relative_error": 0.008934916626800531,
      "cosine_similarity": 0.9999981584065089,
      "norm_normalized_error": 0.0005293971730248862,
      "ref_mean": 0.004270316838907699,
      "ref_std": 0.5230129988987589,
      "test_mean": 0.004271408703061752,
      "test_std": 0.5230465464215884,
      "shape": [
        1,
        384
      ]
    },
    {
      "name": "image_2_last_hidden_state",
      "max_abs_error": 0.004972219467163086,
      "mean_abs_error": 0.0006021255228185825,
      "max_relative_error": 1.9854058780012105,
      "mean_relative_error": 0.00840926994963546,
      "cosine_similarity": 0.9999983167387295,
      "norm_normalized_error": 4.266396601324899e-05,
      "ref_mean": -0.005018855821916403,
      "ref_std": 0.4194636576131486,
      "test_mean": -0.005023594108881258,
      "test_std": 0.4194472523531175,
      "shape": [
        1,
        201,
        384
      ]
    },
    {
      "name": "image_2_cls_embedding",
      "max_abs_error": 0.004972219467163086,
      "mean_abs_error": 0.0008391167939407751,
      "max_relative_error": 0.07562714694330017,
      "mean_relative_error": 0.004332189211221312,
      "cosine_similarity": 0.999997938725041,
      "norm_normalized_error": 0.00048695765589712176,
      "ref_mean": 0.003618220898109333,
      "ref_std": 0.5210543293454144,
      "test_mean": 0.003615639140965262,
      "test_std": 0.5210785248350418,
      "shape": [
        1,
        384
      ]
    },
    {
      "name": "image_3_last_hidden_state",
      "max_abs_error": 0.005129337310791016,
      "mean_abs_error": 0.0006169133237964277,
      "max_relative_error": 1.9693058568329718,
      "mean_relative_error": 0.009101769492454193,
      "cosine_similarity": 0.9999983163401297,
      "norm_normalized_error": 4.3552947921631725e-05,
      "ref_mean": -0.0048955673328659344,
      "ref_std": 0.42388797915114,
      "test_mean": -0.004901011040919836,
      "test_std": 0.4238919942384006,
      "shape": [
        1,
        201,
        384
      ]
    },
    {
      "name": "image_3_cls_embedding",
      "max_abs_error": 0.005129337310791016,
      "mean_abs_error": 0.0008503085070212061,
      "max_relative_error": 0.2169614828627394,
      "mean_relative_error": 0.006626739726889694,
      "cosine_similarity": 0.9999979446620074,
      "norm_normalized_error": 0.0005016608771151462,
      "ref_mean": 0.00450956825564693,
      "ref_std": 0.5217580924096978,
      "test_mean": 0.004504254434626394,
      "test_std": 0.5217876354645358,
      "shape": [
        1,
        384
      ]
    },
    {
      "name": "image_4_last_hidden_state",
      "max_abs_error": 0.005019187927246094,
      "mean_abs_error": 0.0006140647377996269,
      "max_relative_error": 1.919609710318939,
      "mean_relative_error": 0.00820237247906305,
      "cosine_similarity": 0.9999983084181063,
      "norm_normalized_error": 4.249312192332309e-05,
      "ref_mean": -0.005332719556920426,
      "ref_std": 0.4251253585924868,
      "test_mean": -0.005338692623077521,
      "test_std": 0.42511923219371917,
      "shape": [
        1,
        201,
        384
      ]
    },
    {
      "name": "image_4_cls_embedding",
      "max_abs_error": 0.005019187927246094,
      "mean_abs_error": 0.0008418214808140571,
      "max_relative_error": 0.0960422557359025,
      "mean_relative_error": 0.005618349664319543,
      "cosine_similarity": 0.9999979691816565,
      "norm_normalized_error": 0.0004892441495567164,
      "ref_mean": 0.003309758695346924,
      "ref_std": 0.5235202975707767,
      "test_mean": 0.0033063412023087344,
      "test_std": 0.523550300456767,
      "shape": [
        1,
        384
      ]
    }
  ]
}

logs/performance_eval.log

  • 文件大小:3509 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-16 12:27:14,631 - INFO - ============================================================
2026-05-16 12:27:14,631 - INFO - DINOv3 Performance Evaluation
2026-05-16 12:27:14,632 - INFO - ============================================================
2026-05-16 12:27:15,732 - INFO - NPU: Ascend910_9362
2026-05-16 12:27:15,732 - INFO - NPU memory: total=62740MB, free=62371MB
2026-05-16 12:27:15,732 - INFO - Loading model from: /opt/atomgit/track1_work/models/dinov3-vits16-npu
2026-05-16 12:27:18,445 - INFO - Model loaded: 21.60M params
2026-05-16 12:27:18,445 - INFO -
--- Batch size: 1, Image size: 224x224 ---
2026-05-16 12:27:18,446 - INFO - Warming up (3 runs)...
2026-05-16 12:27:18,712 - INFO - Running 10 timed iterations...
2026-05-16 12:27:18,788 - INFO -   Avg time: 7.46ms (std: 0.04ms)
2026-05-16 12:27:18,788 - INFO -   Min: 7.39ms, Max: 7.51ms
2026-05-16 12:27:18,789 - INFO -   P50: 7.46ms, P95: 7.51ms, P99: 7.51ms
2026-05-16 12:27:18,789 - INFO -   Throughput: 134.05 images/s
2026-05-16 12:27:18,789 - INFO -   NPU memory: peak=107MB, allocated=84MB
2026-05-16 12:27:18,789 - INFO -
--- Batch size: 2, Image size: 224x224 ---
2026-05-16 12:27:18,789 - INFO - Warming up (3 runs)...
2026-05-16 12:27:18,814 - INFO - Running 10 timed iterations...
2026-05-16 12:27:18,890 - INFO -   Avg time: 7.47ms (std: 0.04ms)
2026-05-16 12:27:18,890 - INFO -   Min: 7.38ms, Max: 7.53ms
2026-05-16 12:27:18,890 - INFO -   P50: 7.48ms, P95: 7.52ms, P99: 7.53ms
2026-05-16 12:27:18,890 - INFO -   Throughput: 267.66 images/s
2026-05-16 12:27:18,890 - INFO -   NPU memory: peak=117MB, allocated=85MB
2026-05-16 12:27:18,890 - INFO -
--- Batch size: 4, Image size: 224x224 ---
2026-05-16 12:27:18,890 - INFO - Warming up (3 runs)...
2026-05-16 12:27:18,914 - INFO - Running 10 timed iterations...
2026-05-16 12:27:18,989 - INFO -   Avg time: 7.38ms (std: 0.04ms)
2026-05-16 12:27:18,989 - INFO -   Min: 7.32ms, Max: 7.49ms
2026-05-16 12:27:18,989 - INFO -   P50: 7.39ms, P95: 7.45ms, P99: 7.48ms
2026-05-16 12:27:18,989 - INFO -   Throughput: 541.65 images/s
2026-05-16 12:27:18,989 - INFO -   NPU memory: peak=123MB, allocated=87MB
2026-05-16 12:27:18,989 - INFO -
--- Batch size: 8, Image size: 224x224 ---
2026-05-16 12:27:18,989 - INFO - Warming up (3 runs)...
2026-05-16 12:27:19,013 - INFO - Running 10 timed iterations...
2026-05-16 12:27:19,089 - INFO -   Avg time: 7.50ms (std: 0.04ms)
2026-05-16 12:27:19,089 - INFO -   Min: 7.42ms, Max: 7.56ms
2026-05-16 12:27:19,089 - INFO -   P50: 7.50ms, P95: 7.55ms, P99: 7.56ms
2026-05-16 12:27:19,090 - INFO -   Throughput: 1067.15 images/s
2026-05-16 12:27:19,090 - INFO -   NPU memory: peak=136MB, allocated=90MB
2026-05-16 12:27:19,090 - INFO -
============================================================
2026-05-16 12:27:19,090 - INFO - Performance Summary
2026-05-16 12:27:19,090 - INFO - ============================================================
2026-05-16 12:27:19,090 - INFO - Model: /opt/atomgit/track1_work/models/dinov3-vits16-npu
2026-05-16 12:27:19,090 - INFO - Device: npu:0 (Ascend910_9362)
2026-05-16 12:27:19,090 - INFO - Dtype: torch.float32
2026-05-16 12:27:19,090 - INFO -   BS=1: 7.46ms, 134.05 img/s
2026-05-16 12:27:19,090 - INFO -   BS=2: 7.47ms, 267.66 img/s
2026-05-16 12:27:19,090 - INFO -   BS=4: 7.38ms, 541.65 img/s
2026-05-16 12:27:19,090 - INFO -   BS=8: 7.50ms, 1067.15 img/s
2026-05-16 12:27:19,090 - INFO - Results saved to: results/performance_eval.json

results/performance_eval.json

  • 文件大小:1997 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "model": "/opt/atomgit/track1_work/models/dinov3-vits16-npu",
  "device": "npu:0",
  "device_name": "Ascend910_9362",
  "dtype": "float32",
  "results": [
    {
      "batch_size": 1,
      "image_size": 224,
      "device": "npu:0",
      "dtype": "float32",
      "warmup": 3,
      "num_runs": 10,
      "avg_time_ms": 7.46,
      "std_time_ms": 0.04,
      "min_time_ms": 7.39,
      "max_time_ms": 7.51,
      "p50_ms": 7.46,
      "p95_ms": 7.51,
      "p99_ms": 7.51,
      "throughput_images_per_sec": 134.05,
      "npu_memory_peak_mb": 107,
      "npu_memory_allocated_mb": 84
    },
    {
      "batch_size": 2,
      "image_size": 224,
      "device": "npu:0",
      "dtype": "float32",
      "warmup": 3,
      "num_runs": 10,
      "avg_time_ms": 7.47,
      "std_time_ms": 0.04,
      "min_time_ms": 7.38,
      "max_time_ms": 7.53,
      "p50_ms": 7.48,
      "p95_ms": 7.52,
      "p99_ms": 7.53,
      "throughput_images_per_sec": 267.66,
      "npu_memory_peak_mb": 117,
      "npu_memory_allocated_mb": 85
    },
    {
      "batch_size": 4,
      "image_size": 224,
      "device": "npu:0",
      "dtype": "float32",
      "warmup": 3,
      "num_runs": 10,
      "avg_time_ms": 7.38,
      "std_time_ms": 0.04,
      "min_time_ms": 7.32,
      "max_time_ms": 7.49,
      "p50_ms": 7.39,
      "p95_ms": 7.45,
      "p99_ms": 7.48,
      "throughput_images_per_sec": 541.65,
      "npu_memory_peak_mb": 123,
      "npu_memory_allocated_mb": 87
    },
    {
      "batch_size": 8,
      "image_size": 224,
      "device": "npu:0",
      "dtype": "float32",
      "warmup": 3,
      "num_runs": 10,
      "avg_time_ms": 7.5,
      "std_time_ms": 0.04,
      "min_time_ms": 7.42,
      "max_time_ms": 7.56,
      "p50_ms": 7.5,
      "p95_ms": 7.55,
      "p99_ms": 7.56,
      "throughput_images_per_sec": 1067.15,
      "npu_memory_peak_mb": 136,
      "npu_memory_allocated_mb": 90
    }
  ]
}

8. 许可证与声明

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