Paddle lite 初识与简单使用

news2024/11/27 13:42:09

一、何为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框架。

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

fc645aca22734a019a6c1d10e59acea1.png 

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

该代码是建立在配置好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

运行过程及结果示例:

c75b4786f17e467c9f10167d01eadb4d.png 

2.2 通过终端实现

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

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

c6a56ebb23f84f5eb88aa74955f02632.jpeg

注:

此处,

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

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

--optimize_out为输出路径


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

 

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

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

相关文章

Android——事务处理(十二)

1. 事件处理简介 1.1 知识点 (1)了解事件处理的作用; (2)了解常用的事件及相关处理接口; 1.2 具体内容 在android当中,基本上每一个组件都有用相应的事件处理,但是不过有多少种事…

chatgpt赋能python:Python抢单软件:如何优化SEO?

Python抢单软件:如何优化SEO? 导言 随着互联网技术的飞速发展,越来越多的人开始关注SEO(Search Engine Optimization)技术。而对于Python编程工程师来说,了解SEO技术也是非常重要的。那么,如何…

day10 伪操作与混合编程

伪操作 伪操作:不会生成代码,只是在编译之前告诉编译器怎么编译 .global symbol 将symbol声明成全局符号.local symbol 将symbol声明成局部符号.equ DATA, 0xFFMOV R1, #DATA.macro FUNCMOV R1, #1MOV R2, #2.endmFUNC.if 0MOV R1, #1MOV R2, #2.endif…

简要介绍 | 快速傅里叶变换:从原理到应用

注1:本文系“简要介绍”系列之一,仅从概念上对快速傅里叶变换进行非常简要的介绍,不适合用于深入和详细的了解。 快速傅里叶变换:从原理到应用 Denoising Data with Fast Fourier Transform 1. 背景介绍 傅里叶变换(F…

vcruntime140_1.dll修复,vcruntime140_1.dll丢失推荐的修复方法-一键修复

vcruntime140_1.dll是什么什么文件呢?为什么电脑在运行一些游戏的时候会出现丢失vcruntime140_1.dll,然后游戏运行失败?这个dll文件是电脑重要的运行库文件。丢失了会导致很多程序无法运行。 本教程操作系统:Windows vcruntime140_1.dll丢失…

第十四章 json模块

1. json模块介绍 Python 中的json 模块提供了对JSON 的支持,用于将JSON 格式字符串转换为Python 对象。首先需要了解一下什么是JSON。 什么是JSON JSON 是基于JavaScript 语言的轻量级的数据交换格式,是JavaScript 对象的表示法(JavaScrip…

mariadb 高可用集群

目录 1.相同操作:修改hosts文件 把四台机IP写进去 2. www 管理机 4.管理 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于…

C51/C52--LCD1602

目录 一、LCD1602简介 二、LCD1602的工作(显示)原理 三、技术参数 四、外形参数,引脚功能 五、连接方式 六、示例程序与结果 一、LCD1602简介 LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏&#xff0…

chatgpt赋能python:如何使用Python找出重复元素

如何使用Python找出重复元素 在Python编程中,有时候需要查找并删除重复的元素。这些元素可以是列表、字符串等数据类型。在本文中,将介绍如何使用Python查找并删除重复元素。以下是我们将要涉及到的一些主题: 为什么需要查找重复元素&#…

深挖面试题讲解

面试题讲解🍴 文章目录 面试题讲解🍴和equals()的区别🍔1️⃣注意事项2️⃣明确问题3️⃣总结 什么是HashCode🍇1️⃣HashCode的描述2️⃣常见误区3️⃣hashCode的作用4️⃣总结 String、StringBuffer、StringBuilder的区别&#…

chatgpt赋能python:Python编程:如何找出给定的n个数中的最大值及其对应的最小下标

Python编程:如何找出给定的n个数中的最大值及其对应的最小下标 当需要在一组数字中找到最大值时,Python提供了内置函数 max() 。 但是,如果我们需要找出最大值的同时还需要找出其最小下标,该怎么办呢? 在本文中&#…

初始化命令

创建项目 vue2 vue3 create demo vue3 vue3 create demo vue2 webpack vue2 init webpack demo vue3 vite yarn create vite demo --template vue sass cnpm下载 --save-dev -D 开发环境 --save -S 生产环境 cnpm i node-sass4.14.1 sass-loader7.3.1 --save-…

[架构之路-215]- 架构 - 概念架构 - 模块(Module)、组件(Component)、包(Package)、对象、函数的区别

前言: 在软件架构中,一个重要的任务就是切分系统,而切分系统进程涉及到一个基本的概念,如模块(Module)、组件(Component)、包(Package)、对象,本…

管理类联考——写作——技巧篇——论证有效性——谬误概念汇总简释

批判性思维常见逻辑谬误 有些错误出现在我们澄清或定义某个观点的时候,有些错误出现在我们收集证据或者用证据和理由支撑某个观点的时候,有些错误出现在我们尝试从证据得出结论的时候,有些错误甚至出现在我们评估他人的观点或者理由的时候。…

美味度配方

8 种配料每种配料可以放 1 到 5 克,美味度为配料质量之和,给定一个美味度 n,求解 8 种配料的所有搭配方案及方案数量 。 (本笔记适合学了 Python 循环,正在熟炼的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a…

chatgpt赋能python:把图像放在中间的SEO优化指南

把图像放在中间的SEO优化指南 当我们在设计网站或博客时,经常会使用图像来增加文章的吸引力和清晰度。但是,图像的位置对于搜索引擎优化(SEO)很重要,因为搜索引擎无法理解和索引图像的内容,所以我们需要通…

chatgpt赋能python:Python抢商品:自动化实现秒杀购物的利器

Python抢商品:自动化实现秒杀购物的利器 随着互联网和电商的高度融合,电商平台受到越来越多的用户关注和青睐。在线购物已成为人们日常生活中必不可少的一部分,不管是网购小白还是技术大牛,都喜欢在各种平台上刷到想要的商品。但…

chatgpt赋能python:让Python帮助你轻松抢券

让Python帮助你轻松抢券 在这个数字化时代,抢购已成为电商平台上最为火热的活动之一。限时抢购、秒杀活动、优惠券折扣等等,都吸引了大量消费者的关注。然而,随着购物热潮的兴起,商品的库存有限,抢购难度越来越大。在…

高效能研发团队-使用自动化改进效率

在开发过程中利用自动化技术,可以帮助我们: 节约开发人员的时间,让他们做更有价值的事情。减少了开发流程中的人员依赖和相互等待的情况。加快了迭代速度,提前把问题暴露出来。另外一种形式的知识沉淀,减少人员流动带…

【学习日记2023.6.19】 之 RabbitMQ服务异步通信_消息可靠性_死信交换机_惰性队列_MQ集群

文章目录 服务异步通信-高级篇4. 消息可靠性4.1 生产者消息确认4.1.1 修改配置4.1.2 定义Return回调4.1.3 定义ConfirmCallback 4.2 消息持久化4.2.1 交换机持久化4.2.2 队列持久化4.2.3 消息持久化 4.3 消费者消息确认4.3.1 演示none模式4.3.2 演示auto模式 4.4 消费失败重试机…