赞
踩
本文参照上一节的工作,使用Vitis AI-1.4与Vitis-AI 2.5的工具来做量化和编译。
本次项目目前尚未做到对量化后模型进行测试,不过已经做了相关的数据集准备,只是由于时间紧张,测试结果并没有如预期那样,不由得怀疑是源码出了一些问题。后续会贴出来!
本次使用上一节得到的模型进行模型转换、量化和编译。
将上一节得到的/backup/yolov4-custom-nomish_best.weights
使用如下几个链接完成任务:
Vitis AI-1.4文件:https://github.com/Xilinx/Vitis-AI-Tutorials/tree/1.4/Design_Tutorials/07-yolov4-tutorial/scripts/convert_yolov4.py
转Keras、Tensorflow框架模型文件:https://github.com/david8862/keras-YOLOv3-model-set
参照给出的convert_yolov4.py
文件修改、存放部分内容,运行该.py
文件即可经过两次转换后得到模型结果。
本来放在云服务器上使用
https://github.com/Xilinx/Vitis-AI
给出的文件进行安装,后来发现在gpushare
上无法安装docker
,理由其实追根朔源下去,会发现无法成功安装的原因是gpushare
上缺了需要OS内核编译的ip_tables
模块,导致哪怕用了modprobe
模块导入工具都不会成功。另外,想试着安装docker
的朋友也不建议在win10
子带linux子系统上安装,还是不会成功的,这条路我趟过了。我的方法是在虚拟机上安装。虚拟机上用ubuntu18.04
可以安装成功。
有了ubuntu18.04
以后使用如下步骤安装dokcer
。
首先,看看是否已经装了docker
,使用
docker -v # 查看docker版本
随后设置仓库
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # 安装apt依赖包,用于通过https来获取仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #添加docker的官方gpg密钥
密钥为9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
随后设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
之后进入安装环节
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker -v
sudo docker run hello-world
关于Vitis-AI 2.5
需要参照手册把OS
和交叉编译环境
安装好。
https://docs.xilinx.com/r/en-US/ug1414-vitis-ai
随后直接
docker pull xilinx/vitis-ai-cpu:latest
打开
vitis_ai_tensorflow
随后我们利用
scripts/quantize_yolov4.sh
scripts/compile_yolov4.sh
分别做量化和编译
围绕Vitis-AI开发流程:
1、通过前述Darknet
得到的.weights
权重模型,或者Pytorch
得到的.pt
模型(该模型所含参数远远多于平常.pt模型,为适应部署,仅需提取ckpt[model]
转化为float32
并以save_dict
保存),可以通过模型转换工具转变为keras
框架下的.h5
文件,随后再转变为tensorflow
框架下的.pb
文件。
2、量化采用docker
下的vitis-ai-tensorflow
环境中的vai_q_tensorflow
量化器,通过input_fn.py
和.pb
模型文件依次经过calib
、test
和generate
得到deploy_model.pb
文件,其中calib
需要做PTSQ
(训练后静态量化)和QAT
(感知量化),test
用于评估,generate
用于产生.pb
压缩后模型文件。
3、编译采用DPUCZDX8G
的ZCU102
架构ip,也就是arch.json
文件(加密)与.pb
文件经过vitis_c_tensorflow
编译器得到.xmodel
文件,确定PL
侧和PS
侧分配。
4、部署基于Vitis-AI-Library
,使用Yolov4
的测试文件加载.xmodel
模型运行到ZYNQ Ultrascale+MPSOC
上。
本文介绍了模型转换工具使用流程,量化和编译的环境部署和实现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。