适用于微控制器的 LiteRT

适用于微控制器的 LiteRT 旨在运行机器学习模型 微控制器和其他只有几千字节内存的设备通过 核心运行时在 Arm Cortex M3 上只需 16 KB 大小,并且可以运行许多 模型。它不需要操作系统支持,也不需要任何标准 C 或 C++ 或动态内存分配。

为什么微控制器很重要

微控制器通常是小型低功耗计算设备, 需要基本计算的硬件中嵌入。通过将机器 微控制器的学习,我们能够提高数十亿人的智能 包括家用电器和互联网 物联网设备,无需依赖昂贵的硬件或可靠的互联网 这通常受带宽和功率限制, 会导致延迟时间较长这也有助于保护隐私 离开设备想象一下有没有可以适应日常生活的智能家电 常规的智能工业传感器 问题和日常操作,以及可以帮助孩子在快乐中学习的神奇玩具 和轻松愉悦的方式

支持的平台

适用于微控制器的 LiteRT 是用 C++ 17 编写的,需要 32 位 平台。它经过了针对多种处理器(基于 Arm Cortex-M 系列 并已移植到其他架构,包括 ESP32。通过 框架以 Arduino 库的形式提供。它还可以生成项目 例如 Mbed它是开源的,可以包括在 任何 C++ 17 项目。

支持以下开发板:

浏览示例

每个示例应用都 GitHub 并包含一个 README.md 文件,说明如何将其部署到受支持的 平台。一些示例还有使用 平台,如下所示:

工作流程

要在 微控制器:

  1. 训练模型: <ph type="x-smartling-placeholder">
      </ph>
    • 生成一个小型 TensorFlow 模型,该模型适合您的目标设备和 包含支持的操作
    • 转换为 LiteRT 模型 LiteRT 转换器
    • 转换为 C 字节数组标准工具将其存储在 只读程序内存。
  2. 使用 C++ 库和进程在设备上进行推理 结果。

限制

适用于微控制器的 LiteRT 旨在满足 微控制器开发。如果您使用的是功能更强大的设备(例如 例如 Raspberry Pi 这样的嵌入式 Linux 设备, LiteRT 框架可能更易于集成。

应考虑以下限制:

  • 只支持有限的部分 TensorFlow 运算
  • 仅支持部分设备
  • 需要手动内存管理的低阶 C++ API
  • 不支持设备端训练

后续步骤