g
gyccc/microsoft-swin-base-patch4-window12-384-in22k-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

microsoft/swin-base-patch4-window12-384-in22k NPU 适配工程

模型介绍

Swin Transformer 是一种层次化视觉 Transformer,通过移位窗口(Shifted Windows)机制在局部窗口内计算自注意力,兼顾了计算效率与建模能力。

本工程基于 microsoft/swin-base-patch4-window12-384-in22k,在 ImageNet-22k 上预训练,输入分辨率为 384x384,约 88M 参数,适用于高精度图片分类任务。

  • 模型名称: microsoft/swin-base-patch4-window12-384-in22k
  • 任务类型: image-classification / 图片识别
  • 模型链接: https://ai.gitcode.com/hf_mirrors/microsoft/swin-base-patch4-window12-384-in22k
  • 参数规模: ~88M

硬件环境

  • 单卡 Ascend 910B4 NPU
  • NPU Health: OK

软件环境

  • Python 3.11.14
  • torch 2.9.0+cpu
  • torch_npu 2.9.0.post1+gitee7ba04
  • transformers 4.57.6
  • torchvision 0.24.0
  • Pillow, requests, numpy

依赖安装

pip install -r requirements.txt

若环境已安装 torch/torch_npu,请勿强制覆盖,避免破坏现有 CANN 环境。

模型权重来源

权重通过 HuggingFace Transformers 自动下载。若无法直连 HuggingFace,已配置镜像:

export HF_ENDPOINT=https://hf-mirror.com

脚本内已默认设置该环境变量。

NPU 推理运行命令

python inference.py

inference.py 使用说明

  • 读取 assets/test.jpg
  • 自动加载 AutoImageProcessor 与 AutoModelForImageClassification
  • 优先使用 npu:0
  • 若 NPU 不可用,明确提示并回退 CPU(影响性能)
  • 输出 Top-5 分类结果
  • 完整日志写入 logs/inference.log
  • 预测摘要写入 logs/prediction.txt

实际运行结果(已完成):

1. coal_black, ebony, jet_black, pitch_black, sable, soot_black (confidence=0.194744)
2. railroad_tunnel (confidence=0.127421)
3. black, blackness, inkiness (confidence=0.075076)
4. adit (confidence=0.031560)
5. ventilation_shaft (confidence=0.026593)

注:测试图片从 picsum.photos 随机下载,为真实 RGB 图像。

eval_accuracy.py 精度验证

python eval_accuracy.py
  • 在 CPU 与 NPU 上分别运行同一输入
  • 对比 logits 与 softmax 概率差异
  • 判断 prob max diff < 1% 且 Top-1 是否一致

实际运行结果(已完成):

指标结果
Max absolute logits diff2.64e-02
Mean absolute logits diff3.71e-03
Max absolute prob diff0.001717
CPU Top-112011
NPU Top-112011
Top-1 一致True
是否通过 (<1% + Top-1 一致)通过

logits 存在一定差异,但概率差异 < 1% 且 Top-1 完全一致,属于 CPU/NPU 浮点实现差异,不影响实际部署精度。

benchmark.py 性能测试

python benchmark.py
  • 预热 5 次,正式测试 20 次
  • 统计平均/最小/最大延迟与吞吐量

实际运行结果(已完成):

指标结果
Avg latency49.392 ms
Min latency48.578 ms
Max latency49.991 ms
Throughput20.25 images/s

日志文件说明

文件说明
logs/env_check.log环境检查与 npu-smi 信息
logs/inference.loginference.py 完整运行日志
logs/prediction.txtTop-5 预测标签与置信度摘要
logs/accuracy.logCPU vs NPU 精度对比结果
logs/benchmark.logNPU 性能基准测试结果

常见问题

  1. 模型下载慢或失败

    • 已配置 HF_ENDPOINT=https://hf-mirror.com
    • 也可手动下载后放到 ~/.cache/huggingface/hub
  2. NPU 权限警告

    • 当前环境存在 owner does not match 警告,不影响推理功能
    • 若需要消除,请联系管理员统一 CANN 目录属主
  3. ascend/log 目录缺失警告

    • [LOG_WARNING] can not create directory: /home/atomgit/ascend/log
    • 属于非致命日志,不影响推理
  4. Slow image processor 提示

    • Transformers 提示使用 slow processor,属于正常行为
    • 可在 from_pretrained 时传入 use_fast=True 切换 fast processor(若支持)

标签

#NPU #Ascend #SwinTransformer #ImageClassification #Transformers