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

news2024/11/17 23:26:46

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

文章目录

  • 项目背景
  • 前期准备
  • 实验步骤
    • 1. 获取源码
    • 2. TinyMaix 简介
    • 3. 项目体验
  • 实验效果
  • 实验感悟
  • 参考文档


项目背景

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

实验感悟

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

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

参考文档

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1713459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大比武08】利用RAG技术构建档案智能问答系统

关注我们 - 数字罗塞塔计划 - # 大比武2024 本篇是参加“华夏伟业”杯第二届档案信息化公司业务与技术实力大比武(简称“大比武 2024”)的投稿文章,来自燕山大学档案馆(校史馆)的实际项目,由河北科怡科技…

拍摄的视频内容怎么做成二维码?视频在线转换成二维码的方法

怎么把拍的个人才艺视频做成二维码呢?现在扫码看视频是实现内容快速传播的一种常用方式,所以很多人会将自己拍摄的视频制作二维码图片,然后分享给其他人扫码获取内容,对于内容的传播速度及用户体验有很好的提升,在很多…

NTLM Relay Gat:自动化NTLM中继安全检测工具

关于NTLM Relay Gat NTLM Relay Gat是一款功能强大的NTLM中继威胁检测工具,该工具旨在利用Impacket工具套件中的ntlmrelayx.py脚本在目标环境中实现NTLM中继攻击风险检测,以帮助研究人员确定目标环境是否能够抵御NTLM中继攻击。 功能介绍 1、多线程支持…

【开发利器】使用OpenCV算子工作流高效开发

学习《人工智能应用软件开发》,学会所有OpenCV技能就这么简单! 做真正的OpenCV开发者,从入门到入职,一步到位! OpenCV实验大师Python SDK 基于OpenCV实验大师v1.02版本提供的Python SDK 实现工作流导出与第三方应用集…

Java---Cloneable接口---浅克隆和深克隆

在Java中,我们如何实现一个对象的克隆呢? 在Java中实现对象的克隆,我们要用到Cloneable接口。克隆也分为浅克隆和深克隆。 1.实现浅克隆 1.重写clone方法 当我们想直接通过前面已经建立好的对象来调用Object类中的clone方法时,…

vbs执行报错vbs没有文件拓展,双击无法打开

如果看不到文件扩展名需要设置: 无法双击打开vbs 一般为注册表问题 解决办法 将下方代码保存为xxx.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.VBS] "VBSFile" [HKEY_CLASSES_ROOT.VBS\PersistentHandler] "{5e941d80-bf96-…

VBA让按钮消失

要求 用VBA搞小程序,有个录入数据的按钮,点击后进行录入数据的操作,操作完成后这个按钮就是灰的,点不动,这个怎么做? 实现过程 没找到让按钮变灰的方法,退而求其次,让按钮消失。 …

linux部署运维1——centos7.9离线安装部署web或java项目所需的依赖环境,包括mysql8.0,nginx1.20,redis5.0等工具

在实际项目部署运维过程中,如果是云服务器,基本安装项目所需的依赖环境都是通过yum联网拉取网络资源实现自动化安装的;但是对于一些特殊场合,在没有外部网络的情况下,就无法使用yum命令联网操作,只能通过编…

Kunpeng Pro测评使用报告

1. 概述 前段时间,收到两条CSDN的短信,邀请我参加Kunpeng Pro的测评活动。说起来,自己玩过的开发板已经不在少数,而自己作为半导体行业的从业者,手上开发过的芯片也有十几款,小到Arm Cortex-A53&#xff0…

北美互联网裁员太狠了,程序员“做管理上岸”越来越难

北美互联网现在裁员太狠了,“做管理上岸”这种事情在现在这种行业形势已经基本不存在了,这个人管理40人的团队该裁还是裁。 然而硅谷还是中国程序员心中的圣地(华子一定程度上也是很多人的心之所向,技术大厂捞人,前后…

Excel计算两个日期之间差额天数及DATEDIF使用

一.计算两个日期之间的差额天数 1.两个日期直接相减就可以得到两个日期间隔的天数,这里需要注意日期格式哦 日期格式需要为XXXX/XX/XX,不能为XXXX.XX.XX,否则显示Value错误如下。 二.使用DATEDIF函数计算差额天数 该函数只能手写,好像不能自…

应对意外断电:气膜建筑的安全防护与智能管理—轻空间

气膜建筑以其独特的结构和高效的建设方式,广泛应用于各类场馆、仓储设施和临时展馆。然而,当遇到意外断电导致气膜内部无法送风时,如何避免气膜倒塌,确保建筑安全呢? 断电应急响应 气膜建筑配备了先进的智能控制系统&a…

从GIMPLE到RTL

从GIMPLE到RTL 从GIMPLE到RTLGIMPLE序列测试代码:CFG如下所示: 一些典型数据结构RTL生成的基本过程变量展开计算当前函数堆栈(Stack Frame)的初始状态变量展开的初始化对可以展开的变量进行展开操作,生成该变量对应的R…

day17

第一题 本题可以采用快速排序的思想,适应随机数指定和三指针划分数组为三个区域的思想: 其中指针的移动细节如上题故事,如下所示: 当a区域的商都大于k时,我们要查找的k位置元素就在左区域,我们进一步在左区…

适合源代码的加密系统

在信息化高度发展的今天,源代码的安全问题日益受到重视。源代码是企业或组织的核心资产,一旦泄露或被篡改,将会对其造成巨大的经济损失和声誉风险。因此,如何有效防止源代码的泄露和算改成为了企业和组织急需解决的问题。沙盒技术…

Git时光机、Git标签、Git分支、GitHub协作

Git时光机(切换版本) 1.查看提交历史 HEAD指针指向这次分支的最后一次提交 版本信息一行显示【git log --prettyoneline】 2.引用日志【git reflog】 (只在自己的工作区中存在) 非常重要:当HEAD指针进行切换之后&…

有类似注册表编辑器的vb6源码吗?vba注册表编辑器

第一步是要实现注册表功能的读写,所有数据类型,枚举列出所有子项 第二步,树形控件之类显示,可视化修改,查看 第三步,导入导出注册表 第四步,注册表监控,检测哪些注册表项是新建、删除…

【Flutter】交错动画自定义动画Hero动画

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月29日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

北京大学第一医院与智源研究院共同发布基于可信执行环境的AI医学影像挑战赛

肾动脉狭窄是导致继发性高血压及肾功能不全的常见原因,而目前针对肾动脉狭窄功能学的评估尚处于探索阶段。数据保护和可信计算环境是目前人工智能技术应用于临床研究的一大瓶颈。北京大学第一医院与北京智源人工智能研究院心脏AI 联合研究中心特发布基于可信执行环境…

wps表格样式【笔记】

wps表格样式【笔记】 前言版权推荐wps表格样式第一种方法第二种方法 最后 前言 2024-5-15 19:25:47 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog.csdn.net …