littlebot
Published on 2025-04-16 / 1 Visits
0

【源码】基于uTensor和Mbed的MNIST手写数字识别系统

项目简介

本项目是一个端到端的从训练到部署的uTensor快速入门指南。借助Keras在Jupyter Notebook上对MNIST数据集训练卷积神经网络,再通过uTensor将训练好的模型转换为C++代码,最终部署到Mbed开发板上。项目虽以K64F开发板为例,但任何支持Mbed的开发板均可使用。

项目的主要特性和功能

  1. TF2支持:支持TensorFlow 2版本,紧跟技术发展。
  2. 简洁API:具备一行式导出API和改进的推理API,简化开发流程。
  3. 代码优势:生成的代码清晰、简洁且易于调试。
  4. 内存管理:内存使用具有确定性,降低静态和动态内存占用。
  5. 互操作性:与TensorFlow Lite Micro互操作,共享内核。
  6. 量化优化:支持离线量化和离线内存优化(开发中)。
  7. 模型导入:支持PyTorch导入(开发中)。
  8. 平台扩展:支持Arduino(开发中)。

安装使用步骤

前提条件

假设你已经下载了本项目的源码文件,并且需要安装以下软件: - mbed-cli - Jupyter-Notebook

安装方式

手动安装

  1. 安装Mbed-CLI:在MacOS上,先使用Brew安装Arm交叉编译器: bash $ brew install arm-none-eabi-gcc 再安装Mbed-CLI: bash $ pip install mbed-cli 其他平台的安装请访问Mbed-CLI的安装页面
  2. 安装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.ipynbbash $ jupyter notebook mnist_conv.ipynb 在Jupyter Notebook中运行所有单元格,生成的代码和参数将放在modelsconstant文件夹中。

编译

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】