肝了两个周末的TinyMaix终于发布啦,欢迎来围观点star:https://github.com/sipeed/TinyMaix
TinyMaix是面向单片机的超轻量级的神经网络推理库,即TinyML推理库,可以让你在任意单片机上运行轻量级深度学习模型~
关键特性
1. 核心代码少于400行(tm_layers.c+tm_model.c+arch_O0.h), 代码段(.text)少于3KB
2. 低内存消耗,甚至Arduino ATmega328 (32KB Flash, 2KB Ram) 都能基于TinyMaix跑mnist(手写数字识别)
3. 支持INT8/FP32模型,支持keras h5或tflite模型转换
4. 支持多种芯片架构的专用指令优化: ARM SIMD/NEON/MVEI,RV32P, RV64V
5. 友好的用户接口,只需要load/run模型~
6. 支持全静态的内存配置(无需malloc)
7. 即将支持MaixHub在线模型训练
在Arduino ATmega328上运行mnist demo
mnist demo
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
000000000077AFF9500000000000
000000000AFFFFFFD10000000000
00000000AFFFD8BFF70000000000
00000003FFD2000CF80000000000
00000004FD10007FF40000000000
00000000110000DFF40000000000
00000000000007FFC00000000000
0000000000004FFE300000000000
0000000000008FF9000000000000
00000000000BFF90000000000000
00000000001EFE20000000000000
0000000000CFF800000000000000
0000000004FFB000000000000000
000000001CFF8000000000000000
000000008FFA0000000000000000
00000000FFF10000000000000000
00000000FFF21111000112999900
00000000FFFFFFFFA8AFFFFFFF70
00000000AFFFFFFFFFFFFFFA7730
0000000007777AFFF97720000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
===use 49912us
0: 0
1: 0
2: 89
3: 0
4: 1
5: 6
6: 1
7: 0
8: 0
9: 0
### Predict output is: Number 2, prob=89
## TinyMaix 设计思路
TinyMaix 是专为低资源的单片机设计的AI神经网络推理框架,通常被称为TinyML
现在已经有很多TinyML推理库,比如TFLite micro, microTVM, NNoM, 那为什么我们又捏了TinyMaix这个轮子呢?
TinyMaix是两个周末业余时间完成的项目,所以它足够简单,可以再30分钟内走读完代码,可以帮助TinyML新手理解它是怎么运行的。
TinyMaix希望成为一个足够简单的TinyML推理库,所以它放弃了很多特性,并且没有使用很多现成的NN加速库,比如CMSIS-NN
在这个设计思路下,TinyMaix只需要5个文件即可编译~
我们希望TinyMaix可以帮助任何单片机运行AI神经网络模型, 并且每个人都能移植TinyMaix到自己的硬件平台上~
剩余内容因为是markdown格式,在论坛上阅读不友好,可以移步github查看:https://github.com/sipeed/TinyMaix
离线
Linux编译成功了,但是不会用.
离线
如果有个具体的案例就更好了
离线
出一个使用视频教程,只给出一个片段,看懂的人估计不多,懂的人估计也不会用这个
离线