g
gyccc/timm_wide_resnet50_2.racm_in1k-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

timm/wide_resnet50_2.racm_in1k on Ascend NPU

1. 简介

本项目将 timm/wide_resnet50_2.racm_in1k 图片分类模型适配到华为昇腾 NPU(Ascend910B)单卡运行。

  • 模型来源: ModelScope 魔搭社区
  • 模型页面: https://www.modelscope.cn/models/timm/wide_resnet50_2.racm_in1k
  • 模型类型: Wide ResNet-50-2 图片分类(ImageNet-1k,1000 类)
  • 适配方式: timm.create_model(pretrained=False) + ModelScope 本地权重加载
  • 预处理: timm.data.resolve_model_data_config + create_transform
  • 运行设备: npu:0

重要说明:

  • 本项目严格禁止使用 timm.create_model(..., pretrained=True),未触发 HuggingFace Hub 下载。
  • 权重通过 modelscope.snapshot_download 下载到本地后加载。
  • 本地权重文件: model.safetensors(优先)和 pytorch_model.bin。

2. 验证环境

项目版本/型号
NPU 型号Ascend910B4
CANN8.5.1
Python3.11.14
torch2.9.0+cpu
torchvision0.24.0
torch_npu2.9.0.post1
timm1.0.27
transformers4.57.6
modelscope1.35.3
safetensors0.7.0

3. 推理运行

pip install -r requirements.txt
python inference.py

推理结果 (NPU Top-5):

  • Top-1: class_979 (0.6570)
  • Top-2: class_975 (0.0447)
  • Top-3: class_978 (0.0294)
  • Top-4: class_970 (0.0265)
  • Top-5: class_972 (0.0200)

日志保存在 logs/inference.log。

4. Smoke 验证

torch.npu.is_available(): True
torch.npu.device_count(): 1
torch.npu.get_device_name(0): Ascend910B4

Top-5 预测结果(测试图片)

排名类别置信度
1class_9790.657018
2class_9750.044709
3class_9780.029393
4class_9700.026477
5class_9720.020035

注:由于没有 id2label 映射文件,使用 class_x 作为标签占位。模型输出为 1000 维 ImageNet-1k logits。 对单张测试图片进行 CPU 与 NPU 一致性验证:

指标数值
max_abs_error0.004883
mean_abs_error0.000809
relative_errorN/A
cosine_similarityN/A
threshold1.0%
结果PASS

5. 性能参考

指标数值
平均延迟12.38 ms
最小延迟11.80 ms
最大延迟14.92 ms
p5012.15 ms
p9014.92 ms
p9514.92 ms
吞吐量80.79 images/sec

测试条件:batch_size=1,输入尺寸 3x224x224,NPU 预热 2 轮,正式测试 10 轮。

6. 精度评测

CPU vs NPU Smoke 一致性对比

指标数值
Logits max_abs_diff0.00488281
Logits mean_abs_diff0.00080943
Prob max_diff0.00033426
Top-1 matchTrue (class_979)
Top-5 matchTrue
CPU Top-5[979, 975, 978, 970, 972]
NPU Top-5[979, 975, 978, 970, 972]

注:此对比为单图 CPU/NPU 输出一致性验证,非官方 ImageNet 验证集精度。

7. 自验证截图

见 screenshots/self_verification.png 和 screenshots/self_verification.txt。

8. 日志文件

文件说明
logs/env_check.log环境检查(NPU 信息、包版本)
logs/model_check.log模型下载与文件检查
logs/inference.log推理日志
logs/prediction.txt预测结果摘要
logs/accuracy.log精度一致性对比
logs/benchmark.log性能基准测试

9. 注意事项

  1. 权重加载: 使用 timm.create_model(..., pretrained=False) + modelscope.snapshot_download 本地权重,未触发 HuggingFace Hub 下载。
  2. 预处理: 使用 timm.data.resolve_model_data_config + create_transform 自动获取模型官方预处理参数。
  3. 标签: 无 id2label 映射文件,使用 class_x 占位,实际为 ImageNet-1k 1000 类分类输出。
  4. 显存: Wide ResNet-50-2 参数量约 68.9M,NPU HBM 占用适中。
  5. 测试图片: 从 https://picsum.photos/400/300 下载,若下载失败则使用占位图并在 assets/test_image_note.txt 中说明。
  6. torch_npu 警告: 运行中出现的 owner does not match 和 path string is NULL 为昇腾环境已知提示,不影响推理正确性。
  7. exit code 137: 若遇到 OOM,可尝试减少 batch size 或清理 NPU 缓存。

10. 标签

#NPU