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

timm/swin_tiny_patch4_window7_224.ms_in1k on Ascend NPU

1. 简介

本工程将 ModelScope 上的 timm/swin_tiny_patch4_window7_224.ms_in1k 图片分类模型适配为可在华为昇腾 NPU(Ascend910B)上单卡运行的推理工程。

  • 模型来源:ModelScope (timm/swin_tiny_patch4_window7_224.ms_in1k)
  • 模型类型:Swin Transformer (Tiny)
  • 任务类型:Image Classification
  • 输入尺寸:224x224
  • 输出类别:1000 (ImageNet-1k)
  • 适配方式:timm.create_model(..., pretrained=False) + ModelScope 本地权重加载

2. 验证环境

项目版本/信息
NPUAscend910B4
CANN8.5.1
Python3.11
torch已安装
torch_npu已安装
timm已安装
modelscope已安装

3. 推理运行

安装依赖

pip install -r requirements.txt

单图推理

python inference.py

推理脚本会从 ModelScope 本地缓存加载 model.safetensors 权重,在 npu:0 上执行前向推理,并输出 Top-5 预测结果。

示例输出:

Model: timm/swin_tiny_patch4_window7_224.ms_in1k
Input shape: [1, 3, 224, 224]
Output shape: [1, 1000]

Top-5 predictions:
  1. class_871 (index=871, prob=0.4197)
  2. class_484 (index=484, prob=0.0669)
  3. class_814 (index=814, prob=0.0395)
  4. class_876 (index=876, prob=0.0373)
  5. class_403 (index=403, prob=0.0372)

注意:该模型未提供 id2label.json 或 labels.txt,因此预测标签以 class_0 ~ class_999 形式展示。

4. 精度验证

python eval_accuracy.py

对单张测试图片进行 CPU 与 NPU 一致性验证:

指标数值
max_abs_error0.013045
mean_abs_error0.001968
relative_error0.2812%
cosine_similarity0.999997
threshold1.0%
结果PASS
  • CPU Top-1 与 NPU Top-1 类别一致
  • CPU Top-5 与 NPU Top-5 类别一致

5. 性能参考

python benchmark.py
指标数值
Iterations10
Batch size1
Avg latency23.04 ms
Min latency17.24 ms
Max latency35.00 ms
P5021.13 ms
P9030.39 ms
P9532.69 ms
Throughput43.40 images/sec

6. 精度评测

本仓库未包含完整 ImageNet 验证集,因此未提供官方 Top-1/Top-5 精度数字。用户如有需要,可基于 model_utils.py 中的加载逻辑,在完整验证集上自行评测。

7. 自验证截图

自验证摘要见:

  • screenshots/self_verification.txt
  • screenshots/self_verification.png

8. 日志文件

日志说明
logs/env_check.logNPU 环境检查
logs/inference.log推理结果
logs/prediction.txt预测结果(含标签说明)
logs/accuracy.logCPU/NPU 一致性对比
logs/benchmark.log性能基准测试
logs/paths.txt模型路径记录

9. 注意事项

  1. 权重加载:本工程严格遵守 pretrained=False + ModelScope 本地权重加载,不触发 HuggingFace Hub 自动下载。
  2. 不提交权重:.gitignore 已排除 *.bin, *.safetensors, *.pth, *.pt, *.ckpt, *.onnx 等权重文件。
  3. 清理产物:fusion_result.json 和 kernel_meta/ 已删除并加入 .gitignore。
  4. 标签说明:由于模型仓库未提供标签映射文件,推理结果使用 class_0 至 class_999 作为通用标签。
  5. NPU 设备:默认使用 npu:0,请确保设备可用。

10. 标签

#NPU #Ascend #ImageClassification #timm #SwinTransformer #ModelScope