IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ULTRA96V2部署神经网络 -> 正文阅读

[人工智能]ULTRA96V2部署神经网络


前言

本文主要针对caffe1.0框架的神经网络,叙述如何在ULTRA96V2板子上部署神经网络,同时本篇文章主要针对DPU2.0版本。


以下是本篇文章正文内容,主要参考以下文档
DNNDK环境部署文档,提取码QQDZ
神经网络编译

一、DNNDK环境部署

首先从XILINX官网下载DNNDK包,链接如下:
DNNDK包下载链接
下载
下载好后传到Ubuntu16.04系统中,我使用的是虚拟机,虚拟机安装Ubuntu16.04教程很多,这里不再赘述,运行如下指令安装依赖库:

apt-get install -y --force-yes build-essential autoconf libtool libopenblasdev libgflags-dev libgoogle-glog-dev libopencv-dev protobuf-compiler libleveldbdev liblmdb-dev libhdf5-dev libsnappy-dev libboost-all-dev libssl-dev

再将下载后的压缩包解压,文件结构如下:

解压后文件结构
解压图片中框选的压缩包,然后进入到host_x86文件夹下,运行如下指令:

./install.sh <board_name>

其中<board_name> 根据开发板可以是Ultra96, ZCU104或是ZCU102,运行该指令后环境便搭建好了。

二、量化神经网络

下载该训练集到$dnndk_pkg/host_x86/models/caffe/resnet50路径并解压,并在该目录下下找到dnnc.sh,根据自己的dpu以及神经网络情况修改dnnc.sh,之后先运行decent.sh进行剪枝、量化,再运行dnnc.sh进行编译,若显示如下界面则说明编译成功:
dnndk编译成功
之后即可在dnnc_output文件夹中获得elf文件。需要注意的是resnet50与inceptionv1下载dnndk解压后都有例子,其他网络若需要编译则要自己找到该网络的浮点模型,然后修改对应的dnnc.sh与prototxt,其余步骤如上所示。

三、编译神经网络

在windows环境下的命令行中运行如下指令启动Xilinx SDK GUI:

xsdk

当XSDK GUI打开后新建一个空白workspace,再点击选项卡File然后选择New Application Project,输入对应的信息,以resnet50网络为例,其余网络只需修改project name即可:
工程配置
点击选项卡中的File然后Import -> General -> Filesystem将main.cc与之前dnnc_output文件夹内的elf文件导入,main.cc下载链接如下(针对resnet50网络,其余网络需要适当修改):
main.cc下载链接,提取码为QQDZ
resent50_src
再更新Application Build Settings,首先在resnet50 application点击鼠标右键,然后选择C/C++ Build Settings,在 C/C++ Build -> Environment, 加入SYSROOT变量以及指向sysroot的位置,获取sysroot地址首先需要下载下述压缩包并解压:
SYSROOT,提取码QQDZ
下载后地址如下,以我的为例:

D:\srtp\our_work\sdk\sysroots\aarch64-xilinx-linux

再将compiler和linker指向SYSROOT

Miscellaneous -> Linker Flags : --sysroot=${SYSROOT}

g++linker
Miscellaneous -> Other Flags:在原来内容基础上加上 --sysroot=${SYSROOT}
g++compiler
再在 g++ linker libraries tab, 加入以下 libraries: n2cube、dputils、pthread、opencv_core、opencv_imgcodecs、opencv_highgui
lib
再在 g++ linker -> Miscellaneous, 加入 model .elfs 到 Other Objects,再从resnet50/src directory加入 dpu_resnet50_0.elf,这一步可以点击Workspace以浏览所需对象:
在这里插入图片描述
在这里插入图片描述
点击OK,最后在 resnet50 application鼠标右键,然后选择 Build Project,最终可以在debug文件夹下获取最终能在板子上跑的神经网络。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 23:16:45  更:2021-07-28 23:16:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:37:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码