主要内容

深度学习的先决条件MATLAB编码器

MathWorkss manbetx 845

使用MATLAB®编码器™为深入学习网络生成代码,您还必须安装:

  • 深度学习工具箱™

  • 为深入学习MATLAB编码器接口

生成的代码,不使用第三方库

您可以使用MATLAB编码器生成通用的C或c++代码深入学习网络。这样的C或c++代码不依赖于任何第三方库。有关更多信息,请参见生成通用的C / c++代码深入学习网络

MATLAB编码器定位和使用一个支持安装编译器。万博1manbetx编译器支持的列表,请参阅万博1manbetx万博1manbetx支持和兼容的编译器在MathWorks®的网站。

您可以使用墨西哥人设置改变默认的编译器。看到改变默认的编译器

c++编译器必须支持c++ 11。万博1manbetx

在Windows上®,生成通用的C或c++不使用任何第三方库的代码,使用微软®Visual Studio®或MinGW®编译器。

生成的代码使用第三方库

您可以使用MATLAB编码器为深入学习网络生成c++代码部署到英特尔®或手臂®处理器。生成的代码利用深度学习库优化为目标CPU。硬件和软件需求依赖于目标平台。

请注意

所需的软件的路径库不能包含空格或特殊字符,如括号。在Windows操作系统中,允许特殊字符和空格只有8.3文件名被启用。8.3文件名称的更多信息,请参阅Windows文档。

硬件和软件需求

英特尔cpu 手臂Cortex-A cpu 手臂Cortex-M cpu
硬件需求

英特尔处理器支持英特尔高级向量扩展2(英特万博1manbetx尔AVX2)指令。

手臂Cortex-A处理器支持万博1manbetx霓虹灯扩展。

手臂Cortex-M处理器。

软件库

英特尔数学内核库深层神经网络(MKL-DNN) v1.4。看到https://01.org/onednn

不使用预构建图书馆因为一些必需的文件丢失。相反,从源代码构建图书馆。看到指令用于构建图书馆GitHub上®

对构建的更多信息,看到这篇文章MATLAB的答案™://www.tianjin-qmedu.com/matlabcentral/answers/447387-matlab-coder-how-do-i-build-the-intel-mkl-dnn-library-for-deep-learning-c-code-generation-and-dep

使用注意:

  • 当生成墨西哥人函数,在MATLAB主机运行,建议您使用MKL-DNN目标而不是生成通用的C / c++代码。生成的代码使用MKL-DNN库可能有更好的性能比通用代码。

  • 几个网络,MKL-DNN库的性能可能会缓慢AVX2机。使用AVX512机器利用充分表现功能的MKL-DNN生成的代码。

臂计算为计算机视觉和机器学习库,版本19.05和20.02.1。看到https://developer.arm.com/ip-s manbetx 845products/processors/machine-learning/compute-library

指定的版本号coder.ARMNEONConfig配置对象。默认的版本号是v20.02.1。

不使用预构建的图书馆,因为它可能与手臂上的编译器不兼容的硬件。相反,从源代码构建图书馆。构建图书馆在你的主机或直接在目标硬件。看到指令用于构建图书馆20.02.1版本在GitHub上。

该文件夹包含库文件等libarm_compute.so应该叫自由。如果文件夹命名构建重命名文件夹自由

对构建的更多信息,看到这篇文章MATLAB的答案://www.tianjin-qmedu.com/matlabcentral/answers/455590-matlab-coder-how-do-i-build-the-arm-compute-library-for-deep-learning-c-code-generation-and-deplo

生成部署代码执行推理计算在ARM处理器8位整数,您必须使用手臂20.02.1计算库版本。

CMSIS-NN 5.7.0库版本。看到https://developer.arm.com/tools-and-software/embedded/cmsis

构建图书馆在你的主机使用构建步骤中提供:

操作系统支持万博1manbetx

Windows、Linux®,macOS

Windows和Linux。

Windows和Linux。

万博1manbetx支持编译器

