1129106_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1129106_zh-CN

1129106_zh-CN

为 i.MX RT6xx 创建 eIQ(TensorFlow Lite 库)演示<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

i.MX RT6xx

RT6xx 是一个跨界 MCU 系列,是一款突破性产品,结合了 MCU 和 DSP 的最佳功能,适用于超低功耗安全机器学习 (ML)/人工智能 (AI) 边缘处理、性能密集型远场语音和沉浸式 3D 音频播放应用。图 1 是 i.MX RT600。
它由一个运行速度高达 300 MHz、具有 32KB FlexSPI 缓存的 Cortex-M33 内核和一个可选的运行速度高达 600MHz、具有 96KB DSP 缓存和 128KB DSP TCM 的 HiFi4 DSP 组成。它还包含 PowerQuad 协处理器中的加密引擎和 DSP/Math 加速器。该设备具有 4.5MB 片上 SRAM。主要功能包括丰富的音频外设、带 PHY 的高速 USB 和先进的片上安全性。有一个 Flexcomm 外设支持多种 UART、SPI、I2C、I2S 等的配置。

2020-04-22_16-11-53.jpg

图1

创建 eIQ(TensorFlow Lite 库)演示

在最新版本的 SDK 中 i.MX RT600,它仍然不包含有关机器学习(ML)/人工智能(AI)的演示,因此需要开发人员自己创建这种演示。
为了实现它,将 eIQ 演示从 i.MX RT1050/1060 至 i.MX RT685 是最快的方法。下面介绍创建 eIQ(TensorFlow Lite 库)演示的步骤。

创建一个新的 C++ 项目

  • 安装 SDK 库

2020-04-22_17-03-11.jpg

图2

  • 使用已安装的 SDK 部分创建新的 C++ 项目
     MCUXpresso IDE 用户指南,第 5 章使用已安装的 SDK Part Support 创建新项目介绍了如何创建新项目,请参阅该指南以了解详细信息

移植 tensorflow-lite

  • 将 tensorflow-lite 库复制到目标项目
    将TensorFlow-lite库对应文件复制到目标项目

2020-04-22_17-26-41.jpg

图3

  • 添加上述文件的路径

2020-04-22_17-29-42.jpg

图4

2020-04-22_17-32-14.jpg

图5

2020-04-22_17-51-12.jpg

图6

移植主要代码

main() 代码来自该帖子: TensorFlow Lite 的“Hello World”

测试

 MIMXRT685 EVK板 (图7),我们通过串行端口记录输入数据:x_value和推断的输出数据:y_value(图8)。

2020-04-22_18-00-55.jpg图7

2020-04-22_18-05-50.jpg

图8

此外,我们使用 Excel 将接收到的数据与我们的实际值进行对比显示,如下图所示。

2020-04-22_18-08-29.jpg

图9

总的来说,它复制了TensorFlow Lite 的“Hello World”的结果

故障排除

  • 默认情况下,创建的项目不支持打印浮动,因此需要通过添加以下符号来启用此功能(图10)。

2020-04-22_22-44-04.jpg

图10

  • 当执行神经网络时,某一层的结果会被输入到后续操作中,因此必须保留一段时间。这些激活层的生命周期取决于它们在图中的位置,每个激活层所需的内存大小由层写入的数组形状控制。这些变化意味着需要随着时间的推移计算一个计划,以便将所有这些临时缓冲区放入尽可能小的内存区域中。目前,这是在解释器首次加载模型时完成的,因此如果内存区域不够大,您就会看到崩溃事件发生。
    就此应用演示而言,默认堆大小为 4 KB,显然,它不足以存储模型的输入、输出和中间张量,因为代码将卡在硬故障中断函数处(图 11)。

2020-04-23_17-49-38.jpg

图11

那么,我们应该分配多大的堆区域呢?这是个好问题。不幸的是,没有简单的答案。不同的模型架构具有不同的输入、输出和中间张量的大小和数量,因此很难知道我们需要多少内存。
这个数字不需要精确——我们可以保留比我们需要的更多的内存——但由于微控制器的 RAM 有限,我们应该尽可能地保持它很小,以便为我们的其余程序留出空间。
我们可以通过反复试验来做到这一点。对于此应用程序演示,在将堆大小增加到之前的十倍后,代码仍然运行良好(图 12)。

2020-04-23_18-02-12.jpg

图12

i.MXRT 600
标记 (1)
无评分
版本历史
最后更新:
‎01-05-2026 06:28 AM
更新人: