本帖最后由 majianjia 于 2019-5-1 19:07 编辑
NNoM (Neural Network on Microcontroller)
是一个轻量化,纯C实现的一个机器学习和神经网络包。AIoT那么火,为何大家却止步于科普文?因为现成的机器学习框架都太复杂太难用。NNoM从一开始就被设计成提供给嵌入式大佬们的一个简单易用的神经网络框架。你不需要会TensorFlow, 只需要用30秒入门Keras。
它拥有以下优点:
- 快速开发: 电脑上训练的 Keras 模型直接转换成 C 文件。
- 默认纯C后端: 移植和使用畅通无阻,支持32/64bit,MCU/PC。
- 支持复杂结构: 支持多种复杂的网络模型结构。
- 完善的文档: 拥有 API 文档,入门指南,优化指南。
- 入门简单: 多个从简单到复杂的例子,完全开源。
MCU 上的神经网络能做什么?
- 语音关键词识别 (KeyWord Spotting)
- 使用运动传感器识别活动状态 (Human Activity Recognition)
- 神经网络控制系统 (替代PID等传统控制方法)
- 图像处理 (带专用加速器的 MCU)
- ...
它轻量但不低能, 它支持二十多种不同的神经网络计算,各种复杂的网络结构。它几乎不依赖硬件平台,同时能在各种32bit 和64bit的平台上编译运行。
它提供一键转换脚本,可以一行代码把刚训练好的Keras模型转换成一个独立的C语言头文件,直接包含在MCU工程内就可以跑起来。NNoM没有特别的依赖,使得它使用上比TensorFlow在使用上要方便很多。
另外,NNoM跟RT-Thread也可以很完美的配合,NNoM使用RTT的mesh 可以直接体验各种不同的例子。他还可以选择开启CMSIS-NN后端,轻松实现2~5倍加速!
最重要的是,它拥有完整的API文档,很多例子和各种各样的教程。
体验第一个例子:RTT例子https://majianjia.github.io/nnom/example_mnist_simple_cn/
下载地址:NNoM GitHub https://github.com/majianjia/nnom