本项目将 timm 模型 mobilevit_s.cvnets_in1k 适配到华为昇腾 NPU (Ascend910B),实现单卡推理。MobileViT-S 是一种轻量级混合 Transformer 架构,结合了 CNN 和 Transformer 的优势,适用于移动/边缘部署场景。模型在 ImageNet-1K 上训练,包含 1,000 个类别,输入分辨率 256x256。
1 x 3 x 256 x 256[1, 1000](ImageNet-1K 分类)# 安装依赖
pip install -r requirements.txt
# 运行推理
python inference.pyTop-5 预测结果(单张测试图片):
| 排名 | 类别索引 | 概率 |
|---|---|---|
| 1 | class_975 | 0.9049 |
| 2 | class_978 | 0.0356 |
| 3 | class_976 | 0.0227 |
| 4 | class_460 | 0.0191 |
| 5 | class_437 | 0.0010 |
对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.013913 |
| mean_abs_error | 0.003910 |
| relative_error | 0.4127% |
| cosine_similarity | 0.999995 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| avg latency | 10.18 ms |
| min latency | 7.48 ms |
| max latency | 31.70 ms |
| p50 latency | 7.80 ms |
| p90 latency | 31.70 ms |
| p95 latency | 31.70 ms |
| throughput | 98.25 images/sec |
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。CPU-NPU 精度一致性检查采用相对误差指标,阈值为 1.0%。详细指标见第 4 节。
详见 screenshots/self_verification.png 和 screenshots/self_verification.txt。
logs/inference.log — 推理结果logs/accuracy.log — 精度验证logs/benchmark.log — 性能基准timm.create_model(pretrained=False) 创建结构并加载本地权重timm.data.resolve_model_data_config 自动推导#NPU