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

这篇具有很好参考价值的文章主要介绍了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如下,
将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai
将当前用户添加到用户组,解决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命令修改文件权限,使文件可执行
将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai

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

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

将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai

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

将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai

重启网络服务:

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

此时IPv4的地址已经修改成功,可以和主机ping通。
将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai

将已经编译的模型复制到开发板上,要求输入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发送到开发板上,并在目标边缘平台上解压将下载好的测试图片。
将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai
解压图片压缩包tar -xzvf vitis_ai_runtime_r3.0.0_image_video.tar.gz -C Vitis-AI/examples/vai_runtime

将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai

运行 resnet50 示例

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

运行结果:
将神经网络部署到fpga上,人工智能,fpga开发,tensorflow,ai文章来源地址https://www.toymoban.com/news/detail-755997.html

到了这里,关于FPGA上利用Vitis AI部署resnet50 TensorFlow神经网络模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习图像分类实战——pytorch搭建卷积神经网络(AlexNet, LeNet, ResNet50)进行场景图像分类(详细)

    目录 1  一、实验过程 1.1  实验目的 1.2  实验简介 1.3  数据集的介绍 1.4  一、LeNet5网络模型 1.5  二、AlexNet网络模型 1.6  三、ResNet50(残差网络)网络模型  二、实验代码 导入实验所需要的库  参数配置 数据预处理 重新DataSet 加载数据转为DataLoader函数 可视化一批训练

    2024年02月05日
    浏览(66)
  • pytorch实现AI小设计-1:Resnet50人脸68关键点检测

            本项目是AI入门的应用项目,后续可以补充内容完善作为满足个人需要。通过构建自己的人脸数据集,此项目训练集为4580张图片,测试集为2308张图片,使用resnet50网络进行训练,最后进行效果展示。本项目也提供了量化内容,便于在硬件上部署。         研究A

    2024年01月18日
    浏览(44)
  • 计算机视觉的应用4-目标检测任务:利用Faster R-cnn+Resnet50+FPN模型对目标进行预测

    大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用4-目标检测任务,利用Faster Rcnn+Resnet50+FPN模型对目标进行预测,目标检测是计算机视觉三大任务中应用较为广泛的,Faster R-CNN 是一个著名的目标检测网络,其主要分为两个模块:Region Proposal Network (RPN) 和 Fast R-CNN。我

    2024年02月05日
    浏览(55)
  • 利用resnet50模型实现车牌识别(Python代码,.ipynb和.py两种文件保存都有,可以使用jupyter或pycharm运行)

    1.代码的主要流程如下: 导入所需的库和模块。 对数据集进行可视化,随机选择一些图像进行展示。 加载图像数据集,并将图像和标签存储在数组中。 对标签进行独热编码。 划分训练集和测试集。 使用图像数据增强技术增加训练数据的多样性。 定义一些评估指标的函数。

    2024年02月05日
    浏览(60)
  • 【AI】《动手学-深度学习-PyTorch版》笔记(十九):卷积神经网络模型(GoogLeNet、ResNet、DenseNet)

    发布时间:2014年 GoogLeNet的贡献是如何选择合适大小的卷积核,并将不同大小的卷积核组合使用。 之前介绍的网络结构都是串行的,GoogLeNet使用并行的网络块,称为“Inception块” “Inception块”前后进化了四次,论文链接: [1]https://arxiv.org/pdf/1409.4842.pdf [2]https://arxiv.org/pdf/150

    2024年02月12日
    浏览(68)
  • 使用Vitis AI 部署YOLOv5至KV260

    目录 一、相关介绍 二、相关链接参考 三、模型训练 四、环境部署 五、量化编译 六、上机KV260 如题,此博客记录初步使用Vitis-AI 部署YOLOv5目标检测网络至KV260边缘设备中。 由于整个过程需要注意环境、软件包等之间的版本匹配,我给出所使用的相关版本: 名称 ubantu GPU GP

    2024年04月28日
    浏览(57)
  • Xilinx Vitis AI量化部署Yolov5至DPU (PYNQ)

    本文及后续更新都会放在个人主页~ 欢迎来看看 https://lgyserver.top/index.php/2023/05/08/xilinx-vitis-ai%e9%87%8f%e5%8c%96%e9%83%a8%e7%bd%b2yolov5%e8%87%b3dpu-pynq/ 本文章记述了从YOLOv5源代码使用Xilinx Vitis AI进行量化并部署到DPU上的全流程。在开Pynq环境下运行测试通过。 主机: Ubuntu 22.04 + Vivado 2022.

    2024年02月16日
    浏览(37)
  • Vitis-AI量化编译YOLOv5(Pytorch框架)并部署ZCU104(二)

    第一章  Vitis-AI量化编译YOLOv5(Pytorch框架)并部署ZCU104(一) 第二章  Vitis-AI量化编译YOLOv5(Pytorch框架)并部署ZCU104(二) 目录 系列文章目录 前言 一、Netron查看网络结构 二、与开发板建立通信 1.设置主机 2.设置开发板 三、C++ API编写 四、编译运行 总结 第一章已经详细介

    2024年02月02日
    浏览(43)
  • Vitis-AI量化编译YOLOv5(Pytorch框架)并部署ZCU104(一)

    文章目录 前言  一、Vitis-AI Pytorch框架量化(vai_q_pytorch)  二、编写量化脚本并进行量化  三、模型编译 总结 许多私信想要源码工程,近期会上传到Github仓库,大家有需要自己拿就就可以。 https://github.com/sususjysjy/Vitis-ai-zcu104-yolov5 --------------------------------------------         虽

    2024年02月02日
    浏览(36)
  • 【pytorch】ResNet18、ResNet20、ResNet34、ResNet50网络结构与实现

    选取经典的早期Pytorch官方实现代码进行分析 https://github.com/pytorch/vision/blob/9a481d0bec2700763a799ff148fe2e083b575441/torchvision/models/resnet.py 各种ResNet网络是由BasicBlock或者bottleneck构成的,它们是构成深度残差网络的基本模块 ResNet的大部分各种结构是1层conv+4个block+1层fc 需要注意的是最后

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包