add nnom pack and example
This commit is contained in:
39
components/ai/nnom/README.md
Normal file
39
components/ai/nnom/README.md
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
# Neural Network on Microcontroller (NNoM)
|
||||
[](https://travis-ci.com/majianjia/nnom)
|
||||
[](https://opensource.org/licenses/Apache-2.0)
|
||||
[](https://zenodo.org/badge/latestdoi/166869630)
|
||||
|
||||
NNoM is a high-level inference Neural Network library specifically for microcontrollers.
|
||||
|
||||
介绍详情可以参考:https://github.com/majianjia/nnom
|
||||
|
||||
原作者提供了基于keras的训练模型方法,以及如何配置NNoM的详细文档介绍
|
||||
|
||||
|
||||
|
||||
本项目提供一个基于NNoM的软件包,方便在tos上的快捷移植(测试通过平台为stm32l496ZG)
|
||||
|
||||
mnist示例可以参考board/NUCLEO_STM32L496ZG/KEIL/nnom_mnist
|
||||
|
||||
## 在TencentOS-tiny上的使用说明
|
||||
|
||||
1. 在keil工程里添加components / ai / nnom中的src文件夹下的backends、core、layers三个文件夹中的全部.c文件
|
||||
2. 在keil工程中包含inc和port文件夹中的全部头文件
|
||||
3. 在nnom_port.h指定内存使用方法(测试示例中开启了 NNOM_USING_STATIC_MEMORY宏 ),若使用非静态内存方法需要将nnom_malloc(n)和nnom_free(n)定义为os本身的内存api,对tos是tos_mmheap_alloc(n)和tos_mmheap_free(n)
|
||||
4. 若使用静态内存,则需要定义static_buf[size]并使用nnom_set_static_buf(static_buf, sizeof(static_buf))函数去指定静态内存地址与大小,并根据模型需要调整静态内存大小。
|
||||
5. 编写示例函数,参考:example/nnom_mnsit中的nnom_mnist_example写法,按照需要实现系统api,比如使用tos_systick_get()去获取系统tick,从而计算推理时间。
|
||||
|
||||
|
||||
|
||||
## 注意事项
|
||||
|
||||
在keil下确认printf已经成功实现(检查microlib选项),并注意选择ARM Compiler为Use default compiler version 5
|
||||
|
||||
|
||||
|
||||
## Licenses
|
||||
|
||||
NNoM is released under Apache License 2.0 since nnom-V0.2.0.
|
||||
License and copyright information can be found within the code.
|
||||
|
Reference in New Issue
Block a user