当前位置: 首页 > 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
http://www.xdnf.cn/news/662491.html

相关文章:

  • 11.10 LangGraph状态管理实战:Reducers模式如何重塑企业级多节点协作?
  • 云化全场景+AI智算双擎驱动,打造高教数智化转型新范式,麒麟信安闪耀第63届高等教育博览会!
  • Linux基础IO----动态库与静态库
  • MQTT 在云平台与设备通讯中的连接特性与通讯性质深度解析
  • 网络原理与 TCP/IP 协议详解
  • AJAX-让数据活起来(一):入门
  • 深度PCB干货:如何画出做好一块电路PCB板
  • YOLO 算法详解:实时目标检测的里程碑
  • 【unity游戏开发——编辑器扩展】Scene窗口拓展
  • ZYNQ实战:可编程差分晶振Si570的配置与动态频率切换
  • Powershell实现服务守护进程功能(服务意外终止则重启)
  • 湖北理元理律师事务所债务优化服务中的“四维平衡“之道
  • Ubuntu的shell脚本
  • Few-shot Personalized Scanpath Prediction
  • Monorepo 管理
  • 寒武纪显卡MLU编译安装mmcv1.7.0、mmdetection2.26.0并测试
  • 悬空指针问题回顾与实践总结(Dangling Pointers Retrospective)
  • 前端大文件分片上传与断点续传方案
  • 边缘AI:在物联网设备上实现智能处理
  • 深浅拷贝?
  • 【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)
  • 自动化测试工具:Selenium详解
  • Python基础语法(十三):命名空间与作用域
  • 新质生产力引擎:营销枢纽智能体贯通全链路,AI赋能企业数字化运营高效升级!
  • 了解哈希表
  • Haproxy编译安装
  • 【MogDB】测试 ubuntu server 22.04 LTS 安装mogdb 5.0.11
  • ceph osd 无法启动
  • 安装conda
  • 如何查看 GitLab 内置的 PostgreSQL 版本?