【Paddle 经验分享】利用PaddleHub 2.x 完成文本分类训练的坑

CSDN原文链接:https://blog.csdn.net/kinfey/article/details/117254781

基于项目选择了PaddlePaddle 作为文本分类的基础,经过一周多的使用终于有所进展,把文本分类的相关工作做了一个简单模型。

首先说说PaddlePaddle , 现在做深度学习,更多用户使用的是TensorFlow / PyTorch ,但其实还有很多类似的框架,PaddlePaddle就是其中之一。有人会说TensorFlow / PyTorch 已经这么优秀了,为何还用 PaddlePaddle 呢 ?我这里也想结合一周多的使用说说 。当初使用 Paddle Paddle框架我看中的是他在自然语言中文领域有很多现成的模型,举个例子如情感分类,如阅读理解,还有自动问答等,而且在使用上也是非常简单。我就是奔着这个去的,至于其他像内存占用小啊,API易用这些用过就知道其实是一个场景相对的工作。如果我们使用自然语言相关,我是建议使用,但在计算机视觉或者其他的都差不多。PaddlePaddle 在设计初期就兼顾了动态图和静态图,所以还是不错的。 

PaddlePaddle 有不少预训练的模型,基于预训练组建了一个PaddleHub ,  可以让你快速调用并完成模型的管理,你还可以基于自有的模型做迁移学习,更好地服务应用场景。这里做文本分类,我就直接用了PaddleHub 自有的 ERNIE 进行迁移学习。就这样我就开始了一段神奇之旅。

一.ERNIE

在中文领域,这是一个非常非常棒的自然语言模型,和BERT 比,采用了先知Mask机制,和随机Mask 的BERT比,能更有效对中文常用词进行判断。更多可以参考  https://github.com/PaddlePaddle/ERNIE。

二. 具体使用遇到的一些问题

