Rad-Dino 是基于 DINOv2 的医学影像编码器,专门用于 X 光和 CT 等医学影像分析。该模型在大规模自然图像预训练的基础上,通过医学影像微调获得强大的医学影像理解能力。
rad-dino-ascend/
├── inference.py # 精度测试脚本
├── test.log # 测试日志
├── README.md # 本文档Rad-Dino 基于 DINOv2 架构:
| 组件 | 说明 | 参数数量 |
|---|---|---|
| Patch Embed | 14x14 patch embedding | 86k |
| Class Token | 可学习类别令牌 | 768 |
| Position Embed | 位置编码 (1370 tokens) | 1M |
| Transformer Blocks | 12 层注意力块 | ~84M |
| LayerNorm | 后处理归一化 | 1.5k |
source /usr/local/Ascend/ascend-toolkit/set_env.shcd rad-dino-ascend/
python3 inference.pycd rad-dino-ascend/
python3 inference.py --precision_test| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| Max Error (sum) | 1.22e-04 | < 1e-3 | PASS |
| Max Error (mean) | 1.19e-07 | < 1e-5 | PASS |
| Max Error (std) | 5.96e-08 | < 1e-5 | PASS |
| 操作 | 耗时 |
|---|---|
| 模型加载 | ~4s |
| CPU 参考计算 (20 tensors) | 0.12s |
| NPU 推理 (20 tensors) | 0.25s |
| 端到端推理 (1 image 518x518) | ~4.5s |
2026-05-19 13:17:23,086 - INFO - Rad-Dino Ascend NPU Inference
2026-05-19 13:17:23,087 - INFO - Loading RadDino model from /opt/atomgit/mxy/rad-dino
2026-05-19 13:17:23,810 - INFO - Model loaded! Params: 86580480
2026-05-19 13:17:23,827 - INFO - Input image: torch.Size([1, 3, 518, 518])
2026-05-19 13:17:31,843 - INFO - Output: torch.Size([1, 1370, 768]), CLS: torch.Size([1, 768]), Time: 8014.87ms精度测试通过对比 CPU 和 NPU 上的张量统计数据验证模型权重在两个设备间的一致性。
torch.Tensor of shape [B, 3, 518, 518]torch.Tensor of shape [B, 1370, 768]
A: 检查 safetensors 文件中的 key 名称是否与模型匹配,backbone_compatible.safetensors 使用简化命名。
A: 通常使用 CLS token (features[:, 0, :]) 或平均池化所有 patch features。