本项目将 timm/resnetv2_152x2_bit.goog_teacher_in21k_ft_in1k_384 图片分类模型适配到单卡昇腾 NPU (Ascend910)。
timm.create_model(pretrained=False) + 本地 safetensors 权重timm.data.resolve_model_data_config 自动生成详见 logs/env_check.log。
python inference.py使用 model_utils.py 统一加载模型,通过 pretrained=False 创建结构后加载本地权重,输入 384x384 图像,在 npu:0 上执行推理。
推理结果示例:
[1, 3, 384, 384][1, 1000]python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.005658 |
| mean_abs_error | 0.001072 |
| relative_error | 0.0817% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
python benchmark.py| 指标 | 数值 |
|---|---|
| Latency (avg) | 24.84 ms |
| Latency (min) | 24.65 ms |
| Latency (max) | 25.26 ms |
| Throughput | 40.26 images/sec |
测试条件:warmup 2 次 + 正式 10 次,batch=1,输入 384x384。
本项目仅提供 smoke consistency 验证(CPU-NPU 输出一致性),非官方 ImageNet 验证集精度。模型原始权重为 ImageNet-21k 预训练 + ImageNet-1k 微调。
详见 screenshots/self_verification.txt。
logs/env_check.log — NPU 环境信息logs/inference.log — 推理结果logs/accuracy.log — CPU-NPU 一致性对比logs/benchmark.log — 性能基准测试timm, modelscope, safetensors, torch_npu。torch.npu.synchronize() 确保正确计时。#NPU