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

timm/deit3_small_patch16_224.fb_in22k_ft_in1k on Ascend NPU

1. 简介

本工程将 timm/deit3_small_patch16_224.fb_in22k_ft_in1k 图片分类模型适配为可在单卡昇腾 NPU(Ascend910B)上运行的提交工程。

模型类型:DeiT3 Small,基于 Vision Transformer,输入分辨率 224x224,patch size 16,在 ImageNet-22k 上预训练并在 ImageNet-1k 上微调,输出 1000 类分类 logits。

2. 验证环境

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

3. 推理运行

安装依赖

pip install -r requirements.txt

运行命令

python3 inference.py
  • inference.py:单图 NPU 推理,输出 Top-5 预测结果
  • eval_accuracy.py:CPU vs NPU 一致性对比
  • benchmark.py:NPU 性能基准测试

日志路径

  • logs/inference.log:推理日志
  • logs/accuracy.log:精度对比日志
  • logs/benchmark.log:性能测试日志
  • logs/prediction.txt:预测结果摘要

4. Smoke 验证

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

Top-5 预测结果(占位图)

排名标签类别 ID概率
1class_9759750.124928
2class_3473470.064703
3class_80800.044776
4class_9709700.039502
5class_8028020.027359

注意:该模型无官方 id2label 映射文件,使用 class_x 作为标签占位。

5. 性能参考

基于单卡 Ascend910B4,batch_size=1,输入 224x224。

指标数值
avg11.04 ms
min10.46 ms
max12.99 ms
p5010.72 ms
p9012.99 ms
p9512.99 ms
images/sec90.59

6. 精度评测

CPU vs NPU Smoke 一致性对比结果:

指标数值
max_abs_diff (logits)1.072407e-02
mean_abs_diff (logits)1.950251e-03
prob_max_diff3.703535e-04
Top-1 matchTrue
Top-5 matchTrue

注意:此验证为 CPU/NPU smoke consistency 测试,非官方 ImageNet 数据集精度。

7. 自验证截图

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

8. 日志文件

  • logs/env_check.log:环境检查日志
  • logs/model_check.log:模型下载与 dummy forward 日志
  • logs/inference.log:推理日志
  • logs/inference_run.log:推理运行输出
  • logs/accuracy.log:精度对比日志
  • logs/accuracy_run.log:精度对比运行输出
  • logs/benchmark.log:性能测试日志
  • logs/benchmark_run.log:性能测试运行输出
  • logs/prediction.txt:预测结果
  • logs/run_status.log:脚本运行状态(exit code)

9. 注意事项

  1. 模型来源:ModelScope 魔搭社区,下载方式 modelscope snapshot_download。
  2. 模型加载:使用 timm.create_model(pretrained=False) + ModelScope 本地权重加载,未使用 timm pretrained=True,未触发 HuggingFace Hub 下载。
  3. 权重文件:model.safetensors(84.2 MB),由 ModelScope 本地加载。
  4. 预处理:使用 timm.data.resolve_model_data_config + create_transform 完成官方预处理。
  5. 测试图片:从 https://picsum.photos/400/300 下载,如网络不可用则为占位图。
  6. 标签:模型无内置 id2label,输出使用 class_0 ~ class_999 占位。
  7. 运行设备:npu:0(Ascend910B4)。
  8. torch_npu:通常由昇腾容器或 CANN 环境预装,requirements.txt 中不固定版本。
  9. 显存/内存:模型约 84 MB,NPU HBM 占用约 3 GB,请确保设备有足够显存。
  10. 退出码 137:如遇到 OOM,请检查 NPU 显存占用情况。

10. 标签

#NPU