项目简介
本项目是一个端到端的从训练到部署的uTensor快速入门指南。借助Keras在Jupyter Notebook上对MNIST数据集训练卷积神经网络,再通过uTensor将训练好的模型转换为C++代码,最终部署到Mbed开发板上。项目虽以K64F开发板为例,但任何支持Mbed的开发板均可使用。
项目的主要特性和功能
- TF2支持:支持TensorFlow 2版本,紧跟技术发展。
- 简洁API:具备一行式导出API和改进的推理API,简化开发流程。
- 代码优势:生成的代码清晰、简洁且易于调试。
- 内存管理:内存使用具有确定性,降低静态和动态内存占用。
- 互操作性:与TensorFlow Lite Micro互操作,共享内核。
- 量化优化:支持离线量化和离线内存优化(开发中)。
- 模型导入:支持PyTorch导入(开发中)。
- 平台扩展:支持Arduino(开发中)。
安装使用步骤
前提条件
假设你已经下载了本项目的源码文件,并且需要安装以下软件: - mbed-cli - Jupyter-Notebook
安装方式
手动安装
- 安装
Mbed-CLI
:在MacOS上,先使用Brew安装Arm交叉编译器:bash $ brew install arm-none-eabi-gcc
再安装Mbed-CLI:bash $ pip install mbed-cli
其他平台的安装请访问Mbed-CLI的安装页面。 - 安装
uTensor-cli
:使用pip
安装最新稳定版的uTensor-SDK及命令行界面:bash $ pip install utensor-cgen jupyterlab
使用pipenv
安装(可选)
bash
$ brew install arm-none-eabi-gcc # mbed-cli所需
$ cd utensor-helloworld
$ pipenv install
$ pipenv shell # 激活环境
训练和代码生成
项目已包含生成的模型代码,可直接编译。若要直接生成输入模型,可运行mnist_conv.ipynb
:
bash
$ jupyter notebook mnist_conv.ipynb
在Jupyter Notebook中运行所有单元格,生成的代码和参数将放在models
和constant
文件夹中。
编译
bash
$ mbed deploy
$ mbed compile -m auto -t GCC_ARM -f --sterm
预期输出:
Simple MNIST end-to-end uTensor cli example (device)
Predicted label: 7
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】