人工智能 | TensorFlow 简介_内核_模子
2017年5月,Google宣告了一个专门用于移动开拓的软件栈TensorFlow Lite,是针对移动设备和边缘设备的轻量级办理方案。TensorFlow Lite 可以在 Android、iOS、Edge TPU 和 Raspberry Pi 等移动设备和嵌入式设备上进行推断。
2019年5月,Google的Tensor Flow Lite Micro与ARM的uTensor宣告合并。uTensor可以将机器学习模型转换为可读和独立的C++源文件,简化了与任何嵌入式项目的集成,特殊是为低功耗、资源受限的嵌入式设备而设计,支持广泛的基于Arm Cortex-M内核的微掌握器。
TensorFlow 平台及其生态系统TensorFlow 是一个端到真个机器学习开源平台。由工具、库和社区资源组成的全面、灵巧的生态系统,使研究职员能够推动机器学习最新技能的发展,开拓职员能够轻松构建和支配由机器学习驱动的运用。
针对不同的运用,TensorFlow供应了3种类型的库:
TensorFlow (library) 是可以帮助开拓和演习机器学习模型的核心开源库。TensorFlow Lite 是用于在移动、微处理器和其他边缘设备上支配模型的库。TensorFlow Lite Micro (TFLM) 是在DSP、微掌握器和其他嵌入式目标上运行机器学习模型的库,具有较小的内存占用和极低的功耗。个中,TensorFlow Lite Micro 是 TensorFlow Lite 的一个移植版本,紧张面向微掌握器(MCU)、DSP(digital signal processors)和其他存储资源受限的设备支配的机器学习模型。
TensorFlow Lite Micro可以直接在微掌握器(MCU)上运行,不须要操作系统支持,也不须要任何标准 C/C++ 库和动态内存分配。核心运行时(core runtime)在 Arm Cortex M3 上运行时仅需16KB字节的存储空间。纵然运行语音关键字检测模型,也只需 22KB 字节的存储空间。
利用TensorFlow生态系统的模型优化工具,并另有嵌入式专用的离线和在线优化工具,以减少模型和框架的内存占用。TensorFlow Lite Micro供应了工具、CI以及如何将其集成到各种嵌入式开拓环境中的例子。
TensorFlow Lite Micro 支持的平台适用于微掌握器的 TensorFlow Lite Micro 用 C++ 11 编写而成,须要利用 32 位平台。针对基于 Arm Cortex-M 系列架构的浩瀚处理器,它已经由了广泛的测试,并已移植到其他架构(包括 ESP32)。
TensorFlow Lite Micro功能和组件:
C++ API,其运行时(runtime)在 Cortex M3 上仅需 16KB利用标准的 TensorFlow Lite FlatBuffer 架构(schema)为 Arduino、Keil 和 Mbed 等较为盛行的嵌入式开拓平台预天生的项目文件针对多个嵌入式平台优化演示口语热词检测的示例代码支持的开拓板包括:
Arduino Nano 33 BLE Sense - 基于 Nordic nRF52840 微掌握器,Arm Cortex-M4内核,频率64MHz,运行在 Arm® Mbed™ OS 上SparkFun Edge - 基于Ambiq Micro Apollo3 Blue微掌握器,ARM Cortex-M4F内核,频率48MHzSTM32F746 Discovery kit - STMicroelectronics STM32F746NG微掌握器,Arm® Cortex®-M7内核,频率216MHzAdafruit EdgeBadge - 基于Microchip ATSAMD51J19微掌握器,ARM Cortex-M4F内核,频率120MHzAdafruit TensorFlow Lite for Microcontrollers Kit - 基于Microchip ATSAMD51J19微掌握器,ARM Cortex-M4F内核,频率120MHzAdafruit Circuit Playground Bluefruit - 基于 Nordic nRF52840 微掌握器,Arm Cortex-M4内核,频率64MHzEspressif ESP32-DevKitC - 基于乐鑫的ESP32微掌握, Xtensa® 32-bit LX6内核, 主频达 240 MHzEspressif ESP-EYE - 基于乐鑫的ESP32-S3 SoC,Xtensa® 32 位 LX7内核,主频达 240 MHzWio Terminal:ATSAMD51 - 基于Microchip ATSAMD51P19微掌握器,ARM Cortex-M4F内核,频率 120MHzHimax WE-I Plus EVB Endpoint AI 开拓板 - 基于奇景光电 HX6537-A处理器,Synopsys ARC® EM9D内核,频率达400MHzSynopsys DesignWare ARC EM 软件开拓平台 - ARC EM处理器和子系统Sony Spresense - Sony 多核微处理器,基于ARM® Cortex®-M4F,频率达156MHz社区支持的TFLM例程:
ArduinoCoral Dev Board Micro - NXP RT1176 microcontroller, dual-core MCU with Cortex M7 and M4Espressif Systems Dev BoardsRenesas Boards - Renesas Advanced (RA) 32-bit microcontrollers (MCUs) ,Arm® Cortex®-M33,up to 240MHz(RA8), 60MHz(RA2)Silicon Labs Dev Kits - EFR32xG24 Dev Kit, ARM® Cortex®-M33, 78 MHzSparkfun EdgeTexas Instruments Dev Boards社区支持的内核:
Cortex-MHexagonRISC-VXtensaTensorFlow Lite Micro 的事情流程若要在微掌握器上支配并运行 TensorFlow 模型,必须实行以下步骤:
演习模型:天生小型 TensorFlow 模型,该模型适宜您的目标设备并包含支持的操作。利用 TensorFlow Lite 转换器转换为 TensorFlow Lite 模型。利用标准工具转换为 C 措辞字节数组,以将其存储在设备上的只读程序内存中。利用 C++ 库在设备上进行推断并处理结果。TensorFlow Lite Micro 的限定适用于微掌握器的 TensorFlow Lite 专为知足微掌握器开拓的特定限定条件而设计。如果您利用的是更强大的设备(例如 Raspberry Pi 等嵌入式 Linux 设备),那么标准 TensorFlow Lite 框架可能更易于集成。
应考虑以下限定:
支持的 TensorFlow 操作有限支持的设备有限须要手动管理内存的低阶 C++ API不支持设备端演习本文系作者个人观点,不代表本站立场,转载请注明出处!