将 timm 预训练视觉模型 swin_base_patch4_window12_384.ms_in22k_ft_in1k(Swin Base,ImageNet-22k 预训练后微调至 ImageNet-1k,384x384 输入)适配到单卡昇腾 NPU (Ascend910) 上运行。使用 ModelScope snapshot_download 下载权重,timm.create_model(pretrained=False) 加载本地权重,不使用 HuggingFace 直连下载。
| 项目 | 配置 |
|---|---|
| NPU | Ascend910_9362 (单卡) |
| CANN | 8.5.1 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 可用 |
| Python | 3.11 |
| 模型参数量 | 87,903,584 |
| 权重大小 | 346.4 MB (safetensors) |
| 输入分辨率 | 384x384 |
# 安装依赖
pip install -r requirements.txt
# 运行推理
python inference.py输出示例:
Top-1: class_526 (0.4131)
Top-2: class_673 (0.1549)
Top-3: class_527 (0.1331)
Top-4: class_508 (0.0379)
Top-5: class_742 (0.0330)对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.019059 |
| mean_abs_error | 0.003413 |
| relative_error | 0.5595% |
| cosine_similarity | 0.999991 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| 平均推理延迟 | 20.96 ms |
| 最小延迟 | 20.06 ms |
| 最大延迟 | 21.62 ms |
| p50 | 21.36 ms |
| p90 | 21.62 ms |
| p95 | 21.62 ms |
| 吞吐量 | 47.70 images/sec |
测试条件:batch=1, 384x384 输入, 2 次预热 + 10 次正式测试, Ascend910 单卡。
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
详见 screenshots/self_verification.png。
logs/inference.log - 推理输出日志logs/accuracy.log - CPU-NPU 精度一致性验证日志logs/benchmark.log - 性能基准测试日志logs/env_check.log - 环境检查日志pretrained=False + 本地权重加载,不使用 HuggingFace 自动下载#NPU