本项目将 timm/vit_small_patch16_224.augreg_in21k (ViT-Small/16) 适配到华为昇腾 NPU (Ascend910)。该模型基于 AugReg 预训练,在 ImageNet-21k(21843 类)上微调,是一个轻量级 Vision Transformer。
timm/vit_small_patch16_224.augreg_in21k| 项目 | 信息 |
|---|---|
| NPU 型号 | Ascend910 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 2.9.0.post1 |
| timm | 已安装 |
| HBM | 65536 MB |
| 设备 | npu:0 |
pip install -r requirements.txt
python inference.py推理输出 (NPU):
Top-1: class_14240 (0.2456)
Top-2: class_14224 (0.1488)
Top-3: class_14136 (0.0769)
Top-4: class_14379 (0.0475)
Top-5: class_14343 (0.0470)输出 shape: [1, 21843]
对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.024446 |
| mean_abs_error | 0.001235 |
| relative_error | 0.0508% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| 平均延迟 | 5.35 ms |
| 最小延迟 | 5.25 ms |
| 最大延迟 | 5.51 ms |
| P50 | 5.33 ms |
| P90 | 5.47 ms |
| P95 | 5.49 ms |
| 吞吐量 | 186.90 images/sec |
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。CPU-NPU 相对误差 0.0508% 远低于 1.0% 阈值,精度一致性优秀。
详见 screenshots/self_verification.png
| 文件 | 说明 |
|---|---|
logs/inference.log | NPU 推理结果 |
logs/accuracy.log | CPU-NPU 精度一致性检查 |
logs/benchmark.log | 性能基准测试 |
logs/env_check.log | 环境检查信息 |
timm.create_model(pretrained=False) + ModelScope 下载的本地权重加载#NPU #Ascend #Ascend910 #image-classification #timm #ViT #VisionTransformer #ImageNet-21k