MATLAB编码器定位和使用一个支持安装编译器。万博1manbetx编译器支持的列表,请参阅万博1manbetx万博1manbetx支持和兼容的编译器在MathWorks网站上。

您可以使用墨西哥人设置改变默认的编译器。看到改变默认的编译器

c++编译器必须支持c++ 11。万博1manbetx

在Windows上,来生成代码使用英特尔MKL-DNN库使用codegen命令,使用微软Visual Studio2015年或更晚时间才能知晓。

请注意

在Windows上,生成墨西哥人使用英特尔MKL-DNN库函数,MinGW编译器不支持。万博1manbetx

其他

开源的计算机视觉库(OpenCV),需要v3.1.0手臂Cortex-A基础深度学习的例子。

注意:示例需要单独的库等opencv_core.libopencv_video.lib。的OpenCV计算机视觉库附带工具箱™和没有所需的库OpenCV安装程序没有安装它们。因此,您必须下载OpenCV源和构建库。

有关更多信息,请参阅OpenCV文档。

环境变量

MATLAB编码器使用环境变量来定位所需的库来生成代码深入学习网络。

平台 变量名 描述
窗户 INTEL_MKLDNN

英特尔MKL-DNN库的根文件夹路径安装。

例如:

C:\Program Files\mkl-dnn

ARM_COMPUTELIB

路径的根文件夹臂计算库安装在手臂的目标硬件。

例如:

/usr/local/arm_compute

ARM_COMPUTELIB手臂上的目标硬件。

CMSISNN_PATH

路径的根文件夹CMSIS-NN库安装在手臂的目标硬件。

例如:

/usr/local/cmsis_nn

CMSISNN_PATH手臂上的目标硬件。

路径

路径英特尔MKL-DNN库文件夹。

例如:

C:\Program Files\mkl-dnn\lib

Linux LD_LIBRARY_PATH

路径英特尔MKL-DNN库文件夹。

例如:

/usr/local/mkl-dnn/lib/

路径臂计算库文件夹在目标硬件。

例如:

/usr/local/arm_compute / lib /

LD_LIBRARY_PATH手臂上的目标硬件。

INTEL_MKLDNN

英特尔MKL-DNN库的根文件夹路径安装。

例如:

/usr/local/mkl-dnn/

ARM_COMPUTELIB

路径的根文件夹臂计算库安装在手臂的目标硬件。

例如:

/usr/local/arm_compute /

ARM_COMPUTELIB手臂上的目标硬件。

CMSISNN_PATH

路径的根文件夹CMSIS-NN库安装在手臂的目标硬件。

例如:

/usr/local/cmsis_nn

CMSISNN_PATH手臂上的目标硬件。

macOS INTEL_MKLDNN

英特尔MKL-DNN库的根文件夹路径安装。

例如:

/usr/local/mkl-dnn

UNIX®操作系统基于ARM Cortex-A目标 OPENCV_DIR

路径构建OpenCV的文件夹。安装使用OpenCV的深度学习OpenCV的例子。

例如:

/usr/local/opencv/build

请注意

为树莓π生成代码®使用MATLAB为万博1manbetx覆盆子π硬件支持包经常,你必须设置环境变量。说明,请参阅//www.tianjin-qmedu.com/matlabcentral/answers/455591-matlab-coder-how-do-i-setup-the-environment-variables-on-arm-targets-to-point-to-the-arm-compute-li

请注意

使用OpenCV的构建和运行示例,您必须安装在目标板上的OpenCV库。对于OpenCV安装在Linux上,确保库文件的路径和头文件的路径在系统路径。默认情况下,库和头文件安装在标准的位置等/usr/local/lib//usr/local/include/opencv,分别。

对于OpenCV安装在目标板上,设置OPENCV_DIR路径环境变量所描述的在前面的桌子上。

请注意

你可以提高生成的代码的性能对于英特尔CPU-s通过设置环境变量,控制OpenMP线程绑定的物理处理单元。例如,在Linux平台上,设置KMP_AFFINITY环境变量来散射。使用英特尔CPU-s为其他平台,您可以设置类似的环境变量来提高生成的代码的性能。

相关的话题