FPGA上利用Vitis AI部署resnet50 TensorFlow神经网络模型

FPGA上利用Vitis AI部署resnet50 TensorFlow神经网络模型

参考Xilinx官方教程快速入门 • Vitis AI 用户指南 (UG1414)
克隆 Vitis AI 存储库以获取示例、参考代码和脚本(连接github失败可能需要科学上网)。

[Host]$ git clone https://github.com/Xilinx/Vitis-AI 
[Host]$ cd Vitis-AI

安装Docker如何在 Ubuntu 20.04 上安装和使用 Docker
安装完docker后,下载最新Vitis AI Docker,

Host]$ docker pull xilinx/vitis-ai-<pytorch/tensorflow/tensorflow2>-cpu:latest

将官方的指令docker pull xilinx/vitis-ai-<pytorch/tensorflow/tensorflow2>-cpu:latest改为docker pull xilinx/vitis-ai-tensorflow2-cpu:latest,从tensorflow,pytorch,tensorflow2中三选一。遇到问题permission denied如下,
下载docker时遇到的问题
将当前用户添加到用户组,解决docker权限问题,运行的命令如下:

sudo groupadd docker               #添加用户组
sudo gpasswd -a username docker    #将当前用户添加至用户组,username写自己的用户名
newgrp docker                      #更新用户组

使用git checkout v3.0 切换到3.0版本
运行以下命令安装交叉编译系统环境

[Host]$ ./host_cross_compiler_setup.sh

如果提示host_cross_compiler_setup.sh找不到命令,需要使用chmod命令修改文件权限,使文件可执行

安装完交叉编译链后,有如下提示:

Please run the following command to enable Cross Compiler
    source /root/petalinux_sdk_2022.2/environment-setup-cortexa72-cortexa53-xilinx-linux
If you run the above command failed, run the following commands to enable Cross Compiler
    unset LD_LIBRARY_PATH
    source /root/petalinux_sdk_2022.2/environment-setup-cortexa72-cortexa53-xilinx-linux

下载并设置开发板镜像 Design License Agreement (XEF) (xilinx.com)
使用Etcher将镜像文件烧写到SD卡上,将含镜像的SD卡插入目标开发板,通电并使用串行端口启动开发板以在系统上进行操作,使用串行端口来设置开发板的IP信息(ifconfig)。

下载tensorflow resnet50 模型

[Host]$ cd Vitis-AI
[Host]$ wget https://www.xilinx.com/bin/public/openDownload?filename=tf_resnetv1_50_imagenet_224_224_6.97G_3.0.zip -O tf_resnetv1_50_imagenet_224_224_6.97G_.0.zip
[Host]$ unzip tf_resnetv1_50_imagenet_224_224_6.97G_3.0.zip

量化模型

量化模型时 ,从 Imagenet_calib.tar.gz下载数据集,并复制到 Vitis-AI 文件夹中

启动 Docker 镜像./docker_run.sh xilinx/vitis-ai-tensorflow-cpu:latest

在 tf_resnetv1_50_imagenet_224_224_6.97G_3.0/code/quantize/config.ini 中,将 CALIB_BATCH_SIZE 设置为 5。然后运行

[Docker]$ conda activate vitis-ai-tensorflow
[Docker]$ tar -xzvf Imagenet_calib.tar.gz -C tf_resnetv1_50_imagenet_224_224_6.97G_3.0/data
[Docker]$ cd tf_resnetv1_50_imagenet_224_224_6.97G_3.0/code/quantize
[Docker]$ bash quantize.sh

量化需要1个小时45分钟, 运行 quantize.sh 后,已量化的模型包含在 tf_resnetv1_50_imagenet_224_224_6.97G_3.0/quantized 中

编译模型

vai_c_tensorflow -f ./quantized/quantized_baseline_6.96B_919.pb -a /opt/vitis_ai/compiler/arch/DPUCZDX8G/KV260/arch.json -o ./compiled -n resnet50_tf

修改ipv4的网络配置,输入命令sudo vim /etc/network/interfaces,编辑文件

重启网络服务:

sudo /etc/init.d/networking force-reload
sudo /etc/init.d/networking restart

此时IPv4的地址已经修改成功,可以和主机ping通。

将已经编译的模型复制到开发板上,要求输入root的密码,密码为root
scp tf_resnetv1_50_imagenet_224_224_6.97G_3.0/compiled/resnet50_tf.xmodel root@[BOARD_IP]:~

下载 vitis_ai_runtime_r3.0.0_image_video.tar.gz 测试图,通过MobaXterm发送到开发板上,并在目标边缘平台上解压将下载好的测试图片。

解压图片压缩包tar -xzvf vitis_ai_runtime_r3.0.0_image_video.tar.gz -C Vitis-AI/examples/vai_runtime

运行 resnet50 示例

cd ~/Vitis-AI/examples/vai_runtime/resnet50
./resnet50 ~/resnet50_tf.xmodel

运行结果:

Vitis AI 是 Xilinx 推出的一款 AI 推理框架,可以用于加速卷积神经网络 (CNN) 的推理。下面是基于 Vitis AI 部署卷积神经网络的教程: 1. 准备工作 首先,你需要安装好 Xilinx 的 Vivado 和 Vitis AI 开发环境,并且有一个支持 Xilinx FPGA 的板卡。 2. 生成 Xilinx DPU IP 使用 Vitis AI 工具箱中的 DPU IP 生成器,将训练好的模型转换为 Xilinx DPU IP。具体步骤如下: - 打开 Vivado 工具,在 Tcl Console 中执行以下命令: ``` cd <path-to-your-working-directory> source <path-to-vitis-ai>/settings64.sh vivado -mode tcl ``` - 进入 Vivado 图形界面,加载 IP 创建向导: ``` ipx::create_xgui_project dpu -name dpu -vendor xilinx.com -library ip -taxonomy /IP ``` - 在创建向导中,选择 “DPU IP” 并按照提示填写参数。 - 生成 DPU IP 后,将其添加到 Vivado 工程中。 3. 将模型部署FPGA 上 使用 Vitis AI 工具箱中的编译器,将模型编译成可在 FPGA 上运行的二进制文件。具体步骤如下: - 打开 Vitis AI 工具箱的编译器,在菜单中选择“新建项目”。 - 在项目设置中,选择 FPGA 平台和 DPU IP。 - 导入模型文件,并按照提示填写模型参数。 - 编译项目并生成可执行文件。 4. 运行推理 将生成的可执行文件拷贝到 FPGA 上,然后使用 Vitis AI 工具箱中的运行时库进行推理。具体步骤如下: - 在 FPGA 上安装 Vitis AI 运行时库。 - 执行可执行文件进行推理。 以上就是基于 Vitis AI 部署卷积神经网络的教程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值