最近在学习edx的HarvardX TinyML 3 - deploying TinyML。这个在线课程大大降低了TinyML的学习曲线的陡峭度,可以作为《TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers》的有益补充。原书是TensorFlow-Lite-Micro相关设计的提纲挈领,但是成书到发行期间,TFLM一直也在发展中,书中的代码到实践时候就有差异;《TinyML》也没有把实践部署讲的很透彻,个人认为在于TFLM采用工业化的pipeline解决依赖(不同硬件平台的编译、库、工具链的依赖);《TinyML》在阐述硬件平台移植相关章节,没有把工具链从官方的工业pipeline完整的剥离出来,也导致了光看书无法复现。为什么敢这么说?徒手把TFLM移植到nrf52840的淘宝开发板上,书忽略了nrf平台工具链的构建,以及如何和tf编译系统联动的设计。工作原因没有精力继续TinyML的爱好了。Harvard在线课程给了个契机继续,毕竟看视频比看code和实操要省力好多。
言归正传,《Deploying TinyML》使用“nano ble 33 sense”开发板和Arduino作为实验的软硬件环境。个人是VS-Code、Pio的拥簇者,但他山之石可以攻玉,Arduino IDE有独到之处。本文记录下TinyML实验的Arudino IDE的环境设置。
1.安装Nano 33 BLE Sense的Board File
1 打开“Boards manager”。Tools --> board --> Boards Manager
2 搜索" Nano 33 BLE",选择 “ Aruduino mbed-enabled Boards"选择版本”1.3.1
2.安装需要的库
Arduino生态系统的另一个优势是提供了用于执行各种任务的大量库,例如与传感器模块接口或使用通用算法来处理数据。
1 打开“Library Manager”。Tools --> Manage Libraries
2 安装对应版本的库
Library Name | version |
---|---|
Arduino_TensorFlowLite | 2.4.0-ALPHA |
Harvard_TinyMLx | 1.0.0 |
Arduino_LSM9DS1 | 1.1.0 |
ArduinoBLE | 1.1.3 |
3.设置偏好
通过File --> Preference 设置:
Show verbose output during: compilation and upload.
Enable code folding.
Display line numbers.
4.Dark主题
如果对Arduino千篇一律的白色编辑框厌倦的话。可以试试Dark主题。参照下面链接
https://create.arduino.cc/projecthub/konradhtc/one-dark-arduino-modern-dark-theme-for-arduino-ide-2fca81
效果如下。