本项目将 timm/mobilenetv2_100.ra_in1k 图片分类模型适配到华为昇腾 NPU(Ascend910B)单卡环境运行。
modelscope snapshot_downloadtimm.create_model(pretrained=False) + ModelScope 本地权重加载model.safetensors(同时存在 pytorch_model.bin)timm.data.resolve_model_data_config + timm.data.create_transformnpu:0重要说明:本适配严格禁止 timm.create_model(..., pretrained=True),未触发 HuggingFace Hub 下载,全部通过 ModelScope 本地权重完成加载。
| 项目 | 版本 |
|---|---|
| NPU 型号 | Ascend910B4 |
| CANN | 8.5.1 |
| Python | 3.11.14 |
| torch | 2.9.0+cpu |
| torchvision | 0.24.0 |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| transformers | 4.57.6 |
| timm | 1.0.27 |
| modelscope | 1.35.3 |
| safetensors | 0.7.0 |
pip install -r requirements.txt注意:torch_npu 通常由昇腾容器环境预装,如未安装请参考华为官方文档。
python inference.pylogs/inference.loglogs/prediction.txttorch.npu.is_available(): True
torch.npu.device_count(): 1
torch.npu.get_device_name(0): Ascend910B4单张图片 NPU 推理 Top-5 结果(无 id2label,使用 class_x 作为标签):
| Rank | Label | Index | Probability |
|---|---|---|---|
| 1 | class_681 | 681 | 0.554698 |
| 2 | class_620 | 620 | 0.108977 |
| 3 | class_810 | 810 | 0.053834 |
| 4 | class_508 | 508 | 0.031676 |
| 5 | class_673 | 673 | 0.027956 |
在 Ascend910B4 单卡上,使用 torch.npu.synchronize() 精确计时,结果如下:
| 指标 | 数值 |
|---|---|
| 平均 latency | 24.024 ms |
| 最小 latency | 11.288 ms |
| 最大 latency | 45.597 ms |
| p50 | 16.888 ms |
| p90 | 44.580 ms |
| p95 | 45.088 ms |
| 吞吐量 | 41.62 images/sec |
CPU vs NPU Smoke 一致性验证结果(非官方 ImageNet 数据集精度):
| 指标 | 数值 |
|---|---|
| max_abs_diff (logits) | 6.05678558e-03 |
| mean_abs_diff (logits) | 1.20725273e-03 |
| prob_max_diff | 1.00955367e-04 |
| Top-1 match | True (681 vs 681) |
| Top-5 match | True |
请查看 screenshots/ 目录下的自验证截图和文本摘要。
| 文件 | 说明 |
|---|---|
logs/model_check.log | 阶段 0 模型下载与可用性检查 |
logs/env_check.log | 阶段 2 环境检查 |
logs/inference.log | 推理日志 |
logs/prediction.txt | Top-5 预测结果 |
logs/accuracy.log | CPU/NPU 精度一致性验证 |
logs/benchmark.log | 性能基准测试 |
id2label 映射文件,因此输出使用 class_x 作为占位标签名。如需真实 ImageNet 标签,可自行引入 imagenet_class_index.json。snapshot_download 下载后,通过 safetensors.torch.load_file 加载 model.safetensors,严禁 pretrained=True。resolve_model_data_config + create_transform,无需额外配置。assets/test.jpg 来自 picsum.photos,如无法下载将自动生成占位图。#NPU