此示例显示了如何使用cnncodegen.
用于生成代码的图像分类应用程序,该应用程序在ARM®MaliGPU上使用深度学习。该示例使用MobileNet-V2.
DAG网络执行图像分类。生成的代码利用了用于计算机视觉和机器学习的ARM计算库。
ARM Mali GPU基于硬件。例如,Hikey960是包含Mali GPU的目标平台之一。
ARM计算图书馆上的目标ARM硬件为Mali GPU构建。
在目标ARM硬件上的开源计算机视觉库(OpenCV v2.4.9)。
编译器和库的环境变量。确保这一点ARM_COMPUTE.
和ld_library_path.
在目标平台上设置变量。有关编译器和库支持的版本的信息,请参见万博1manbetx第三方硬件(GPU编码器)。设置环境变量,请参阅设置先决条件产品s manbetx 845(GPU编码器)。
加载净化MobileNet-V2.
网络可用MobileNet-V2网络的深度学习工具箱模型
。
net = mobilenetv2;
该网络包含155层,包括卷积,批量归一化,Softmax和分类输出层。当analyzeNetwork ()
功能显示网络架构的交互式图和包含有关网络层的信息的表。
分析(网);
对于ARM目标的深度学习,您可以在主机开发计算机上生成代码。要构建和运行可执行程序,将生成的代码移动到ARM目标平台。目标平台必须有ARM Mali GPU。例如,HiKey960是您可以在其上执行本例中生成的代码的目标平台之一。
打电话给cnncodegen.
功能,指定目标库为ARM-Compute-Mali
。
cnncodegen(网,'targetlib'那'ARM-Compute-Mali');
通过使用首选的SCP(安全复制协议)或安全shell文件传输协议(SSH)客户端,将生成的Codegen文件夹和其他所需文件从主机开发计算机移动到目标平台。
例如,在Linux®平台上,将文件传输到Hikey960,使用SCP命令格式:
SCP (sourcefile) [username]@[targetname]:~/');
系统('sshpass -p password scp main_mobilenet_arm_generic.cpp username @ targetname:〜/');系统('sshpass -p password SCP peppers_mobilenet.png username@targetname:~/');系统('sshpass -p password scp makefile_mobilenet_arm_generic.mk username @ targetname:〜/');系统('sshpass -p password scp synswords.txt用户名@ targetname:〜/');系统('sshpass -p password scp -r codegen username @ targetname:〜/');
在Windows®平台上,您可以使用pscp
具有腻子安装的工具。例如:
系统('pscp -pw password-r codegen用户名@ targetname:/ home / username');
PSCP实用程序必须在您的路径上或当前文件夹中。
要在目标平台上构建库,请使用生成的makefilecnnbuild_rtw.mk.
。
例如,要在HiKey960上构建库:
系统('sshpass -p password ssh用户名@ targetname“make -c / home / username / codegen -f cnnbuild_rtw.mk”');
在Windows平台上,您可以使用腻子
命令用-SSH.
登录并运行make命令的参数。例如:
系统('Putty -ssh用户名@ tartentName -pw密码');
要在目标平台上构建和运行可执行文件,请使用格式的命令:make -c / home / $(用户名)
和./execfile -f makefile_mobilenet_arm_generic.mk.
例如,在HiKey960上:
使- c/home/usrnameARM_MOBILENET.- fmakefile_mobilenet_arm_generic.mk.
在指定输入图像文件的ARM平台上运行可执行文件。
./mobilenet_exe peppers_mobilenet.png.
对输入图像文件的前5个预测是:
版权所有2019 The MathWorks, Inc.