主要内容

部署用于车道检测的迁移学习网络

这个示例展示了如何创建、编译和部署dlhdl。工作流对象具有卷积神经网络。使用Xilinx FPGA和SoC的深度学习HDL工具箱™支持包,该网络可以检测和输出车道标记边界作为网络对象。万博1manbetx使用MATLAB®从目标设备检索预测结果。

先决条件

  • Xilinx ZCU102 SoC开发工具包

  • 用于Xilinx FPGA和SoC的深度学习HDL工具万博1manbetx箱™支持包

  • 深度学习工具箱™

  • 深度学习HDL工具箱™

加载预先训练的SeriesNetwork

要加载预先训练的系列网络lanenet,输入:

snet = getLaneDetectionNetwork ();

标准化输入层

要通过修改输入层的类型来规范化它,输入:

inputlayer = imageInputLayer (snet.Layers .InputSize (1),“归一化”“没有”);snet = SeriesNetwork ([inputlayer;snet.Layers(2:结束)]);

要查看预先训练的系列网络的层,输入:

analyzeNetwork (snet)%保存的网络包含23层,包括输入、卷积、ReLU、跨通道归一化、% Max池,完全连接,和回归输出层。

创建目标对象

创建一个目标对象,该对象具有目标设备的自定义名称和连接目标设备到主机的接口。接口选项有JTAG和Ethernet。

hTarget = dlhdl。目标(“Xilinx”“界面”“以太网”);

创建工作流对象

对象的对象dlhdl。工作流类。在创建类时,指定网络和位流名称。指定保存的预先训练的lanenet神经网络snet作为网络。确保位流名称与您的目标数据类型和FPGA板匹配。在本例中,目标FPGA板是Xilinx ZCU102 SOC板。位流使用单一的数据类型。

hW = dlhdl。工作流(“网络”snet,“比特流”“zcu102_single”“目标”, hTarget);%如果运行在Xilinx ZC706板上,而不是上面的命令,%取消下面命令的注释。% hW = dlhdl。工作流('Network', snet, 'Bitstream', 'zc706_single','Target',hTarget);

编制Lanenet系列网络

编译lanenet系列网络,运行编译功能dlhdl。工作流对象。

dn = hW.compile;
offset_name offset_address allocated_space _______________________ ______________ _________________ "InputDataOffset" "0x00000000" "24.0 MB" " outputresultooffset " "0x01800000" "4.0 MB" "SystemBufferOffset" "0x01c00000" "28.0 MB" "InstructionDataOffset" "0x03800000" "4.0 MB" "ConvWeightDataOffset" "0x03c00000" "16.0 MB" "FCWeightDataOffset""0x04c00000" "148.0 MB" "EndOffset" "0x0e000000" "Total: 224.0 MB"

在FPGA上编程Bitstream并下载网络权重

当需要在Xilinx ZCU102 SoC硬件上部署网络时,需要运行Xilinx的deploy功能dlhdl。工作流对象。该函数使用compile函数的输出,利用编程文件对FPGA板进行编程。它还下载了网络权重和偏差。deploy函数启动FPGA设备编程,显示进度消息,以及部署网络所需的时间。

hW.deploy;
### FPGA位流编程已经被跳过,因为相同的位流已经加载到目标FPGA上。###加载权重到FC处理器。### 13%完成,现在时间是28- june -2020 12:36:09### 25%完成,当前时间为2020年6月28日12:36:10### 38%完成,当前时间是2020年6月28日12:36:11### 50%完成,当前时间是28- june -2020 12:36:12。### 63% finished, current time is 28- june -2020 12:36:13。### 75% finished, current time is 28- june -2020 12:36:14### 88%完成,当前时间是2020年6月28日12:36:14### FC权重已加载。 Current time is 28-Jun-2020 12:36:15

运行预测,例如视频

文件的demoOnVideo功能dlhdl。工作流类对象。该函数加载示例视频,执行的预测函数dlhdl。工作流对象,然后绘制结果。

demoOnVideo (hW, 1);
###完成写入输入激活。###运行单输入激活。深度学习处理器Profiler性能结果LastLayerLatency(cycles) LastLayerLatency(seconds) FramesNum Total Latency Frames/s ------------- ------------- --------- --------- --------- Network 24904175 0.11320 1 24904217 8.8 conv_module 8967009 0.04076 conv1 1396633 0.00635 norm1 623003 0.00283 pool1 226855 0.00103 conv2 3410044 0.01550norm2 378531 0.00172 pool2 233635 0.00106 conv3 1139419 0.00518 conv4 892918 0.00406 conv5 615897 0.00280 pool5 50189 0.00023 fc_module 15937166 0.07244 fc6 15819257 0.07191 fcle1 117125 0.00053 fcle2 782 0.00000 * DL处理器的时钟频率为:220MHz