PaddleHub学习笔记之NPL
PaddleHub简介
PaddleHub是依托于PaddlePaddle框架的预训练模型应用工具,号称十行代码完成ERNIE工业级文本分类,如此可见其开发的简易程度。开发者可以便捷地使用高质量的预训练模型结合Fine-tune API快速完成模型迁移到部署的全流程工作。PaddleHub提供的预训练模型涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。其GitHub地址为https://github.com/PaddlePaddle/PaddleHub。
PaddleHub的安装
PaddleHub目前支持CPU和GPU计算,所以如果只使用CPU,直接pip安装paddlepaddle,代码如下:
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
使用GPU请按照以下操作。
CUDA安装
安装PaddleHub之前,需要我们先安装PaddlePaddle(推荐最新版本),需要注意的是,我们需要需要安装CUDA,安装包下载地址https://developer.nvidia.com/cuda-downloads:
Linux平台
Windows平台
PaddlePaddle安装
然后再安装gpu版本的PaddlePaddle,安装脚本为:
python -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
PaddleHub安装
安装PaddleHub
pip install paddlehub
THUNEW分类实战
NLP预训练模型
模型名 | PaddleHub Module |
---|---|
ERNIE, Chinese | hub.Module(name='ernie') |
ERNIE Tiny, Chinese | hub.Module(name='ernie_tiny') |
ERNIE 2.0 Base, English | hub.Module(name='ernie_v2_eng_base') |
ERNIE 2.0 Large, English | hub.Module(name='ernie_v2_eng_large') |
RoBERTa-Large, Chinese | hub.Module(name='roberta_wwm_ext_chinese_L-24_H-1024_A-16') |
RoBERTa-Base, Chinese | hub.Module(name='roberta_wwm_ext_chinese_L-12_H-768_A-12') |
BERT-Base, Uncased | hub.Module(name='bert_uncased_L-12_H-768_A-12') |
BERT-Large, Uncased | hub.Module(name='bert_uncased_L-24_H-1024_A-16') |
BERT-Base, Cased | hub.Module(name='bert_cased_L-12_H-768_A-12') |
BERT-Large, Cased | hub.Module(name='bert_cased_L-24_H-1024_A-16') |
BERT-Base, Multilingual Cased | hub.Module(nane='bert_multi_cased_L-12_H-768_A-12') |
BERT-Base, Chinese | hub.Module(name='bert_chinese_L-12_H-768_A-12') |
本次新闻标题分类为中文选用ERNIE
安装ERNIE预训练模型
hub install ernie
加载数据集
载入数据,这里使用里官方提供的数据模块。
import paddlehub as hub
dataset = hub.dataset.THUCNEWS()
如果是我们自己的数据则需要重新写dataset这块,官网说明自定义数据集方式具体方式为:
import io
import os
from paddlehub.dataset.base_nlp_dataset import BaseNLPDataset
from paddlehub.dataset import InputExample
class THUCNEWS(BaseNLPDataset):
def __init__(self)