基于 Arm 虚拟硬件的 TinyMaix 超轻量级神经网络推理框架的项目实践

本实验过程中所显示的优惠价格及费用报销等相关信息仅在【Arm AI 开发体验创造营】体验活动过程中有效,逾期无效,请根据实时价格自行购买和体验。同时,感谢本次体验活动 Arm 导师 Liliya 对于本实验手册的指导。
详见活动地址:https://marketing.csdn.net/p/a11ba7c4ee98e52253c8608a085424be


项目背景

Arm 虚拟硬件(Arm Virtual Hardware)提供了一个 Ubuntu Linux 镜像,包括用于物联网、机器学习和嵌入式应用程序的 Arm 开发工具:例如,Arm 编译器、 FVP 模型和其他针对 Cortex-M 系列处理器的开发工具帮助开发者快速入门。Arm 虚拟硬件限时免费提供用于评估用途,例如,评估 CI/CD、MLOps 和 DevOps 工作流中的自动化测试工作流等。订阅访问和使用此版本的 Arm 虚拟硬件,您需同意产品最终用户许可协议中与免费测试版许可相关的条款和协议。

Arm 虚拟硬件产品的技术概览示意图如下所示。开发者也可访问 Arm 虚拟硬件产品介绍页和产品技术文档了解更多关于 Arm 虚拟硬件产品知识。


Arm 虚拟硬件产品概览
图1. Arm 虚拟硬件产品概览

前期准备

  • 已经正确购买了 AVH 镜像服务器并保证服务器正在运行中:

  • 可远程登陆服务器,如使用 SSH 方式:

  • 预先安装 CMSIS Packs 软件包,直接将其解压到 /home/ubuntu 目录下即可:
    • 下载地址:https://www.keil.arm.com/packs/
    • 其他博主提供的快捷下载地址(建议):https://Arm-workshop.bj.bcebos.com/packs.tar.bz2

实验步骤

1. 获取源码

实验代码地址:https://github.com/alphazcc/AVH-TinyMaix

  • 创建一个实验文件夹:
mkdir demo # 创建一个 demo 文件夹
cd demo/  # 切换到 demo 目录
  • 通过使用 git 工具将仓库代码克隆到服务器中:
git clone https://github.moeyy.xyz/https://github.com/alphazcc/AVH-TinyMaix.git

在这里插入图片描述

  • 查看仓库内容:

在这里插入图片描述

  • 仓库结构简析:
AVH-TinyMaix
  ├── AVH_Demo       # AVH demo project
  ├── CMake          # CMake file
  ├── TinyMaix       # TinyMaix 
  │    ├── examples  # TinyMaix sample files
  │    ├── include   # TinyMaix header files
  │    ├── src       # TinyMaix source files
  │    └── tools     # TinyMaix tools files
  ├── User           # User code files
  ├── Makefile       # Makefile for project building
  └── README.md      # README file

2. TinyMaix 简介

TinyMaix 是面向单片机的超轻量级的神经网络推理库,即 TinyML 推理库,可以让你在任意单片机上运行轻量级深度学习模型。

3. 项目体验

  • 配置环境变量
make source

在这里插入图片描述

  • 执行命令构建应用,构建成功会生成 image.axf 文件:
make build

在这里插入图片描述

  • 执行命令运行应用:
make run

在这里插入图片描述

  • 可按下 Ctrl+C 提前中断仿真:

在这里插入图片描述

  • 执行命令清除构建:
make clean

在这里插入图片描述

  • 快速构建、运行应用:
make 

在这里插入图片描述

实验效果

本实验基于 TinyMaix 神经网络推理库,成功运行了 MNIST 手写数字识别示例和简单图像分类模型 MBNET 示例。

1. 示例分析

MNIST 手写数字识别示例中配置运行了 10 张 28×28 的虚拟图像,均得到了正确结果,每张运行时间在 7ms 左右(该时间统计来自 FreeRTOS 的时钟 Tick)。

在这里插入图片描述

MBNET 示例配置运行输入了一张 96×96×3 的 RGB 图像,输出 1000 分类,共消耗了 1574 毫秒(该时间统计来自 FreeRTOS 的时钟 Tick):

在这里插入图片描述

2. 更多内容

为了避免过多的日志输出,关掉了一些信息打印,如有需要可打开。

  • 打开 MNIST 模型信息输出,编辑 TinyMaix\examples\mnist\mnist.c 文件,将对应代码取消注释:

在这里插入图片描述

  • 运行效果

在这里插入图片描述

  • 打开 MBNET 示例中模型相关、分类结果日志输出,编辑 TinyMaix\examples\mbnet\mbnet.c 文件,将对应代码取消注释:

在这里插入图片描述

  • 运行效果:

在这里插入图片描述

在这里插入图片描述

实验感悟

通过此次实践我们成功的在 Arm 虚拟硬件平台上运行了 TinyMaix 轻量级神经网络推理框架,相比于物理硬件平台,Arm 虚拟硬件使开发更加便捷、高效,可模拟多种实验场景,不限于物联网、嵌入式应用、深度学习、软硬件协同设计等。

Arm 虚拟硬件平台可以在物理条件缺乏的情况下,让软件实例能够快速的得到验证,它不受物理限制,并且可以有效的避免开发过程中可能出现的风险。作为一个初学者,Arm 虚拟硬件是一个不错的学习平台,希望官方能够提供更加完善学习资料、建立生态体系。

参考文档

  1. Arm 虚拟硬件产品简介
  2. Arm 虚拟硬件帮助文档
  3. Arm 虚拟硬件开发者资源
  4. 【中文技术指南】Arm 虚拟硬件实践专题一:产品订阅指南(百度智能云版)
  5. 【中文技术指南】Arm 虚拟硬件实践专题二:Arm 虚拟硬件 FVP 模型入门指南
  6. 【中文视频直播课】加速AI开发,1小时快速入门Arm虚拟硬件
  7. Arm 社区微信公众号
    Arm 社区微信公众号

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello阿尔法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值