飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署

点击左上方蓝字关注我们

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第1张图片

几年来Tengine在开源社区深度耕耘,吸引了很多不同背景的开发者群体,其中有一大部分就是PaddlePaddle深度学习平台的死忠用户。一直以来都有用户期待能够打通两者的联动,让Paddle上游的各类优质应用算法模型可以透过Tengine 框架部署到更多的AIoT硬件平台上,这样的强强联合既方便了PaddlePaddle的开发者扩大模型落地的硬件选择,也丰富了Tengine对训练框架的支持。

飞桨(PaddlePaddle)今年初正式发布了全新训练框架2.0版本升级,提供了更易用的高层API、全新动静混合编程范式及大规模参数服务器训练等功能,经过多月的迭代和发展,也即将在近期发布2.1版本更新,其中包含自动混合精度大幅优化等众多功能皆会在5月20的Wave Summit 2021上分享, 请大家敬请期待。而在这样的基础上, 开放的边缘AI计算框架Tengine与PaddlePaddle这次的合作就是基于全新的Paddle 2.0架构,完成了Tengine对Paddle 2.0模型格式的原生转换,后透过端侧AI加速器模型部署。这样的整合能发挥两家的长处,降低嵌入式等环境的部署难度,让用户可以直接加载百度model zoo里面的模型,更简单的开发算法和应用,从而达到实际落地的需求。

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第2张图片

任务目标

将 PaddleClas 项目(给小伙伴科普一下,PaddleClas是飞桨平台中专门给图像分类应用开发者提供的端到端开发套件: https://github.com/PaddlePaddle/PaddleClas)中的 MobileNetV2 模型转换成 Tengine 的 tmfile,并顺利运行。

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第3张图片

图一:Conversion Pipeline

准备工作

将 PaddleClas 项目中的预训练好的动态图分类模型 MobileNetv2 转换成 PaddlePaddle 2.0 的静态图模型。

下载 PaddleClas 项目

git clone https://github.com/PaddlePaddle/PaddleClas.git

认真阅读PaddleClas Readme

https://github.com/PaddlePaddle/PaddleClas

安装PaddlePaddle

pip3 install paddlepaddle --upgrade -i https://mirror.baidu.com/pypi/simple

安装 PaddleClas 依赖库

pip3 install --upgrade -r requirements.txt -i https://mirror.baidu.com/pypi/simple

预训练模型下载

https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV2_pretrained.pdparams

下载完成后复制到 PaddleClas 根目录下的 output 文件夹中。

静态图模型

PaddleClas 的 Model Zoo 提供的预训练模型是动态图格式,需要通过工具脚本转换成静态图才能更方便后续的工作。

python3 tools/export_model.py --model MobileNetV2 --pretrained_model ./output/MobileNetV2_pretrained --output_path ./inference --class_dim 1000

如果执行过程中碰见报错,请安装指定版本的 gast,这里我已经提交 pull request 不知道什么时候能被合并进入主线代码。

pip3 install gast==0.3.3

静态图的模型文件存放在 inference 目录下,包含以下三个文件:

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第4张图片

模型转换

下载转换工具源码

git clone  https://github.com/OAID/Tengine-Convert-Tools.git

编译

mkdir build && cd build
cmake .. && make

执行

./convert_tool -f paddle -p inference.pdmodel -m inference.pdiparams -o mobilenetv2_paddle.tmfile


---- Tengine Convert Tool ----

Version     : v1.0, 10:10:30 Apr 26 2021
Status      : float32
Create tengine model file done: mobilenetv2_paddle.tmfile

运行

下载 Tengine:

git clone https://github.com/OAID/Tengine.git

编译

mkdir build && cd build

cmake .. && make

执行

bug1989@DESKTOP-SGN0H2A:/mnt/d/ubuntu/github/tengine-lite/build$ ./examples/tm_classification -m mobilenetv2_paddle.tmfile -i cat.jpg -g 224,224 -s 0.017,0.017,0.017 -r 10
Mean value not specified, use default   104.0, 116.7, 122.7
tengine-lite library version: 1.2-dev

model file : /mnt/d/ubuntu/github/PaddleClas/inference/mobilenetv2_paddle.tmfile
image file : examples/cat.jpg
img_h, img_w, scale[3], mean[3] : 224 224 , 0.017 0.017 0.017, 104.0 116.7 122.7
Repeat 10 times, thread 1, avg time 40.32 ms, max_time 56.47 ms, min_time 35.80 ms
--------------------------------------
0.317292, 281
0.176262, 285
0.154328, 282
0.039242, 287
0.029589, 278
--------------------------------------

传送门

https://github.com/PaddlePaddle/Paddle

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第5张图片

https://github.com/OAID/Tengine

https://github.com/OAID/Tengine-Convert-Tools

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第6张图片

最后,欢迎小伙伴关注我們在5月20北京线下举行的Wave Summit 2021 活動(https://www.wavesummit.com.cn),Tengine技術大佬圈圈虫将在圓桌上带你探讨如何走顺深度学习最后一公里!

或者加入OPEN AI LAB开发者技术QQ群(829565581)来找圈圈虫吧!(入群秘令:CNN)

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第7张图片

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第8张图片

扫码添加OPEN AI LAB小O妹

咨询产品/技术问题&加入技术交流QQ群(829565581)

TengineGitHub开源链接

https://github.com/OAID/Tengine

欢迎大家Star、Watch、Fork三部曲

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第9张图片

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第10张图片

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,包括飞桨开源平台和飞桨企业版。飞桨开源平台包含核心框架、基础模型库、端到端开发套件与工具组件,持续开源核心能力,为产业、学术、科研创新提供基础底座。飞桨企业版基于飞桨开源平台,针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

END

飞桨与开源计算框架Tengine共同完成端侧AI加速器模型部署_第11张图片

你可能感兴趣的:(人工智能,大数据,深度学习,python,编程语言)