README.md 8.5 KB
Newer Older
S
Steffy-zxf 已提交
1 2 3
<p align="center">
 <img src="./docs/imgs/paddlehub_logo.jpg" align="middle"  
</p>
Z
Zeyu Chen 已提交
4

Z
Zeyu Chen 已提交
5
[![Build Status](https://travis-ci.org/PaddlePaddle/PaddleHub.svg?branch=release/v1.3)](https://travis-ci.org/PaddlePaddle/PaddleHub)
W
wuzewu 已提交
6
[![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE)
Z
Zeyu Chen 已提交
7
[![Version](https://img.shields.io/github/release/PaddlePaddle/PaddleHub.svg)](https://github.com/PaddlePaddle/PaddleHub/releases)
W
wuzewu 已提交
8

Z
Zeyu Chen 已提交
9
PaddleHub是飞桨生态的预训练模型应用工具,开发者可以便捷地使用高质量的预训练模型结合Fine-tune API快速完成模型迁移到部署的全流程工作。PaddleHub提供的预训练模型涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。更多详情可查看官网:https://www.paddlepaddle.org.cn/hub **目前最新版本为1.6.0**
K
kinghuin 已提交
10 11


Z
Zeyu Chen 已提交
12
PaddleHub以预训练模型应用为核心具备以下特点:  
K
kinghuin 已提交
13

Z
Zeyu Chen 已提交
14
* **[模型即软件](#模型即软件)**,通过Python API或命令行实现模型调用,可快速体验或集成飞桨特色预训练模型。
S
Steffy-zxf 已提交
15

Z
Zeyu Chen 已提交
16
* **[易用的迁移学习](#迁移学习)**,通过Fine-tune API,内置多种优化策略,只需少量代码即可完成预训练模型的Fine-tuning。
S
Steffy-zxf 已提交
17

Z
Zeyu Chen 已提交
18
* **[一键模型转服务](#服务化部署paddlehub-serving)**,简单一行命令即可搭建属于自己的深度学习模型API服务。
S
Steffy-zxf 已提交
19

Z
Zeyu Chen 已提交
20
* **[自动超参优化](#超参优化autodl-finetuner)**,内置AutoDL Finetuner能力,一键启动自动化超参搜索。
S
Steffy-zxf 已提交
21

S
Steffy-zxf 已提交
22

S
Steffy-zxf 已提交
23
<p align="center">
S
Steffy-zxf 已提交
24 25 26 27 28
 <img src="./docs/imgs/paddlehub_finetune.gif" align="middle"  
</p>

<p align='center'>
 十行代码完成ERNIE工业级文本分类
S
Steffy-zxf 已提交
29
</p>
Z
Zeyu Chen 已提交
30

S
Steffy-zxf 已提交
31

Z
Zeyu Chen 已提交
32 33
## 目录

W
wuzewu 已提交
34
* [安装](#%E5%AE%89%E8%A3%85)
S
Steffy-zxf 已提交
35
* [特性](#特性)
W
wuzewu 已提交
36 37 38
* [FAQ](#faq)
* [用户交流群](#%E7%94%A8%E6%88%B7%E4%BA%A4%E6%B5%81%E7%BE%A4)
* [更新历史](#%E6%9B%B4%E6%96%B0%E5%8E%86%E5%8F%B2)
Z
Zeyu Chen 已提交
39 40


Z
Zeyu Chen 已提交
41
## 安装
Z
Zeyu Chen 已提交
42 43

### 环境依赖
K
kinghuin 已提交
44

Z
Zeyu Chen 已提交
45
* Python>=3.6 
Z
Zeyu Chen 已提交
46
* PaddlePaddle>=1.6.1 
Z
Zeyu Chen 已提交
47
* 操作系统: Windows/Mac/Linux
走神的阿圆's avatar
走神的阿圆 已提交
48

Z
Zeyu Chen 已提交
49 50 51 52 53 54 55
### 安装命令

```shell
pip install paddlehub
```

除上述依赖外,预训练模型和数据集的下载需要网络连接,请确保机器可以**正常访问网络**。若本地已存在相关预训练模型目录,则可以离线使用PaddleHub。
W
wuzewu 已提交
56

S
Steffy-zxf 已提交
57
## 特性
S
Steffy-zxf 已提交
58

S
Steffy-zxf 已提交
59
### 模型即软件
S
Steffy-zxf 已提交
60

Z
Zeyu Chen 已提交
61
PaddleHub采用模型即软件的设计理念,所有的预训练模型与Python软件包类似,具备版本的概念,通过`hub install/uninstall` 可以便捷完成模型的升级和卸载。还可以通过Python的API或命令行实现快速预测的软件集成,更方便地应用和集成深度学习模型。
Z
Zeyu Chen 已提交
62 63

安装PaddleHub后,执行命令[hub run](./docs/tutorial/cmdintro.md),即可快速体验无需代码、一键预测的功能:
S
Steffy-zxf 已提交
64

S
Steffy-zxf 已提交
65 66
* 使用[目标检测](http://www.paddlepaddle.org.cn/hub?filter=category&value=ObjectDetection)模型pyramidbox_lite_mobile_mask对图片进行口罩检测
```shell
S
Steffy-zxf 已提交
67 68
$ wget https://paddlehub.bj.bcebos.com/resources/test_mask_detection.jpg
$ hub run pyramidbox_lite_mobile_mask --input_path test_mask_detection.jpg
S
Steffy-zxf 已提交
69
```
Z
Zeyu Chen 已提交
70 71 72
<p align="center">
 <img src="./docs/imgs/test_mask_detection_result.jpg" align="middle"  
</p>
S
Steffy-zxf 已提交
73

S
Steffy-zxf 已提交
74
* 使用[词法分析](http://www.paddlepaddle.org.cn/hub?filter=category&value=LexicalAnalysis)模型LAC进行分词
S
Steffy-zxf 已提交
75 76 77 78 79
```shell
$ hub run lac --input_text "今天是个好日子"
[{'word': ['今天', '是', '个', '好日子'], 'tag': ['TIME', 'v', 'q', 'n']}]
```

S
Steffy-zxf 已提交
80
* 使用[情感分析](http://www.paddlepaddle.org.cn/hub?filter=category&value=SentimentAnalysis)模型Senta对句子进行情感预测
S
Steffy-zxf 已提交
81
```shell
S
Steffy-zxf 已提交
82 83
$ hub run senta_bilstm --input_text "今天天气真好"
{'text': '今天天气真好', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9798, 'negative_probs': 0.0202}]
S
Steffy-zxf 已提交
84 85
```

86 87 88 89 90
* 使用[目标检测](http://www.paddlepaddle.org.cn/hub?filter=category&value=ObjectDetection)模型Ultra-Light-Fast-Generic-Face-Detector-1MB对图片进行人脸识别
```shell
$ wget https://paddlehub.bj.bcebos.com/resources/test_image.jpg
$ hub run ultra_light_fast_generic_face_detector_1mb_640 --input_path test_image.jpg
```
Z
Zeyu Chen 已提交
91 92 93
<p align="center">
 <img src="./docs/imgs/face_detection_result.jpeg" align="middle"  
</p>
94

Z
Zeyu Chen 已提交
95
* 使用[图像分割](https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=ImageSegmentation)模型对进行人像扣图和人体部件识别
Z
Zeyu Chen 已提交
96 97

```shell
98 99
$ wget https://paddlehub.bj.bcebos.com/resources/test_image.jpg
$ hub run ace2p --input_path test_image.jpg
Z
Zeyu Chen 已提交
100
$ hub run deeplabv3p_xception65_humanseg --input_path test_image.jpg
S
Steffy-zxf 已提交
101
```
Z
Zeyu Chen 已提交
102 103 104
<p align="center">
 <img src="./docs/imgs/img_seg_result.jpeg" align="middle"  
</p>
S
Steffy-zxf 已提交
105

Z
Zeyu Chen 已提交
106
PaddleHub还提供图像分类、语义模型、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型,更多模型介绍,请前往 [https://www.paddlepaddle.org.cn/hub](https://www.paddlepaddle.org.cn/hub) 查看
K
kinghuin 已提交
107

Z
Zeyu Chen 已提交
108
### 易用的迁移学习
S
Steffy-zxf 已提交
109

Z
Zeyu Chen 已提交
110
通过Fine-tune API,只需要少量代码即可完成深度学习模型在自然语言处理和计算机视觉场景下的迁移学习。
S
Steffy-zxf 已提交
111

Z
Zeyu Chen 已提交
112
* Demo合集
S
Steffy-zxf 已提交
113

Z
Zeyu Chen 已提交
114
PaddleHub提供了使用Fine-tune API和预训练模型完成[文本分类](./demo/text_classification)[序列标注](./demo/sequence_labeling)[多标签分类](./demo/multi_label_classification)[图像分类](./demo/image_classification)[检索式问答任务](./demo/qa_classification)[回归任务](./demo/regression)[句子语义相似度计算](./demo/sentence_similarity)[阅读理解任务](./demo/reading_comprehension)等迁移任务的示例,更多教程请参见[demo](./demo)
S
Steffy-zxf 已提交
115

Z
Zeyu Chen 已提交
116
* PaddleHub还提供基于AI Studio平台的教程合集,可以使用免费GPU算力进行在线体验。 [教程合集地址](https://aistudio.baidu.com/aistudio/projectdetail/231146)
S
Steffy-zxf 已提交
117

Z
Zeyu Chen 已提交
118
更多Fine-tune API的使用教程可参考:
K
kinghuin 已提交
119

Z
Zeyu Chen 已提交
120
* [Fine-tune API](./docs/reference)
K
kinghuin 已提交
121

Z
Zeyu Chen 已提交
122
* [如何对自定义数据集进行Fine-tuning](./docs/tutorial/how_to_load_data.md)
S
Steffy-zxf 已提交
123

Z
Zeyu Chen 已提交
124
* [如何自定义迁移任务](./docs/tutorial/how_to_define_task.md)
S
Steffy-zxf 已提交
125

Z
Zeyu Chen 已提交
126
* [ULMFiT优化策略](./docs/tutorial/strategy_exp.md)
S
Steffy-zxf 已提交
127

Z
Zeyu Chen 已提交
128
### 一键模型转服务
S
Steffy-zxf 已提交
129

Z
Zeyu Chen 已提交
130
PaddleHub提供便捷的模型转服务的能力,只需简单一行命令即可完成模型的HTTP服务部署。通过以下命令即可快速启动LAC词法分析服务:
S
Steffy-zxf 已提交
131 132

```shell
Z
Zeyu Chen 已提交
133
$ hub serving start --modules lac
S
Steffy-zxf 已提交
134 135
```

Z
Zeyu Chen 已提交
136
更多关于模型服务化使用说明参见[PaddleHub模型一键能服务化部署](./docs/tutorial/serving.md)
S
Steffy-zxf 已提交
137

Z
Zeyu Chen 已提交
138
**PaddleHub 1.5.0版本增加文本Embedding服务[Bert Service](./docs/tutorial/bert_service.md), 高性能地获取文本Embedding**
S
Steffy-zxf 已提交
139

Z
Zeyu Chen 已提交
140
### 自动超参优化
S
Steffy-zxf 已提交
141

Z
Zeyu Chen 已提交
142
PaddleHub内置AutoDL Finetuner能力,提供多种优化策略策略实现自动化超参搜索,使得模型在验证集上得到更好的结果,用户只需要一行命令`hub autofinetune`即可启动。更多详细使用说明请参见[PaddleHub超参优化](./docs/tutorial/autofinetune.md)
S
Steffy-zxf 已提交
143

S
Steffy-zxf 已提交
144
## FAQ
S
Steffy-zxf 已提交
145

S
Steffy-zxf 已提交
146
**Q:** 利用PaddleHub Fine-tune如何适配自定义数据集?
K
kinghuin 已提交
147

S
Steffy-zxf 已提交
148
**A:** 参考[PaddleHub适配自定义数据集完成Fine-tune](https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E9%80%82%E9%85%8D%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E5%AE%8C%E6%88%90FineTune)
S
Steffy-zxf 已提交
149 150


S
Steffy-zxf 已提交
151
**Q:** 使用PaddleHub时,无法下载预置数据集、Module的等现象。
S
Steffy-zxf 已提交
152

K
kinghuin 已提交
153
**A:** 下载数据集、module等,PaddleHub要求机器可以访问外网。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下:
S
Steffy-zxf 已提交
154 155

```python
K
kinghuin 已提交
156 157
import paddlehub
paddlehub.server_check()
S
Steffy-zxf 已提交
158 159
# 如果可以连接远端PaddleHub-Server,则显示Request Hub-Server successfully。
# 如果无法连接远端PaddleHub-Server,则显示Request Hub-Server unsuccessfully。
K
kinghuin 已提交
160
```
S
Steffy-zxf 已提交
161

Z
Zeyu Chen 已提交
162
**Q:** 利用PaddleHub ERNIE/BERT进行Fine-tune时,运行出错并提示`paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2`等信息。
S
Steffy-zxf 已提交
163

Z
Zeyu Chen 已提交
164
**A:** 预训练模型版本与PaddlePaddle版本不匹配。可尝试将PaddlePaddle和PaddleHub升级至最新版本,并将原ERNIE模型卸载。
K
kinghuin 已提交
165 166 167
```shell
$ pip install --upgrade paddlehub
$ hub uninstall ernie
S
Steffy-zxf 已提交
168 169
```

Z
Zeyu Chen 已提交
170
**FAQ**
S
Steffy-zxf 已提交
171 172

当安装或者使用遇到问题时,可以通过[FAQ](https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-FAQ)查找解决方案。
Z
Zeyu Chen 已提交
173
如果在FAQ中没有找到解决方案,欢迎您将问题以[Github Issues](https://github.com/PaddlePaddle/PaddleHub/issues)的形式提交给我们,我们会第一时间进行跟进。
S
Steffy-zxf 已提交
174

S
Steffy-zxf 已提交
175
## 用户交流群
Z
Zeyu Chen 已提交
176

S
Steffy-zxf 已提交
177
* 飞桨PaddlePaddle 交流群:796771754(QQ群)
Z
Zeyu Chen 已提交
178
* 飞桨ERNIE交流群:760439550(QQ群)
Z
Zeyu Chen 已提交
179

W
wuzewu 已提交
180

S
Steffy-zxf 已提交
181 182
## 更新历史

Z
Zeyu Chen 已提交
183
PaddleHub v1.6.0已发布!
K
kinghuin 已提交
184

S
Steffy-zxf 已提交
185
详情参考[更新历史](./RELEASE.md)