主要内容

生成int8代码深入学习网络

深度学习使用神经网络包含许多处理层的体系结构,包括卷积层。深度学习模型通常工作在大的带安全标签的数据集。对这些模型进行推理计算密集型,消耗大量的内存。神经网络使用内存来存储输入数据,参数(权重),激活每一层的输入通过网络传播。深在MATLAB神经网络训练®使用单精度浮点数据类型。即使网络小需要大量的内存和硬件来执行这些浮点算术运算。这些限制可以抑制部署深度学习模型的设备计算能力较低,规模较小的内存资源。通过使用低精度存储重量和激活,你可以减少网络的内存需求。

您可以使用深度学习工具箱™与深度学习工具箱串联模型量化库支持包减少内存占用的深层神经网络通过量化权重,偏见,和激活卷积层8位整数数据类型。金宝app然后,您可以使用MATLAB编码器™为网络生成优化的代码。

手臂Cortex-A处理器

生成的代码利用了手臂®处理器SIMD通过使用手臂计算库。生成的代码可以集成到你的项目源代码,静态或动态库,或可执行文件,您可以部署到各种手臂Cortex-A CPU平台如覆盆子π®。手臂上部署代码Cortex-A处理器,您必须使用手臂20.02.1计算库版本。

金宝app支持层和类

你可以为这些层生成c++代码使用手臂的计算库和执行推理在8位整数的计算:

c++代码生成等深度学习网络支持金宝appDAGNetwork(深度学习工具箱)SeriesNetwork(深度学习工具箱)对象。

生成代码

来生成代码执行推理计算在8位整数,在你coder.ARMNEONConfig对象dlcfg这些额外的属性设置:

dlcfg。CalibrationResultFile =“dlquantizerObjectMatFile”;dlcfg。数据类型=“int8”;

另外,在MATLAB编码器应用程序,深度学习选项卡,设置目标库臂计算。然后设置数据类型校准结果文件路径参数。

在这里“dlquantizerObjectMatFile”MAT-file的名称吗dlquantizer(深度学习工具箱)生成特定的校准数据。校准的目的,设置ExecutionEnvironment财产的dlquantizer对象“CPU”

否则,按照中描述的步骤代码生成与臂计算深度学习网络图书馆

例如,看到的为深入学习网络生成INT8代码树莓π

手臂Cortex-M处理器

生成的代码利用5.7.0 CMSIS-NN库的版本,可以集成到您的项目作为一个静态库,您可以部署到不同的手臂Cortex-M CPU平台。

金宝app支持层和类

代码生成的fullyConnectedLayer(深度学习工具箱)对象,该对象代表了一个完全连接层,使用CMSIS-NN库并执行推理计算在8位整数。

你深入学习网络也可以包含以下层。生成的代码执行计算的这些层32位浮点类型。

  • lstmLayer(深度学习工具箱)对象,它表示一个长短期记忆层。的价值SequenceLength你通过预测必须是一个编译时常量。

  • softmaxLayer(深度学习工具箱)对象,该对象代表一个softmax层。

  • 输入和输出层。

C代码生成等深度学习网络支持金宝appSeriesNetwork(深度学习工具箱)对象和DAGNetwork(深度学习工具箱)可以转换为对象SeriesNetwork对象。

生成代码

在8位整数来生成代码执行推理计算通过使用CMSIS-NN库,在你coder.CMSISNNConfig对象dlcfg,设置CalibrationResultFile属性:

dlcfg。CalibrationResultFile =“dlquantizerObjectMatFile”;

另外,在MATLAB编码器应用程序,深度学习选项卡,设置目标库CMSIS-NN。然后设置校准结果文件路径参数。

在这里“dlquantizerObjectMatFile”MAT-file的名称吗dlquantizer(深度学习工具箱)生成特定的校准数据。校准的目的,设置ExecutionEnvironment财产的dlquantizer对象“CPU”

例如,看到的为深入学习网络生成INT8代码Cortex-M目标

另请参阅

应用程序

功能

对象

相关的话题