主要内容

概要推断运行

这个例子展示了如何检索ResNet-18网络的预测和分析器结果。查看预先训练的深度学习网络中的层、卷积模块和全连接模块的网络预测和性能数据。

  1. 创建一个class对象工作流通过使用dlhdl。工作流类。

    看到的,使用属性名称值对创建工作流对象

  2. 为工作流对象设置预训练的深度学习网络和位流。

    看到的,使用属性名称值对创建工作流对象

  3. 创建一个class对象dlhdl。目标并指定目标供应商和接口。看到的,dlhdl。目标

  4. 将网络部署到指定的目标FPGA板上,调用部署方法。看到的,部署

  5. 调用预测函数用于工作流对象。控件提供一个图像数组InputImage参数。提供参数以打开剖析器。看到基于量化DAG网络的FPGA图像分类

    将图像分类的标签存储在一个结构中结构体并显示在屏幕上。速度和延迟的性能参数以结构形式返回结构体

使用这个图像运行以下代码:

Snet = resnet18;hT = dlhdl。目标(“Xilinx”,“界面”,“以太网”);hW = dlhdl。工作流(“净”snet,“比特流”,“zcu102_single”,“目标”hT);hW.deploy;图片= imread(“zebra.jpeg”);inputImg = imresize(image, [224, 224]);imshow (inputImg);[预测,速度]= hW.predict(single(inputImg),“配置文件”,“上”);[val, idx] = max(预测值);snet.Layers(结束).ClassNames {idx}

已完成写入输入激活。###运行单输入激活。深度学习处理器性能分析结果LastFrameLatency(cycles) LastFrameLatency(seconds) FramesNum总时延帧数/秒------------- ------------- --------- --------- --------- Network 23659630 0.10754 1 23659630 9.3 conv1 2224115 0.01011 pool1 572867 0.00260 res2a_branch2a 972699 0.00442 res2a_branch2b 972568 0.00442 res2a 209312 0.00095 res2b_branch2a 972733 0.00442 res2b_branch2b 973022 0.00442 res2b 209736 0.00095 res3a_branch2a 747507 0.00340 res3a_branch2b 904291 0.00411Res3a_branch1 538763 0.00245 res3a 104750 0.00048 res3b_branch2a 904389 0.00411 res3b_branch2b 904367 0.00411 res3b 104886 0.00048 res4a_branch2a 485682 0.00221 res4a_branch2b 880001 0.00400 res4a_branch1 486429 0.00221 res4a 52628 0.00024 res4b_branch2a 880053 0.00400 res4b_branch2b 880035 0.00400 res4b 52478 0.00024 res5a_branch2a 1056299 0.00480 res5a_branch2b 2056857 0.00935 res5a_branch1 1056510 0.00480 res5a 26170 0.00012 res5b_branch2a 2057203 0.00935 res5b_branch2b 2057659 0.00935 res3b_branch2b26381 0.00012 pool5 71405 0.00032 fc1000 216155 0.00098 * DL处理器时钟频率:220MHz

分析器数据返回这些参数及其值:

  • LastFrameLatency(周期)-前一帧执行的总时钟周期数。

  • 时钟频率——从用于将网络部署到目标板的位流中检索时钟频率信息。例如,分析器返回* DL处理器的时钟频率为:220MHz.方法检索220兆赫的时钟频率zcu102_single比特流。

  • LastFrameLatency(秒)-前一帧执行的总秒数。总时间计算为LastFrameLatency /时钟频率(周期).例如conv_moduleLastFrameLatency(秒)计算为2224115 / (220 * 10 ^ 6)

  • FramesNum-输入到网络的帧总数。的计算中将使用此值帧/秒

  • 总延迟—执行所有网络层和模块的总时钟周期数FramesNum

  • 帧/秒—网络在一秒钟内处理的帧数。总帧/秒计算为(FramesNum*时钟频率)/总延迟.例如帧/秒例中计算为(1 * 220 * 10 ^ 6) / 23659630

另请参阅

||

相关的话题

Baidu
map