本帖最后由 sunsili 于 2023-5-9 15:13 编辑
我在STM32单片机上跑神经网络算法[color=rgba(0, 0, 0, 0.3)]
这里使用官方提供的模型进行测试,用keras框架训练:
https://github.com/Shahnawax/HAR-CNN-Keras
模型介绍
存储库包含以下文件 - HAR.py,Python脚本文件,包含基于CNN的人类活动识别(HAR)模型的Keras实现,
- actitracker_raw.txt、包含此实验中使用的数据集的文本文件,
- model.h5,一个预训练模型,根据训练数据进行训练,
- evaluate_model.py、Python 脚本文件,其中包含评估脚本。此脚本在提供的 testData 上评估预训练 netowrk 的性能,
- testData.npy,Python 数据文件,包含用于评估可用预训练模型的测试数据,
- groundTruth.npy,Python 数据文件,包含测试数据的相应输出的地面真值和
- README.md.
1.这里默认大家都已经安装好了STM32CubeMX软件。 然后按照下面的步骤安装好CUBE.AI的扩展包
接下来就是熟悉得新建工程了
接下来就是配置下载接口和外部晶振了。
选择Software Packs,进入后把AI相关的两个包点开,第一个打上勾,第一个选择Validation。
- System Performance工程:整个应用程序项目运行在STM32MCU上,可以准确测量NN推理结果,CP∪U负载和内存使用情况。使用串行终端监控结果(e.g.Tera Term)
- Validation工程:完整的应用程序,在桌面PC和基于STM32 Arm Cortex-m的MCU嵌入式环境中,通过随机或用户测试数据,递增地验证NN返回的结果。与 X-CUBE-A验证工具一起使用。
- Application Template工程:允许构建应用程序的空模板项目,包括多网络支持。
选择刚刚配置的串口作为调试用。
点击分析,可从中看到模型压缩前后的参数对比
致此,模型验证完成,下面开始模型部署 四、模型转换与部署最后点击GENERATE CODE生成工程。
选择好下载器后就可以下载代码了。
代码烧写在芯片里后,回到CubeMX中下图所示位置,我们点击Validate on target,在板上运行验证程序,效果如下图,可以工作,证明模型成功部署在MCU中。
参考资料: - https://youtu.be/grgNXdkmzzQ?t=10
- https://youtu.be/grgNXdkmzzQ?t=103
|