4335| 0
|
[动态] 分享8 个TinyML框架和兼容硬件平台(TensorFlow Lite、Edge ... |
TinyML 框架提供了强大而高效的基础架构,使组织和开发人员能够有效地利用其数据并在边缘设备上部署高级算法。这些框架提供了专门设计用于推动 Tiny Machine Learning 战略计划的各种工具和资源。本文重点介绍了用于 TinyML 实现的 8 个知名框架,例如 TensorFlow Lite (TF Lite)、Edge Impulse、PyTorch Mobile、uTensor,以及 STM32Cube.AI、NanoEdgeAIStudio、NXP eIQ 和 Microsoft 的嵌入式学习库等平台。它还概述了这些框架的兼容硬件平台和目标应用程序,帮助用户快速识别最合适的 TinyML 框架。 什么是 TinyML?TinyML 是机器学习的一个分支,专注于在低功耗、小尺寸微控制器(如 Arduino)上创建和实施机器学习模型。机器学习模型需要大量计算能力。它不能用于在依靠电池供电的设备上制作模型,在这种情况下使用微型机器学习 (tinyML)。 为什么我们需要 TinyML?TinyML 支持在小型微控制器(包括 Raspberry Pi 和 ESP32 等设备)上执行机器学习模型。虽然这些设备非常出色,但即使是最小的 Raspberry Pi 也会消耗数百毫瓦的功率,与主 CPU 类似。 tinyML 可以实现于:
什么是 TinyML 框架?TinyML 框架是一种专用软件或工具,可帮助开发人员和工程师训练专为部署在边缘设备和嵌入式系统上的机器学习模型。这些平台提供必要的基础设施、算法和资源,以促进 Tiny 机器学习 (TinyML) 模型的训练过程,这些模型经过优化,可在资源受限且功耗低的设备上运行。TinyML 框架通常支持数据收集、模型训练、优化和部署在边缘设备上等任务,从而可以开发针对边缘计算环境量身定制的高效机器学习模型。 8 个 TinyML 框架1. TensorFlow LiteTensorFlow 是 Google 的开源机器学习框架,可帮助快速开发机器学习模型。对于 TinyML,有 TensorFlow Lite Micro,它是 TensorFlow 的专用版本,适用于微控制器和其他只有几千字节内存的设备。核心运行时在 Arm Cortex M3 上仅占 16 KB,可以运行许多基本模型。它不需要操作系统支持、任何标准 C 或 C++ 库或动态内存分配。它主要与Arm Cortex-M 系列处理器兼容。ESP32端口也可用。 TensorFlow Lite
主要优势
限制适用于微控制器的 TensorFlow Lite 专为微控制器开发的特定约束而设计。如果您正在开发功能更强大的设备(例如,Raspberry Pi 等嵌入式 Linux 设备),则标准 TensorFlow Lite 框架可能更易于集成。 应考虑以下限制:
2. 边缘脉冲Edge Impulse 提供最新的机器学习工具,使所有企业都能构建更智能的边缘产品。Edge Impulse 无疑是任何人收集数据、训练模型并将其部署在微控制器上的最简单方法。 Edge Impulse 的主要优势边缘 AI 生命周期Edge Impulse 可帮助完成边缘 AI 生命周期的每个步骤,包括收集数据、提取特征、设计机器学习 (ML) 模型、训练和测试这些模型以及将模型部署到终端设备。Edge Impulse 可轻松插入其他机器学习框架,以便您可以根据需要扩展和自定义模型或管道。 边缘优化神经 (EON™) 编译器优化神经 (EON™) 编译器,与微控制器版 TensorFlow Lite 相比,它可以让您在减少 25-55% 的 RAM 和减少高达 35% 的闪存的情况下运行神经网络,同时保持相同的准确性。 以下是 EON 对 Edge Impulse 中典型模型的影响示例。下面您将看到在 Cortex-M4F 上运行的带有 2D 卷积神经网络的关键字识别模型的每次推理时间、RAM 和 ROM 使用情况。顶部:EON,底部:使用 TensorFlow Lite for Microcontrollers 运行的相同模型。 在 EON 下运行的 2D 卷积神经网络
边缘脉冲限制兼容性问题某些高级定制选项、与特定硬件的兼容性或对于机器学习和物联网技术新手的学习曲线存在一些限制。 有限定制在构建非常复杂或专业的模型方面,该平台可能会受到一定限制。具有高级机器学习需求的用户可能需要更广泛的自定义选项或对更高级模型架构的支持。 3.PyTorch 移动版它属于 PyTorch 生态系统,旨在支持从训练到将机器学习模型部署到智能手机(例如 Android、iOS)的所有阶段。有几种 API 可用于预处理移动应用程序中的机器学习(PyTorch,2021 年)。它可以支持 TorchScript IR 的脚本编写和跟踪。针对 ARM CPU 的 XNNPACK 8 位量化内核提供了进一步的支持。它还可以支持 GPU、数字信号处理器和神经处理单元。通过移动解释器为手机部署铺平了优化设施。目前,它支持图像分割、对象检测、视频处理、语音识别和问答任务。 主要特点:
PyTorch 与 TensorFlow
4. uTensoruTensor 是一个轻量级机器学习推理框架,针对 Arm 平台进行了优化,基于 TensorFlow。它使用 Keras 进行训练,获取神经网络模型。然后将训练好的模型转换为 C++。uTensor 有助于转换模型,以便在 Mbed、ST 和 K64 板上进行适当部署。uTensor 是一个小尺寸模块,仅需 2 KB 磁盘空间。Python SDK 用于从头开始定制 uTensor。它依赖于以下工具集,例如 Python、uTensor-CLI、Jupyter、Mbed-CLI 和 ST-link(用于 ST 板)。首先,创建一个模型,然后定义量化效果。下一步是为合适的边缘设备生成代码。 在 TensorFlow 中,模型以流程的方式构建和训练。uTensor 获取模型并生成 .cpp 和 .hpp 文件。这些文件包含用于推理的生成的 C++11 代码。在嵌入式端使用 uTensor 就像复制粘贴一样简单。 主要特点:
5.STM32Cube.AI它是一款代码生成和优化软件,可让基于 STM32 ARM Cortex M 的开发板更轻松地完成机器学习和 AI 相关任务。使用 STM32Cube.AI 将神经网络转换为最合适 MCU 的优化代码,即可直接在 STM32 开发板上实现神经网络。它可以在运行时优化内存使用情况。它可以使用任何由传统工具(如 TFL、ONNX、Matlab 和 PyTorch)训练的模型。该工具实际上是原始 STM32CubeMX 框架的扩展,可帮助 STM32Cube.AI 执行目标 STM32 边缘设备的代码生成和中间件参数估计。 主要特点:
STM32Cube.AI 与 NanoEdgeAIStudio7. NXP eIQ® 机器学习软件开发环境NXP Semiconductors eIQ 机器学习软件开发环境是库和开发工具的组合,可与 NXP 微处理器和微控制器配合使用。eIQ 机器学习软件包括 DeepViewRT™ 专有推理引擎。该软件从嵌入式系统上的神经网络 (NN) 人工智能 (AI) 模型进行推理。eIQ 机器学习 (ML) 软件提供在边缘部署各种 ML 算法的关键要素(eIQ = 边缘智能),包括推理引擎、NN 编译器、视觉和传感器解决方案以及硬件抽象层。支持四个主要推理引擎和库 - OpenCV、Arm® NN、Arm CMSIS-NN、TensorFlow Lite 和专有 DeepViewRT 运行时推理。 NXP eIQ® 机器学习软件开发环境
主要特点:
8.嵌入式学习库(ELL)微软开发了 ELL,用于支持 TinyML 生态系统的嵌入式学习。它为 Raspberry Pi、Arduino 和 micro:bit 平台提供支持。部署在这些设备中的模型与互联网无关,因此不需要云访问。它目前支持图像和音频分类。该库还提供了一组软件工具和一个可选的 Python 接口,用现代 C++ 编写 Microsoft 嵌入式学习库 (ELL)
8 种 TinyML 框架的兼容硬件平台您可能对 8 个 TinyML 训练平台支持哪些硬件平台感兴趣。下表列出了支持设计环境(即框架/库)的可用硬件平台的详细信息。 8 个 TinyML 框架的目标应用结论本文探讨了 8 个最著名的 TinyML 框架,详细介绍了它们的主要功能和局限性。在这些平台中,TensorFlow 以其出色的灵活性脱颖而出,支持 20 多个硬件平台,例如 Arduino Nano、Sparkfun Edge 和 STM32F746 Discovery Kit。它适用于一系列目标应用,包括图像和音频分类、对象检测、姿势估计、语音和手势识别。Edge Impulse 引入了边缘优化神经 (EON™) 编译器,能够将神经网络 RAM 使用率降低 25-55%,将闪存使用率降低高达 35%。与 TensorFlow 相比,PyTorch 提供了更快的原型设计,而 uTensor 是一个紧凑型模块,仅需要 2 KB 的磁盘空间。此外,行业领导者 ST、NXP 和 Microsoft 也推出了他们的 TinyML 实施平台,进一步推动了 TinyML 技术的发展。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed