人工智能学习与实训笔记(八):百度飞桨套件使用方法介绍

news2025/3/10 21:03:40

人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客

本篇目录

八、百度飞桨套件使用

8.1 飞桨预训练模型套件PaddleHub

8.1.1 一些本机CPU可运行的飞桨预训练简单模型(亲测可用)

8.1.1.1 人脸检测模型

8.1.1.2 中文分词模型

8.1.2 预训练模型Fine-tune

8.2 飞桨开发套件

8.2.1 PaddleSeg - 图像分割

8.2.2 PaddleNLP - 自然语言处理


八、百度飞桨套件使用

深度学习的探索目标:

  • 需要针对业务场景提出建模方案;
  • 探索众多的复杂模型哪个更加有效;
  • 探索将模型部署到各种类型的硬件上。

基于飞桨的开发套件进行开发和学习,可以解决模型资源,二次开发和工业部署的问题:

8.1 飞桨预训练模型套件PaddleHub

PaddleHub属于预训练模型应用工具,集成了最优秀的算法模型,开发者可以快速使用高质量的预训练模型结合Fine-tune API快速完成模型迁移到部署的全流程工作。

8.1.1 一些本机CPU可运行的飞桨预训练简单模型(亲测可用)

注意代码运行前,需要安装相应的Paddle包(代码最开始的几行注释即为安装过程)

8.1.1.1 人脸检测模型
#pip install paddle
#pip install paddlehub==2.1
#hub install ultra_light_fast_generic_face_detector_1mb_640==1.1.2

import paddlehub as hub
import matplotlib.image as mpimg
import matplotlib.pyplot as plt

module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640")
res = module.face_detection(paths = ["./test.jpg"], visualization=True, output_dir='test_face_detection_output')

res_img_path = './test_face_detection_output/test.jpg'
img = mpimg.imread(res_img_path)
plt.figure(figsize=(10, 10))
plt.imshow(img)
plt.axis('off')
plt.show()
8.1.1.2 中文分词模型
#pip install paddle
#pip install paddlehub==2.1
#hub install ultra_light_fast_generic_face_detector_1mb_640==1.1.2

import paddlehub as hub
lac = hub.Module(name="lac")
test_text = ["1996年,曾经是微软员工的加布·纽维尔和麦克·哈灵顿一同创建了Valve软件公司。他们在1996年下半年从id software取得了雷神之锤引擎的使用许可,用来开发半条命系列。"]
res = lac.lexical_analysis(texts = test_text)

print("中文词法分析结果:", res)

8.1.2 预训练模型Fine-tune

研究神经网络模型层间特征图可视化的工作表明,模型最前端的神经网络层倾向于提取一些普遍的、共有的视觉特征,如纹理、边缘等信息。越往后则越倾向于任务相关的特征。涉及计算机视觉图像分类的模型,在特征提取功能上,更多的依赖模型的前端的神经层,而将特征映射到标签的功能则更多的依赖于模型末端的神经层。

也就是说,越靠近输出的神经网络层越具有任务相关性。NLP领域的第三范式(pre-trained + fine tune)便是采用了这种思想。语言模型在大规模语料上进行预训练之后,便具有了强大的语义表征能力。将PLM接上后续任务相关的神经网络层进行微调,便可以在下游任务中获得更好的效果。

因此我们可以基于预训练模型,通过使用私有数据对模型进行Fine-tune,从而实现模型的迁移。

要实现迁移学习,包括如下步骤:

  1. 安装PaddleHub
  2. 数据准备
  3. 模型准备
  4. 训练准备

具体做法可以参考:飞桨AI Studio星河社区-人工智能学习与实训社区

8.2 飞桨开发套件

如果说PaddleHub提供的是AI任务快速运行方案(POC),飞桨的开发套件则是比PaddleHub提供“更丰富的模型调节”和“领域相关的配套工具”,开发者基于这些开发套件可以实现当前应用场景中的最优方案(State of the Art)。

PaddleHub属于预训练模型应用工具,集成了最优秀的算法模型,开发者可以快速使用高质量的预训练模型结合Fine-tune API快速完成模型迁移到部署的全流程工作。但是在某些场景下,开发者不仅仅满足于快速运行,而是希望能在开源算法的基础上继续调优,实现最佳方案。如果将PaddleHub视为一个拿来即用的工具,飞桨的开发套件则是工具箱,工具箱中不仅包含多种多样的工具(深度学习算法模型),更包含了这些工具的制作方法(模型训练调优方案)。如果工具不合适,可以自行调整工具以便使用起来更顺手。

飞桨提供了一系列的开发套件,内容涵盖各个领域和方向:

  • 计算机视觉领域:图像分割 PaddleSeg、目标检测 PaddleDetection、图像分类 PaddleClas、海量类别分类 PLSC,文字识别 PaddleOCR;
  • 自然语言领域:语义理解 ERNIE;
  • 语音领域:语音识别 DeepSpeech、语音合成 Parakeet;
  • 推荐领域:弹性计算推荐 ElasticCTR;
  • 其他领域:图学习框架 PGL、深度强化学习框架 PARL。

下面以PaddleSeg为例,介绍飞桨开发套件的使用方式。其余开发套件的使用模式相似,均包括快速运行的命令、丰富优化选项的配置文件和与该领域问题配套的专项工具。如果读者对其他领域有需求,可以查阅对应开发套件的使用文档。

8.2.1 PaddleSeg - 图像分割

图像分割任务是对每个像素点进行分类,需要给出每个像素点是什么分类的概率。

一般图像分割网络结构:

(1)网络的输入是H×W(H为高、W为宽)像素的图片,输出是N×H×W的概率图。输出的概率图大小和输入一致(H×W),而这个N就是类别。

(2)中间的网络结构分为Encoder(编码)和Decoder(解码)两部分。Encoder部分是下采样的过程,这是为了增大网络感受野,类似于缩小地图,利于看到更大的区域范围找到区域边界;Decoder部分是上采样的过程,为了恢复像素级别的特征地图,以实现像素点的分类,类似于放大地图,标注图像分割边界时更精细。

PaddleSeg覆盖了DeepLabv3+、U-Net、PSPNet、HRNet和Fast-SCNN等20+主流分割模型,并提供了多个损失函数和多种数据增强方法等高级功能,用户可以根据使用场景从PaddleSeg中选择出合适的图像分割方案,从而更快捷高效地完成图像分割应用。

实例:医学视盘分割

使用过程包括PaddleSeg环境安装,数据处理,模型选择和训练,模型评估,模型导出,模型部署等。具体过程可参考:飞桨AI Studio星河社区-人工智能学习与实训社区

8.2.2 PaddleNLP - 自然语言处理

PaddleNLP是基于Paddle框架开发的自然语言处理 (NLP) 开源项目,项目中包含工具、算法、模型和数据多种资源。PaddleNLP通过丰富的模型库、简洁易用的API,提供飞桨2.0的最佳实践并加速NLP领域应用产业落地效率。

GitHub链接:https://github.com/PaddlePaddle/PaddleNLP

丰富的模型库:涵盖了NLP主流应用相关的前沿模型,包括中文词向量、预训练模型、词法分析、文本分类、文本匹配、文本生成、机器翻译、通用对话、问答系统等。

实例:基于ERNIE模型的新闻标题分类

下面,我们将展示如何基于PaddleNLP中的预训练模型ERINE来实现另外一个文本分类的任务:对新闻标题进行分类。文本分类是指人们使用计算机将文本数据进行自动化归类的任务,是自然语言处理(NLP)中的一项重要任务。

本案例的模型实现方案如下图所示, 模型的输入是新闻标题的文本,模型的输出就是新闻标题的类别。在建模过程中,对于输入的新闻标题文本,首先需要进行数据处理生成规整的文本序列数据,包括语句分词、将词转换为id,过长文本截断、过短文本填充等等操作;然后使用预训练模型ERNIE对文本序列进行编码,获得文本的语义向量表示;最后经过全连接层和softmax处理得到文本属于各个新闻类别的概率。方案中不仅会使用ERNIE预训练模型,还会使用大量PaddleNLP的API,更便捷的完成数据处理和模型评估等工作。

ERNIE是基于Transfomer模型进行的改进,Transfomer模型是一种比LSTM更加复杂的、适合处理序列数据的模型,它使用Self-attenion的方法,将RNN变成每个输入与其他输入部分计算匹配度来决定注意力权重的方式,使得模型引入了Attention机制的同时也具备了并行化计算的能力。以这种Self-attention结构为核心,设计Encoder-Decoder的结构形成Transformer模型。BERT和ERNIE均是将Transformer的Encoder部分结构单独取出,用多个的非标记语料(转成标记数据,如填空/判断句子连续性等)的任务训练,并将得到的Encoder向量作为词汇的基础语义表示用于多种NLP任务(如阅读理解)的模型。

关于Transfomer模型可参考:Transfomer模型详解

使用过程包括PaddleSeg环境安装,数据处理,模型选择和训练,模型评估,模型导出,模型部署等。具体过程可参考:飞桨AI Studio星河社区-人工智能学习与实训社区

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

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

相关文章

【开源】SpringBoot框架开发创意工坊双创管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员端2.2 Web 端2.3 移动端 三、系统展示四、核心代码4.1 查询项目4.2 移动端新增团队4.3 查询讲座4.4 讲座收藏4.5 小程序登录 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的创意工坊双创管理…

Portraiture插件2024官方版功能主要介绍

Portraiture插件的功能主要包括: 一键平滑处理:可以对眉毛、头发等毛发材质进行一键平滑处理,使其质感显得更加光鲜亮丽。同时,这种处理还能保证原有图像的画质。使用吸管工具添加肤色蒙版:这个工具可以吸取人物面部的…

php基础学习之匿名函数