PaddlePaddle 在网上搜索的例子都是有问题的,因为基于原来的例子基本是按照1.x 版本(https://aistudio.baidu.com/aistudio/projectdetail/186443)改的,只能自己碰。

1.环境问题

我现在的Cuda  环境是11.1 , 但是无论最新的2.1 还是2.0.2 其实都没有支持的,开始我自己也慌了第一步就放弃么?但我认真看了下,其实2.0.2 是支持11.0 也是可以在11.1的CUDA上跑,所以安装环境就变成了:

pip install paddlepaddle-gpu==2.0.2.post110 -f https://paddlepaddle.org.cn/whl/stable.html

2.ERNIE 版本选择

其实我本来想要ERNIE,但最后选择ERNIE-TINY是因为他更小巧,更适应我的场景, 如果你想应用其他也是可以的,他支持多种语义模型。

3.TextClassificationDataset

因为我是做迁移学习的文本分类所以这里就需要去继承原有的TextClassificationDataset,我一直觉得是一个简单活,结果花了我一堆时间,因为这里对数据格式有要求,第一列必须是Label , 而且token是一个Bert+Custom ,  并且一定要做好测试集和训练集,这里我真的花了5天去找,但最后还是追看TextClassificationDataset 找到答案,主要是文档太少。

4.traindata

训练这里细节也挺多的,特别最基本的一个traindata 这里要说,我发现是要补充上learning_rate ,否则有些东西奇奇怪怪。

这是我训练的一些结果,还是不错,这个过程我花了5个工作日,真是痛哭流涕。

三、一些工作还是要继续的

1.  部署,其实PaddleHub建议用PaddleServing 来部署的,但由于现在模型还在调整,数据在增加,所以临时方案还是直接用PaddleHub去解释模型,这里内存在服务器占用大,要改进 

2.  调优,还有很多方法,还在学习中,希望日后可以填上 

3.  onnx , 还是想转换为onnx ,但文档很少,还是得花时间

4. 压缩,模型压缩就是技术活了,怎么样能做到一个精度高,容量小的模型,又是我要考虑的了

学习是一步步的,经过1周多,终于有成果, PaddlePaddle是好东西,但文档,例子欠缺,我希望利用自己项目的经验分享给大家。

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

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

相关文章

Python的这几个常用库,你会用吗?

目前,人工智能的应用日渐广泛。而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。简单来说&a…

记一次 .NET 某电商交易平台Web站 CPU爆高分析

一:背景 1. 讲故事已经连续写了几篇关于内存暴涨的真实案例,有点麻木了,这篇换个口味,分享一个 CPU爆高 的案例,前段时间有位朋友在 wx 上找到我,说他的一个老项目经常收到 CPU > 90% 的告警信息&#x…

c语言输入n个数按大小输出,输入n个整数并输出,用c语言表达

FOSS//这个是用静态数组储存整数#includeint main(void){int a[100],i0,j;//如果n小于100的话就不需要用动态数组,或者你可以把100改成更大的数,比如100000000......printf("请输入你要输入的数字,以ctrlz结束:");while(scanf(&quo…

ML.NET Cookbook:(5)如何查看中间过程数据?

通常,当我们构建实验时,我们希望确保“到某一时刻”的数据处理产生我们想要的结果。对于ML.NET来说,这不是很容易做到的:因为所有的ML.NET操作都是延迟执行的,所以我们构造的对象只是数据的“承诺”。我们需要创建游标…

在线交友背后的数学原理

全世界只有3.14 % 的人关注了数据与算法之美欣赏 TED-Ed 带字幕视频, 或者看下面编写的文字版. 01交友网站的背后是算法帝国大家好,我叫 Christian Rudder,我是 OKCupid 网站的创办人之一。这个网站现在已经是全美最大的交友网站。就象这网站上大多数其他人一样,我…

你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序

创建项目 在Visual Studio中创建一个应用程序,应首先创建一个项和一个解决方案。在此示例中,您将创建Windows presentation foundation应用程序。 创建 WPF 项目 在菜单栏上,依次选择 *** 文件 ***,新建,项目。 选择V…

超级智能玩具《小小机器人》|全新50种玩法,创造力之源

致砖《小小机器人》全新套装电动机械的完美结合先来看看视频过过眼瘾吧来自美国STEAM教育让孩子跨学科学知识积木向来是STEAM教育很重要的一部分,因为它涉及到了多种学科:要搭建得稳固——这是工程学;要精准搭建——这是数学;要外…

强烈推荐!孩子的科普从这套全球畅销250万册的最酷科学书起步

在马斯的学生时代的记忆中,数学定义定理、化学方程式、物理公式……这些科学知识点总是冷冰冰的,枯燥、深奥也总是科学的代名词。如今教育局明确规定科学课是小学必修课,孩子也逐步接受科学知识的熏陶。但科学课上冷冰冰的,枯燥、…

技术分享|手机推送原理剖析指南

源宝导读:本文旨在对手机推送原理进行剖析和阐述,对业务开发做一些方向性的解惑。一、手机推送的基本概念 ——什么是手机推送?百度词条:手机推送服务是指服务器 定向将信息实时送达手机的服务词条中有2组概念:第一组是…

闽高校计算机二级c语言模拟器,闽高校计算机二级C语言模拟卷及答案.doc

闽高校计算机二级C语言模拟卷及答案.doc (54页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分一、单项选择题(每小题2分,共20分)1.以下4组用户定义标识符中&#xf…

重磅!中国最赚钱的公司,要上市了!

全世界只有3.14 % 的人关注了数据与算法之美12月31日,中国烟草子公司中烟国际(香港)神秘地向香港交易所递交了IPO的材料,赶上了2018年的末班车。嫡子上市,中国烟草自己向众人掀起了裙裾一角。过去三年,中烟…

浅谈VS2012单元测试

1、先建一个工程此工程带有待测试的方法 2、在解决方案中建立单元测试 3、在测试项目中添加测试项目的引用 4、写测试用例 namespace UnitTestProject1 {[TestClass]public class UnitTest1{[TestMethod]public void TestMethod1(){var restClient (IRestClient)new JsonServi…

我写代码时的小倔强

分享自己写代码时的好习惯,让你的编程能力突飞猛进!大家好,我是鱼皮,上回说到,很多同学在学编程时不注重代码质量,养成坏习惯的同时,失去了提升自己编程能力的机会。还没读上篇文章的同学&#…

10个舍不得删的高质量公号

全世界有3.14 % 的人已经关注了数据与算法之美在信息爆炸的时代快节奏的生活里 你是否曾有一瞬间觉得忙碌而空虚?以下10个优质公众号能让你在闲暇的时候不断的提升自我,拓宽视野愿以书卷气,行我路千里历史学资讯ID:tongbanlishi▲…

ML.NET Cookbook:(7)如何训练回归模型?

通常,为了在ML.NET中训练任何模型,您将经历三个步骤:弄清楚训练数据如何以IDataView形式进入ML.NET。将“学习管道”构建为一系列基本的“运算符”(估计器)。在管道上调用Fit以获得经过训练的模型。示例文件[1]:featur…

android动画送礼物,Android仿直播类app赠送礼物功能

直播界面实现的是播放本地的视频文件:/*** 直播界面,用于对接直播功能*/public class LiveFrag extends Fragment {private ImageView img_thumb;private VideoView video_view;NullableOverridepublic View onCreateView(NonNull LayoutInflater inflat…

一张纸一幅图,竟然提高了10倍的学习和工作效率!?

人类大脑的容量远远超出一般人的想象,时到21世纪的今天,我们对大脑的运用远远不够。大脑机能的使用率基于我们的思维模式,而思维导图正是开发大脑中最有效的利器!之前小木给大家推荐了一套基于少儿大脑思维开发的书籍——东尼博赞…

C# 消息队列之MSMQ

首先说一下,消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务,也就是Windows操作系统的功能,并不是.Net提供的。消息队列(MSMQ)技术使得运行于不同时间的应用程序能够在各种各样的网络和可能暂时脱机的系统之…

惊呆了!竟然还有这样的操作!

2018已成为过去,2019的序幕已经悄然打开!2019开年钜惠盛大来袭!(福利在最后!!!)Python专场Python快速入门实战(59.9)人工智能的浪潮下,Python因其…

使用 .NET 升级助手将.NET Framework应用迁移到.NET 5

从.NET Framework 迁移到.NET 5 犹如搬家,我们都知道搬家是很痛苦的,我们请求搬家公司来减轻我们的压力,.NET 升级助手 的作用就类似我们聘请的搬家公司,帮助我们处理繁重乏味的迁移工作。.NET 升级助手是一个全局命令行工具&…