主要内容

深度学习网络定位的代码生成手臂的Mali GPU

随着GPU编码器™,您可以生成各种从深度学习工具箱™训练的深度学习网络预测优化代码。生成的代码通过使用体系结构,这些层实现了深卷积神经网络(CNN),并且您在输入参数指定SeriesNetwork(深学习工具箱)或者DAGNetwork(深学习工具箱)目的。代码生成取ARM的优势®计算库用于计算机视觉和机器学习。为了在ARM Mali GPU目标上执行深度学习,您将在主机开发计算机上生成代码。然后,构建和运行可执行程序将生成的代码移动到ARM目标平台。例如,Hikey960是可以执行生成的代码的目标平台之一。

要求

  1. 深度学习工具箱。

  2. MobileNet-V2网络支持包的深度学习工具箱模型。万博1manbetx

  3. GPU编码器接口深度学习图书馆万博1manbetx支持包。要安装支持包,从MATLAB中万博1manbetx选择支持包®附加组件菜单。

  4. 手臂计算库对于计算机视觉和机器学习,必须安装在目标硬件上。有关有关编译器和库的支持版本的信息,请参阅万博1manbetx安装必备产品s manbetx 845

  5. 编译器和库的环境变量。有关更多信息,请参阅环境变量

负载净化网络

  1. 加载预制MobileNet-V2网络。您可以选择加载不同的预制网络以进行图像分类。如果未安装所需的支持软件包,则该软件提供了一个下载链接。万博1manbetx

    net = mobilenetv2;

  2. 物体包含DAGNetwork目的。使用分析(深学习工具箱)功能要显示网络架构的交互式可视化,以检测网络中的错误和问题,并显示有关网络层的详细信息。图层信息包括层激活和学习参数的大小,学习参数的总数,以及经常性层的状态参数的大小。

    analyzeNetwork(净值);

  3. 您要分类的图像必须具有与网络的输入大小相同的大小。对于googlenet,大小imageInputLayer(深学习工具箱)是224-通过-224×3。这班级输出特性classificationLayer(深学习工具箱)包含网络上了解到的类的名称。查看10名随机类名在总共1000。

    ClassNames = Net.Layers(END).Classes;numclasses = numel(classnames);DISP(CLASSNMES(RANDPERM(NUMCLASES,10)))
    公鸡蜂房皂液器蒂蒂车轮长尾枪口木耳七叶树巨石

    有关更多信息,请参阅深度学习图层列表(深学习工具箱)

使用代码生成cnncodegen.

为了生成与ARM计算库代码,使用targetlib的选择cnncodegen.命令。这cnncodegen.命令为此生成C ++代码SeriesNetwork或者DAGNetwork网络对象。

  1. 称呼cnncodegen.'targetlib'指定为'ARM-Compute-Mali'。例如:

    net = googlenet;cnncodegen(网,'targetlib''ARM-Compute-Mali''批量化',1);

    为了'ARM-Compute-Mali', 的价值Batchsize.必须是1

    'targetparams'名称 - 值对参数使您可以指定ARM计算库的图书馆特定参数,而不是在目标ARM Mali GPU时适用。

  2. cnncodegen.命令生成代码,makefile,cnnbuild_rtw.mk和其他支持文件的基础上在万博1manbetx目标硬件生成的代码。该命令将所有在生成的文件代码生成文件夹。

  3. 写C ++的主要功能是通话预测。对于示例主文件与所生成的代码的接口,见ARM的GPU马里深度学习预测

  4. 移动产生代码生成文件夹,并使用您的首选安全文件复制(SCP)从主机开发计算机的ARM硬件的其他文件和Secure Shell(SSH)客户端。建立目标上的可执行程序。

生成的代码

DAG网络被生成为C ++类(cnnmain)含有103个类的数组。发生器减少层的数量的代码是通过卷积和批标准化层的层融合优化。类声明的一个片段,从cnn_exec.hpp文件显示。

cnn_exec.hpp文件

  • 设置()类设置手柄和分配存储器,用于所述网络对象的每一层的方法。

  • 预测()方法调用预测为每个网络中的103层。

  • cnn_exec.cpp文件包含了目标函数的定义cnnmain班级。

二进制文件导出用于层用参数,例如网络中的完全连接和卷积层。例如,文件cnn_cnnmain_conv * _wcnn_cnmain_conv * _b.对应于权重和偏置参数卷积的网络中的图层。代码生成器将这些二进制文件放在其中代码生成文件夹。代码生成器生成库文件cnnbuild并放置所有生成的文件代码生成文件夹。

限制

  • 2-D分组的卷积层不支持ARM Mali GPU的代码生成万博1manbetxNumGroups属性设置为“信道逐”或一个值大于2。

也可以看看

职能

相关话题