将 timm 库中的 MobileNetV3-Large (ImageNet-1k pretrained, 100裁剪) 模型适配到华为昇腾 NPU (Ascend910B) 单卡环境。使用 ModelScope snapshot_download 下载权重,timm.create_model(pretrained=False) 创建模型结构并加载本地权重,不依赖 HuggingFace 直连下载。
| 项目 | 信息 |
|---|---|
| NPU 型号 | Ascend910B |
| PyTorch | 2.x |
| torch_npu | 已安装 |
| timm | 已安装 |
| ModelScope | 已安装 |
| 操作系统 | Linux aarch64 |
pip install -r requirements.txt
python inference.py推理输出示例:
Output shape: torch.Size([1, 1000])
Top-1: class_718 prob=0.0762
Top-2: class_634 prob=0.0590
Top-3: class_705 prob=0.0521
Top-4: class_820 prob=0.0502
Top-5: class_912 prob=0.0345python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.008712 |
| mean_abs_error | 0.001907 |
| relative_error | 0.2509% |
| cosine_similarity | 0.999997 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 值 |
|---|---|
| 推理次数 | 10 |
| 平均延迟 | 5.88 ms |
| 最小延迟 | 5.84 ms |
| 最大延迟 | 5.92 ms |
| P50 | 5.88 ms |
| P90 | 5.92 ms |
| P95 | 5.92 ms |
| 吞吐量 | 170.07 images/sec |
本项目执行的是 Smoke 一致性验证(CPU vs NPU 同输入同精度对比),非官方 ImageNet 验证集精度评测。Top-1/Top-5 在 CPU 与 NPU 间完全匹配,确认模型迁移无精度损失。
参见 screenshots/self_verification.png。
| 文件 | 说明 |
|---|---|
logs/inference.log | 推理输出日志 |
logs/accuracy.log | 精度一致性验证日志 |
logs/benchmark.log | 性能基准测试日志 |
logs/env_check.log | 环境检查日志 |
snapshot_download 下载权重,不依赖 HuggingFace Hubtimm.create_model(pretrained=False) + 本地权重加载,确保离线可用.gitignore 已排除)#NPU #Ascend #MobileNetV3 #ImageNet #timm #ModelScope #昇腾