Paddle lite 初识与简单使用

一、何为Paddle lite

官方解释如下:

Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动AI应用更广泛的落地。

官网链接:

Paddle Lite_飞桨-源于产业实践的开源深度学习平台 (paddlepaddle.org.cn)

那么浅显一点的理解就是一个神经网络的加速工具,深度学习加速器,类比为TensorRT等。在硬件上部署深度学习模型时,常常借助加速器,深度学习加速器一般叫Deep Learning Acceletor或Deep Learning Processor,一般可简称DLA或DLP。

二、Paddle lite的简单使用

2.1 通过代码块中实现(推荐)


参考项目自定义数据集+树莓派4B搭建----ssd_mobilenet_v1_voc - 飞桨AI Studio (baidu.com)

感谢大佬!


首先准备一个训练好的模型,注意,该模型必须为paddle框架。

这里我们准备的原生模型是

Paddle lite 初识与简单使用_第1张图片 

我们需要将原生模型进行转换,使其成为预测模型。

该代码是建立在配置好PaddleDetection工具的基础上的,所以原生模型路径为:

./PaddleDetection/output/ssd_mobilenet_v1_voc/model_final...

#转化为预测模型
!python -u tools/export_model.py -c configs/ssd/ssd_mobilenet_v1_voc.yml --output_dir=./inference_model_final

生成的预测模型保存在 ./PaddleDetection/inference_model_final/ssd_mobilenet_v1_voc 文件夹下,会生成两个文件,模型文件名和参数文件名分别为__model__和__params__

注:这里选择的训练神经网络是ssd_mobilenet_v1,所以生成在ssd_mobilenet_v1_voc 文件夹,具体位置取决于上述代码中"configs/"中的选择(与模型训练保持一致)。

PaddlePaddle的原生模型需要经过opt工具转化为Paddle-Lite可以支持的naive_buffer格式

%cd /home/aistudio/
#复制opt文件到相应目录下
!cp opt /home/aistudio/PaddleDetection/inference_model_final/ssd_mobilenet_v1_voc
#进入预测模型文件夹
%cd /home/aistudio/PaddleDetection/inference_model_final/ssd_mobilenet_v1_voc
#下载opt文件
#!wget https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.3.0/opt
#给opt加上可执行权限
!chmod +x opt
#使用opt进行模型转化,将__model__和__params__转化为model.nb
!./opt --model_file=__model__ --param_file=__params__ --optimize_out_type=naive_buffer   --optimize_out=./model
!ls

运行过程及结果示例:

Paddle lite 初识与简单使用_第2张图片 

2.2 通过终端实现

另一种方法是通过终端命令实现,但是终端命令实现时极易报错缺少算子,这里为何出现这样问题的原因笔者还未找到,在网络上搜寻结果大多回答都是paddlelite还没提供那些算子,但是同样的原生模型,2.1方法就可以实现,所以先把方法写在这里,大家作一个参考叭。(如果有好办法,感谢留言~万分感谢)

红线部分以下为可参考代码。

Paddle lite 初识与简单使用_第3张图片

注:

此处,

--model_dir=./moxing里为pdmodel及pdparams。

--valid_targets=intel_fpga为适配硬件类型,可以根据使用的硬件平台修改。

--optimize_out为输出路径


初学paddle lite,若有错误,感谢指出~

 

你可能感兴趣的:(Paddle学习记录,paddlepaddle,paddle)