部署”桨”坛栏目聚焦AI硬件部署,分享多款厂商硬件部署方案及教程,帮助开发者们实现模型训练与推理的一体化开发和多硬件设备间的无缝切换。
准备好后即可开始向SD卡中烧录镜像。烧录好镜像的SD卡在插入R329开发板后,即可使用UBS—Type-C数据线连接并操作R329开发板了。详细烧制过程如下所示:
1.格式化SD工具。使用SD Card Formatter软件格式化SD卡。
图.串口配置菜单
安装飞桨框架和PaddleClas具体方法可以参考:https://github.com/PaddlePaddle/PaddleClas/blob/release/2.1/docs/zh_CN/tutorials/install.md
3.安装Paddle2ONNX
安装Paddle2ONNX,用于将飞桨模型转换成ONNX格式。具体命令如下:
安装Paddle2ONNX参考链接:https://github.com/PaddlePaddle/Paddle2ONNX
三、模型格式转换
1.飞桨模型转为ONNX格式的模型:
模型转换包括两步,第1步:导出飞桨模型;第2步:将飞桨模型格式转换成ONNX模型格式。
第1步:导出飞桨格式模型
输出介绍:
第2步:飞桨模型格式转ONNX模型格式:
参数说明:
-
-m:第一步生成*.pdmodel、*.pdiparams文件路径,相对路径和绝对路径均可。
-
-s:最终生成的ONNX模型的保存路径。
2.ONNX模型转R329支持的.bin格式模型
第1步:配置转换所需docker环境。(默认系统已经安装docker工具)
参考链接:https://aijishu.com/a/1060000000216857
第2步:准备模型量化校准数据。
准备模型量化校准数据操作,主要是将图像和对应标签转换成.npy格式,对于模型分类任务,如下命令执行dataset/preprocess_dataset.py即可实现数据准备工作。
输出dataset/dataset.npy和dataset/label.npy;
第3步:在docker 中利用AIPU工具进行模型转换
注意:
1.在使用aipubuild命令转换过程中,可能存在无法识别的input/ouput/layer name,是AIPU存在部分特殊字符无法识别的情况,使用node name即可避免该问题。
2.在模型转换过程中出现***negative dimension***错误,原因是没有按照二中“2.安装PaddleClas,并修改处理代码”步骤修改shape为“1,3,224,224”造成的。
resnet_50_build_run.cfg配置文件内容如下:其中[Parser]中input和output可以使用飞桨visualDL工具查看layer name,或者使用node name。
注:
四、运行Demo
1.下载官方Demo。
通过下方链接下载官方Demo解压,并使用scp命令拷贝到开发板。该官方Demo已经完成了基于R329开发版的交叉编译工作,可直接在开发板上运行
官方Demo下载链接:
https://dl.sipeed.com/shareURL/MaixII/MaixII-A/example
如需对Demo工程或者其它AIPU工程进行交叉编译,参见下方链接。
交叉编译参考链接:https://aijishu.com/a/1060000000224083
2.运行Demo。
命令行输出结果如下图所示:
3.运行飞桨模型转换Demo
将三中生成的paddle_onnx_resnet50_50Z2_1104_build.bin模型拷贝到开发板上,替换Demo中的模型,运行查看效果。
运行效果如下:
更多信息:
-
飞桨官方QQ群:793866180
-
飞桨官 址:
www.paddlepaddle.org.cn/
-
飞桨开源框架项目地址:
GitHub:
github.com/PaddlePaddle/Paddle
Gitee:gitee.com/paddlepaddle/Paddle
-
欢迎在飞桨论坛讨论交流~~
http://discuss.paddlepaddle.org.cn
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93765 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!