v
v50_/timm-convnext_base.clip_laiona_320-FE-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

timm/convnext_base.clip_laiona_320 on Ascend NPU - Feature Extraction

1. 简介

本项目将 timm/convnext_base.clip_laiona_320 图像特征提取模型适配到华为昇腾 NPU(Ascend910B4-1)上运行。

  • 原始模型:timm/convnext_base.clip_laiona_320
  • 模型类型:图像特征提取(输出 1024 维 embedding 向量)
  • 适配方式:ModelScope snapshot_download 下载权重,timm.create_model(pretrained=False, num_classes=0) 创建结构并加载本地权重
  • 运行设备:单卡 Ascend NPU

2. 验证环境

  • NPU: Ascend910B4-1
  • torch: 2.7.1+cpu
  • torch_npu: 2.7.1.post4
  • timm: 1.0.27

安装依赖:

pip install -r requirements.txt

3. 推理运行

python inference.py

推理结果示例(单张测试图片):

  • Feature dim: 1024
  • Embedding L2 norm: 见 logs/inference.log
  • 状态: SUCCESS

推理代码:

import torch
from PIL import Image
import model_utils

model, model_dir, weights_path, missing, unexpected = model_utils.load_model()
model = model.to("npu:0").eval()

image = Image.open("test.jpg").convert("RGB")
inputs = model_utils.preprocess(image, model).to("npu:0")

with torch.no_grad():
    embedding = model(inputs)
    normalized = torch.nn.functional.normalize(embedding, p=2, dim=-1)

4. 精度验证

python eval_accuracy.py

对单张测试图片进行 CPU 与 NPU embedding 一致性验证:

指标数值
feature_dim1024
max_abs_error0.011336
mean_abs_error0.002107
relative_error0.8107%
cosine_similarity0.999978
阈值relative_error < 1.0% AND cosine_similarity >= 0.999
结果PASS

CPU与NPU输出的embedding向量余弦相似度达到 0.999978,相对误差 0.8107%,精度验证PASS。

5. 性能参考

python benchmark.py
指标数值
Avg latency18.27 ms
Min latency17.09 ms
P50 latency17.49 ms
Throughput54.74 embeddings/sec

6. 精度评测说明

本项目包含单图 smoke consistency 验证,非完整验证集评估。

7. 项目文件

文件说明
inference.pyNPU 特征提取推理脚本
eval_accuracy.pyCPU-NPU 精度一致性验证脚本
benchmark.py性能基准测试脚本
model_utils.py模型加载与预处理工具
logs/inference.log推理结果日志
logs/accuracy.log精度验证日志
logs/benchmark.log性能测试日志
assets/test.jpg测试图片

8. 注意事项

  • 使用 timm.create_model(name, pretrained=False, num_classes=0) 创建模型
  • 特征提取输出 embedding 向量,非分类标签
  • CPU-NPU embedding cosine_similarity >= 0.999