当前位置:网站首页>AVH部署实践 (一) | 在Arm虚拟硬件上部署飞桨模型
AVH部署实践 (一) | 在Arm虚拟硬件上部署飞桨模型
2022-07-29 14:16:00 【飞桨PaddlePaddle】

模型的训练与部署一直是AI应用的核心。针对深度学习算法在工业化落地过程中的应用与挑战,百度飞桨与Arm合作,针对Arm Cortex-M处理器的深度学习应用场景,完成了飞桨模型在Cortex-M硬件上的适配。百度与Arm的此次合作,填补了飞桨模型在Cortex-M硬件上的适配空白,同时也增加了Cortex-M硬件上的深度学习模型数量,为开发者提供了更多的部署方案。
本次飞桨与Cortex-M的适配使用了Arm虚拟硬件(Arm Virtual Hardware, AVH)作为平台进行模型部署。AVH旨在为赋能软件开发可早于芯片开发而设计,为物联网及嵌入式平台带来现代化敏捷的软件开发方法,包括持续集成/持续开发 (CI/CD)、DevOps与MLOps,而无需大型定制硬件集群。
本期,小编将带大家重温百度飞桨开发者说之“Arm 虚拟硬件平台的飞桨模型部署实战”直播课程的主要内容,与大家共同回顾在AVH上部署飞桨模型的端到端流程。
本次课程也是首次展示如何将飞桨模型直接部署在含有Arm Cortex-M处理器IP的AVH平台上。通过此次课程,你不仅可以深入学习如何使用飞桨训练获得更高效的训练模型和推理模型,还会了解到如何通过深度学习编译TVM将飞桨模型编译为适配在Arm Cortex-M上运行的目标代码,并将其部署在含有Cortex-M55的AVH平台上。
更多精彩内容欢迎点击课程回放链接:
https://www.bilibili.com/video/BV1Q34y1n74a?share_source=copy_web
本次直播课程内容主要涵盖以下五个部分:
第一部分 课程概述
简要介绍在物联网时代下,深度学习应用在工业化落地过程中所面临的种种挑战,并详细分析AVH如何与飞桨相结合激发更高效的 MLOps工作流,从而加速边缘侧机器学习应用的开发。

图 1:AVH与PaddlePaddle相结合激发更高效的MLOps工作流
第二部分 PaddleDetection on Arm
针对计算机视觉领域的目标检测任务(Detection),详细介绍百度飞桨的 PaddleDetection开发套件的特点与优势,并深入讲解了PP-PicoDet模型如何与Cortex-M处理器适配的应用案例。

图 2:PaddleDetection 开发套件全景图
第三部分PaddleOCR on Arm
针对计算机视觉领域的文字识别(OCR),详细介绍了百度飞桨的PaddleOCR开发套件的特点与优势,并深入讲解了PP-OCRv3模型如何与Cortex-M处理器适配的应用案例。

图 3:PaddleOCR 开发套件全景图
第四部分TVMC编译模型
简要介绍深度学习编译器TVM的基本概念以及其与飞桨前端、CMSIS-NN后端的适配,并说明如何借助TVM编译器完成对飞桨推理模型的编译转换,使其成为适配在Cortex-M处理器上运行的代码。

图 4:编译流程示意图
(了解TVM更多信息,请访问https://tvm.apache.org)
第五部分 AVH上完成模型部署
简要介绍AVH的特点与优势,并针对本次课程所使用的Arm Corstone和 Cortex CPU虚拟硬件的功能特点、其与Arm处理器IP的关系以及目前所支持的虚拟硬件模型进行了进一步介绍。随后通过具体的演示环节,逐步向开发者直观演示了如何将PP-OCRv3中发布的英文识别模型 (完成算子适配后) 部署在Arm Corstone-300的虚拟硬件平台上 (内含Arm Cortex-M55处理器,Arm Ethos-U55处理器及一些基本外设) 。

图 5:AVH Corstone和Cortex CPU简介
本期我们主要带领大家重温了主要的课程章节内容。在下期推送中,我们将以计算机视觉领域的文字识别任务(OCR)为目标,一步步地带领大家动手完成从模型训练优化到深度学习应用部署的整个端到端的开发流程,敬请期待下一期内容:AVH部署实践 (二) | 在Arm虚拟硬件上部署PP-OCR模型。
不熟悉OCR?想要提前解锁了解更多关于OCR的前沿理论和代码实践?
欢迎大家扫描右方二维码关注公众号,免费领取由百度飞桨PaddleOCR团队携手学术界产业界技术专家同仁共建的覆盖从检测识别到文档分析的OCR全栈技术书籍《动手学OCR》。

温馨提示:
本期部署实践课程使用的是托管在AWS/AWS China亚马逊机器镜像AMI中的 Corstone和Cortex CPU虚拟硬件。
欢迎各位开发者扫描下方二维码,即刻注册AVH第三方硬件平台,抢先体验AVH为你的嵌入式开发之旅所带来的极致便捷!还有更多在AVH第三方硬件平台上进行开发的有趣实例等着大家。
使用公司邮箱或学校邮箱注册申请,审批更高效哦!


关注【飞桨PaddlePaddle】公众号
获取更多技术内容~
边栏推荐
- 一篇适合新手的深度学习综述!
- Bika LIMS 开源LIMS集—— SENAITE的使用(分析/测试、方法)
- Why do strings use the final keyword
- Nine kinds of way, teach you to read the resources files in the directory path
- 马尔可夫跳变线性系统最优控制的研究现状与进展
- 从一道面试题说起:GET 请求能传图片吗?
- RAMAN CONFIGURE 命令都能实现哪些功能
- The new technical director, who is in the form of a isXxx Boolean type definition, tomorrow need not come!
- 基于Flink CDC打通数据实时入湖
- PytestFixture实战应用+Pytest.ini与conftest.py应用详解+Fixture及yield实现用例前置后置
猜你喜欢
随机推荐
面试官:大量请求 Redis 不存在的数据,从而影响数据库,该如何解决?
广州消防:高温天气火灾频发 消防安全不容忽视
Why do strings use the final keyword
PyQt5快速开发与实战 7.1 信号与槽介绍
代码越写越乱?那是因为你没用责任链
你会看 MySQL 的执行计划(EXPLAIN)吗?
593. 有效的正方形 : 简单几何运用题
这 6 款在线 PDF 转换工具,得试试
84.(cesium之家)cesium模型在地形上运动
RAMAN CONFIGURE 命令都能实现哪些功能
EA&UML日拱一卒-活动图::Object actions(续)
【JS面试题】面试官问我:遍历一个数组用 for 和 forEach 哪个更快?
iMedicalLIS监听程序(1)
广州市应急管理局发布夏季危化品十大安全风险
【论文阅读】异常检测的视频通过Self-Supervised和多任务学习
为什么 ThreadLocal 可以做到线程隔离?
验证二叉树的前序序列化[抽象前序遍历]
升级openssl1.1.1(mix2s哪个版本不断流)
面试官:生产环境中 CPU 利用率飙高怎么办?
力扣541. 反转字符串 II ----双指针解法








