#+NPU #+昇腾 #+Ascend910 #+CV #+图像分类 #+BNext
本仓库包含了 cv_bnext-small_image-classification_ImageNet-labels 在华为昇腾 Ascend910 NPU 上的适配版本,支持 CPU 和 NPU 两种推理方式,并提供了完整的精度验证流程。
该模型来自 ModelScope,主要用于 图像分类 任务。
原始模型地址: cv_bnext-small_image-classification_ImageNet-labels
图像分类
PyTorch
图像(Image)
分类标签和置信度分数
| 依赖 | 版本 |
|---|---|
| Python | >= 3.8 |
| PyTorch | >= 2.0.0 |
| torch_npu | >= 2.0.0 |
| ModelScope | >= 1.0.0 |
| mmcv | 1.7.2 |
| mmcls | >= 0.20.0 |
| NumPy | >= 1.20.0 |
| Pillow | >= 9.0.0 |
本适配基于华为 Ascend910 NPU(CANN 8.5.1,显存 64GB)完成。适配内容包括:
# 安装基础依赖
pip install torch torch_npu modelscope mmcv mmcls Pillow numpy
# 设置环境变量
export MODELSCOPE_CACHE=/path/to/cacheCPU 推理:
python3 inference.pyCPU vs NPU 精度对比:
python3 compare_cpu_npu.pyfrom modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
pipe = pipeline(Tasks.IMAGE_CLASSIFICATION, model='iic/cv_bnext-small_image-classification_ImageNet-labels', device='cpu')
result = pipe('https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/bird.JPEG')
print(result)import torch
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
pipe = pipeline(Tasks.IMAGE_CLASSIFICATION, model='iic/cv_bnext-small_image-classification_ImageNet-labels', device='cpu')
pipe.model.cls_model = pipe.model.cls_model.to('npu:0')
# Monkey-patch forward for NPU
orig_forward = pipe.model.forward
def npu_forward(inputs):
for k, v in inputs.items():
if isinstance(v, torch.Tensor):
inputs[k] = v.to('npu:0')
return orig_forward(inputs)
pipe.model.forward = npu_forward
result = pipe('test.jpg')
print(result)关键比较指标:
| 指标 | 值 |
|---|---|
| 最大绝对误差 | 1.36175537109375 |
| 相对误差 | 3.513680398464203% |
| 余弦相似度 | 0.9999867677688599 |
| Top-1 标签匹配 | True |
| Top-5 一致率 | 80.0% |
| CPU 推理耗时 | 629.4879913330078 ms |
| NPU 推理耗时 | 189.3620491027832 ms |
| NPU 加速比 | 3.3242563349709533x |
NPU 与 CPU 推理结果误差为 3.5137%,超过 1% 阈值。可能原因包括模型内部算子对 NPU 的适配差异或数值精度问题,建议进一步排查。
| 平台 | 推理耗时 (ms) | 加速比 |
|---|---|---|
| CPU | 629.4879913330078 | 1.00x |
| NPU (Ascend910) | 189.3620491027832 | 3.3242563349709533x |
以下截图展示了推理的实际运行结果。



#+NPU #+昇腾 #+Ascend910 #+CV #+图像分类 #+BNext