匿名函数 描述 允许临时创建一个没有指定名称的函数,使用匿名函数可以方便地创建一次性或临时的功能块。 语法 function (){ //函数体 }; 样例 (注:匿名函数定义后,需要将其赋值给一个变量,然后通过该变量来调用 这种调…

【BUG】段错误

1. 问题 8核工程,核4在运行了20分钟以上,发生了段错误。 [C66xx_4] A00x53 A10x53 A20x4 A30x167e A40x1600 A50x850e2e A60x845097 A70xbad9f5e0 A80x0 A90x33 A100x53535353 A110x0 A120x0 A130x0 A140x0 A150x0 A160x36312e35 A170x20 A180x844df0 …

15-树-路径总和

这是树的第15篇算法,力扣链接。 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则&#xff…

C++学习Day05之强化训练---数组类封装

目录 一、程序及输出1.1 数组类头文件1.2 数组类.cpp1.3 主程序 二、分析与总结 一、程序及输出 1.1 数组类头文件 myArray.h #include<iostream> using namespace std;class MyArray { public:MyArray(); //默认构造 可以给100容量MyArray(int capacity); //有参构造…

OpenAI全新发布的Sora,到底意味着什么?

16日凌晨&#xff0c;OpenAI发布了文本视频的工具&#xff08;text-do-video&#xff09;Sora&#xff0c;整个世界再次被震撼。 Sora的出现&#xff0c;到底意味着什么&#xff1f; 目录 Sora的背景与概述Sora是什么&#xff1f;能为我们做些什么&#xff1f;存在的一些问题 文…

目前2024年4核8G云服务器租用价格,阿里云PK腾讯云

4核8G云服务器多少钱一年&#xff1f;阿里云ECS服务器u1价格955.58元一年&#xff0c;腾讯云轻量4核8G12M带宽价格是646元15个月&#xff0c;阿腾云atengyun.com整理4核8G云服务器价格表&#xff0c;包括一年费用和1个月收费明细&#xff1a; 云服务器4核8G配置收费价格 阿里…

c++编译原理LR分析程序 代码+报告

编译原理实验报告 目 录 目录 1 实验目的 2 实验内容 3 实验要求 4 实验原理 4.1 TPL语言语法分析的文法 4.2设计思路 4.3LR分析表 5. 数据结构、函数说明和主要算法 5.1 主要的数据结构 5.2 所有函数的说明 5.3 主要算法 6. 实现与测试 6.1 源程序1测试 7 …

快速搞懂时间序列数据平稳检验

在对时间序列数据进行分析预测时&#xff0c;平稳时间序列数据预测效果更好。所以首先要检测数据是否平稳&#xff0c;没有趋势的时间序列数据&#xff0c;我们称为平稳的&#xff0c;即随着时间的推移&#xff0c;表现出恒定的方差&#xff0c;具有恒定的自相关结构。本文介绍…

Vue实现多个input输入,光标自动聚焦到下一个input

遇到一个需求&#xff0c;需要实现和移动端短信输入一样&#xff0c;输入内容后&#xff0c;光标会进入下一个输入框 需要用到2个事件 keydown事件发生在键盘的键被按下的时候 keyup 事件在按键被释放的时候触发 <template><div class"box"><el-fo…

读书笔记之《我的大脑好厉害》:脑科学启蒙

《我的大脑好厉害》的作者是赵思家&#xff0c;于 2022年出版。 赵思家是牛津大学神经科学博士后&#xff0c;科普作者&#xff0c;知乎神经科学领域大V&#xff0c;46万关注&#xff0c;擅长为充满好奇的读者提供新鲜、有趣又不失严谨的神经科学知识。赵思家2013年毕业于伦敦大…

Linux CentOS stream 9 安装docker

在计算机技术中,虑拟化是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。 目前,大多数服务器的容量的利用率不足15%,这导致服务器数量激增以及增加了复杂性。服务…

C语言系列(所需基础:大学C语言及格)-1-编译器/简单的求和代码/数据类型/变量的分类/变量的作用域和生命周期

文章目录 一、编译器&#xff08;使用在线编译器&#xff09;二、简单的求和代码三、数据类型四、变量的分类五、变量的作用域和生命周期 一、编译器&#xff08;使用在线编译器&#xff09; 为了方便&#xff0c;我使用的是在线的C语言编译器进行程序的运行。 链接&#xff1…

Vue的一些基础设置

1.浏览器控制台显示Vue 设置找到扩展&#xff0c;搜索Vue 下载这个 然后 点击扩展按钮 点击详细信息 选择这个&#xff0c;然后重启一下就好了 ——————————————————————————————————————————— 2.优化工程结构 src的components里要…

Tomcat要点总结

一、Tomcat 服务中部署 WEB 应用 1.什么是Web应用 &#xff08;1&#xff09; WEB 应用是多个 web 资源的集合。简单的说&#xff0c;可以把 web 应用理解为硬盘上的一个目录&#xff0c; 这个目录用于管理多个 web 资源。 &#xff08;2&#xff09;Web 应用通常也称之为…

[嵌入式系统-24]:RT-Thread -11- 内核组件编程接口 - 网络组件 - TCP/UDP Socket编程

目录 一、RT-Thread网络组件 1.1 概述 1.2 RT-Thread支持的网络协议栈 1.3 RT-Thread如何选择不同的网络协议栈 二、Socket编程 2.1 概述 2.2 UDP socket编程 2.3 TCP socket编程 2.4 TCP socket收发数据 一、RT-Thread网络组件 1.1 概述 RT-Thread 是一个开源的嵌入…

微星B85 PCMATE 配合 E3-1230V3锁全核3.7

参考&#xff1a; Non-K超频&#xff0c;i5-12490F 微星 MAG B760M MORTAR MAX WIFI DDR4 超频分享 - 知乎 微星科技 | 微星科技 ring ratio 的说明 英特尔CPU 可以调整的ring ratio (ring 频率&#xff09;是什么&#xff1f; - 知乎 1. 主要调节的是 CPU倍频&#xf…

磁盘删除的文件怎么恢复?4个简单方法(2024更新版)

“我有很多文件都保存在电脑磁盘里了&#xff0c;想问问电脑磁盘删除的文件有什么方法可以快速恢复吗&#xff1f;非常感谢大家&#xff01;” 在日常工作和生活中&#xff0c;我们经常会在磁盘中存储大量的文件。这些文件对我们来说或许都有特殊的意义。磁盘删除的文件怎么恢复…

数据模型概念

一、概念 (1) 定义 在数据库系统中针对不同的使用对象和应用目的&#xff0c;采用不同的数据模型。根据模型的应用的不同目的&#xff0c;可以将这些模型划分为两类&#xff1a; (2) 分类 A&#xff1a;概念数据模型 它也称信息模型它是按用户的观点&#xff08;观念世界&…