当前位置: 首页 > news >正文

爱芯元智芯片推理cn-clip

主要参考:​​​​​​GitHub - AXERA-TECH/CLIP-ONNX-AX650-CPP

1.clip模型转onnx

 pip install onnxmltools   

pip install protobuf==4.25.5
 

export CUDA_VISIBLE_DEVICES=0

export PYTHONPATH=${PYTHONPATH}:`pwd`/cn_clip

DATAPATH="/data/LLM/clip-data/"

mkdir -p ${DATAPATH}/deploy/  

checkpoint_path=${DATAPATH}/pretrained_weights/epoch_latest_event0521.pt
cd /data/LLM/Chinese-CLIP       

执行以下命令可以转换onnx:

python cn_clip/deploy/pytorch_to_onnx.py        --model-arch ViT-B-16        --pytorch-ckpt-path ${checkpoint_path}        --save-onnx-path ${DATAPATH}/deploy/vit-b-16        --convert-text --convert-vision

 2.onnx转axmodel

       cnclip_config_npu3_U8.json文件

{"model_type": "ONNX","npu_mode": "NPU3","quant": {"input_configs": [{"tensor_name": "image","calibration_dataset": "./val.tar","calibration_size": 224,"calibration_mean": [122.77,116.746,104.093],"calibration_std": [68.5,66.632,70.323]}],"calibration_method": "MinMax","precision_analysis": false},"input_processors": [{"tensor_name": "image","tensor_format": "RGB","src_format": "RGB","src_dtype": "U8","src_layout": "NHWC","csc_mode": "NoCSC"}],"compiler": {"check": 0}
}

执行:

pulsar2 build --input vit-b-16.img.fp32.onnx --output_name  vit-b-16.img.fp32.axmodel --config cnclip_config_npu3_U8.json

可以得到:

3.代码编译

git clone https://github.com/AXERA-TECH/CLIP-ONNX-AX650-CPP/tree/main.git

1.下载依赖的opencv和onnxruntime

2.cmakelist修改

打开cmakelist.txt,在开头增加

set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")

add_compile_options(-g3 -Wall)

 增加包含文件:

增加依赖库:

 mkdir build 

cd build 

执行:

cmake -DONNXRUNTIME_DIR=${onnxruntime_dir} -DOpenCV_DIR=${opencv_cmake_file_dir} -DBSP_MSP_DIR=${msp_out_dir} -DBUILD_WITH_AX650=ON ..
make -j4

4运行程序

下载feature_matmul.onnx

# feature matmul model
wget https://github.com/ZHEQIUSHUI/CLIP-ONNX-AX650-CPP/releases/download/3models/feature_matmul.onnx

执行代码: 

./main -l 1 -v cn_vocab.txt -t cn_text.txt  -i images/ --ienc cn_clip_vitb16.axmodel --tenc vitb16.txt.fp32.onnx -d feature_matmul.onnx

相关文章:

  • 用llama3微调了一个WiFiGPT 用于室内定位
  • 网页模板素材网站 web前端网页制作模板
  • 视频画质等级
  • Spring 核心配置文件(spring.xml)构建指南
  • 蓝桥杯b组c++赛道---数位dp
  • 互联网大厂Java求职面试:AI大模型与云原生架构融合中的挑战
  • Jenkins部署
  • 不打印nacos相关信息,无法进行注册nacos
  • UDP协议原理与Java编程实战:无连接通信的奥秘
  • 企业网络综合实训
  • 七彩喜认知症评估系统:解码大脑健康的“数字先知”
  • 食品检验师的职业发展路径是怎样的?
  • QAtomicInt原子变量的CAS(Compare And Swap)写法与优缺点
  • Python应用“面向对象”小练习
  • OpenOCD 与 PlatformIO
  • 010501上传下载_反弹shell-渗透命令-基础入门-网络安全
  • C++ 继承的相关内容 基类和派生类 默认成员函数的区别等问题
  • 机器学习k近邻,高斯朴素贝叶斯分类器
  • 将 Docker 镜像从服务器A迁移到服务器B的方法
  • 【Axure结合Echarts绘制图表】
  • 3D特效做首页的网站/企业邮箱哪个好
  • 网站广告赚钱/百度首页推荐关不掉吗
  • 潍坊市网站建设/b站黄页推广
  • 一区适合晚上一个人看b站/含有友情链接的网页
  • 新网网站空间购买/高端seo服务
  • 忻州宁武网站建设/网站建设优化哪家公司好