Jack Ferrari,Mathworks
根据R2021A,您可以使用Simulink编码器和金宝app嵌入式编码器来生成符合通用ANSI / ISO标准的C和C ++代码,无依赖于第三方深度学习库,用于包含深度学习网络的Simulink模型。将卷积和经常性神经网络与来自深度学习工具箱的块一起使用,包括块,包括状态预测和状态分类块。金宝app将预处理和后处理应用于时间序列数据,以便在Simulink模型中使用。金宝app验证生成的代码的数值等对等嵌入式编码器中的循环(SIL)和循环(PIL)测试支持的循环(PIL)测试支持。金宝app将生成的代码部署到可以编译C和C ++的任何处理器,包括ARM Cortex-M处理器,数字信号处理器,微控制器等。例如,将长短期内存(LSTM)网络部署到STM32F7发现板,为STMicroelectronics发现板的嵌入式编码器硬件支持包。金宝app
从R2021a开始,您现在可以使用Simulink Code金宝appr和Embedded Coder从包含深度神经网络的Simulink模型生成通用的C和c++代码。通用的C和c++代码不依赖于第三方库,因此,可以部署到任何编译C和c++代码的嵌入式处理器,包括ARM Cortex-M系列处理器、dsp和来自各种设备供应商的微控制器。
可以为Simulink中的卷积和反复性深度学习神经网络生成通用C和C ++代码。金宝app您可以使用深度学习工具箱的块将网络对象包含在Simulink模型中,包括在R2021A或MA金宝appTLAB功能块中引入的状态分类和状态预测块。通用C和C ++代码生成支持各种网络和层。金宝app可以在我们的文档中找到完整列表。
现在让我们从Simulink部署一个深度学习网络到ARM Cortex-M处理器。金宝app在本例中,我们将使用LSTM网络来预测涡扇发动机的剩余使用寿命。预先训练的网络接收来自17个引擎传感器的序列数据,并输出引擎剩余使用寿命的预测(以周期衡量)。将时间序列输入数据以确定的工作空间块输入模型,然后将其发送到预测神经网络块。
使用深网络设计器应用程序,我们可以深入了解网络,并看到它包含六层,包括LSTM层。让我们在Simulink中模拟模型。金宝app从模拟中,我们可以看到预先训练的神经网络预测在这里所示的每个观测中的涡扇发动机的剩余使用寿命。预测值紧密遵循实际值,具有20.37的根均方误差。
现在让我们从模型中生成通用C代码并将其部署到ARM Cortex-M处理器。在配置参数中,我们将选择STM32F746G-Discovery板作为我们的硬件板。在代码生成下,我们将系统目标文件设置为使用嵌入式编码器和目标语言到C.我们将使用新工具为Toolchain使用Arm嵌入式处理器。最后,我们将确保将深度学习目标库设置为无以删除第三方库上的任何依赖项。使用这些设置到位,让我们为包含神经网络的子系统生成代码。
在代码生成报告中,我们可以看到生成的文件不包括任何外部深度学习库。让我们在生成的代码中搜索模型步骤函数。看看这个阶跃函数,我们可以看到它包含了一个预测方法。在预测方法内部,我们可以看到一组定义用于神经网络的权重和偏差。向下滚动,我们可以看到用于计算神经网络在每个时间步骤中传入的时间序列输入的输出的代码。
使用成功生成的代码,让我们将其部署到目标。我们将使用处理器来循环执行,以便在数字上验证生成的代码的输出。在第二种模型中,我们将先前在模型引用中看到的相同预测块并将其仿真模式设置为Pil。在SIL / Piler Manager应用程序中,我们将将模拟模式设置为SIL / PIL,只能收集运行生成的代码的结果,并选择SIL / PIL模式的模型块作为我们的系统。
在模拟之后,我们将在硬件上运行通用C代码的预测输出与在Simulink中的预测输出进行比较。金宝app现在让我们运行生成的代码。在PIL模式下,首先为模型参考块生成代码。我们和皮层- m发现板建立了联系。最后,构建源代码并下载到它。
左侧的绘图集显示了运行生成的代码在硬件上的结果紧密遵循实际的测试数据。为了验证代码的数值准确性,我们在右侧创建了第二组绘图,以显示在我们的目标硬件上运行模拟的同时在运行模拟时显示预测的差异。金宝app所有10个观察结果都表明,在大约500,000岁的公差范围内,对神经网络的准确性可忽略不计的影响。
总的来说,我们已经看到了如何在Simulink中从深度学习网络生成通用的C和c++代码,而不依赖于优化库,有效地将其扩展到几乎任何嵌入式处理器。金宝app此外,在循环测试中使用处理器,我们验证生成代码的输出与Simulink模拟的输出相匹配。金宝app要了解更多关于Simulink中的深度学习代码生成和MATLAB,请点击下面的链接或参考我们的文档。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。