将 timm/resnetv2_101x3_bit.goog_in21k 图片分类模型适配到华为昇腾 NPU (Ascend910)。该模型为 ResNetV2-101x3(3倍宽度 ResNetV2-101),采用 BiT (Big Transfer) 预训练,参数量约 5.16 亿,支持 ImageNet-21K 21843 类分类。
适配方式:
snapshot_download 下载模型权重(非 HuggingFace 直连)timm.create_model(pretrained=False) 创建模型结构并加载本地权重| 项目 | 信息 |
|---|---|
| 设备 | Ascend910 |
| npu-smi | 25.5.2 |
| 框架 | PyTorch + torch_npu |
| 模型参数量 | 516,015,123 |
| 权重文件 | model.safetensors (1968.5 MB) |
| 输出类别数 | 21843 (ImageNet-21K) |
cd timm-resnetv2_101x3_bit.goog_in21k-NPU
pip install -r requirements.txt
python inference.py输出示例:
=== Inference Result (NPU) ===
Model: timm/resnetv2_101x3_bit.goog_in21k
Output shape: torch.Size([1, 21843])
Top-1: class_14412 prob=0.2367
Top-2: class_14400 prob=0.1337
Top-3: class_17301 prob=0.1207
Top-4: class_21659 prob=0.1105
Top-5: class_14422 prob=0.0547对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.006166 |
| mean_abs_error | 0.000802 |
| relative_error | 0.0053% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| 平均延迟 | 27.50 ms |
| 最小延迟 | 27.33 ms |
| 最大延迟 | 27.63 ms |
| P50 | 27.51 ms |
| P90 | 27.63 ms |
| P95 | 27.63 ms |
| 吞吐量 | 36.36 images/sec |
测试条件:batch_size=1, 输入 224x224, 预热 2 次 + 正式 10 次。
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
见 screenshots/self_verification.png。
| 文件 | 说明 |
|---|---|
logs/inference.log | NPU 推理结果 |
logs/accuracy.log | CPU-NPU 精度一致性验证 |
logs/benchmark.log | NPU 性能基准测试 |
timm.create_model(pretrained=False) + 本地权重加载,禁止 HuggingFace 直连#NPU