README.md 10.7 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

W
wuzewu 已提交
5
[![Build Status](https://travis-ci.org/PaddlePaddle/PaddleHub.svg?branch=release/v1.6)](https://travis-ci.org/PaddlePaddle/PaddleHub)
W
wuzewu 已提交
6
[![License](https://img.shields.io/badge/license-Apache%202-red.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 9
![python version](https://img.shields.io/badge/python-3.6+-orange.svg)
![support os](https://img.shields.io/badge/os-linux%2C%20win%2C%20mac-yellow.svg)
W
wuzewu 已提交
10

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

S
Steffy-zxf 已提交
14
## 特性
G
grasswolfs 已提交
15 16 17 18 19 20
- **模型即软件**:通过Python API或命令行实现模型调用,可快速体验或集成飞桨特色预训练模型。[-> 效果展示](#模型即软件)
- **易用的迁移学习**:通过Fine-tune API,内置多种优化策略,只需少量代码即可完成预训练模型的Fine-tuning。[-> 效果展示](#易用的迁移学习)
- **一键模型转服务**:简单一行命令即可搭建属于自己的深度学习模型API服务完成部署。[-> 效果展示](#一键模型转服务)
- **自动超参优化**:内置AutoDL Finetuner能力,一键启动自动化超参搜索。


Z
Zeyu Chen 已提交
21
## 文档教程 [[readthedocs]](https://paddlehub.readthedocs.io/zh_CN/develop/index.html)
G
grasswolfs 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

- [概述](./docs/overview.md)
- [PIP安装](./docs/installation.md)
- [快速体验](./docs/quickstart.md)
- [丰富的预训练模型](./docs/pretrained_models.md)
    - [飞桨优势特色模型](./docs/pretrained_models.md)
    - [计算机视觉](./docs/pretrained_models.md)
      - [图像分类](./docs/pretrained_models.md)
      - [目标检测](./docs/pretrained_models.md)
      - [图像分割](./docs/pretrained_models.md)
      - [关键点检测](./docs/pretrained_models.md)
      - [图像生成](./docs/pretrained_models.md)
    - [自然语言处理](./docs/pretrained_models.md)
      - [中文词法分析与词向量](./docs/pretrained_models.md)
      - [情感分析](./docs/pretrained_models.md)
      - [文本相似度计算](./docs/pretrained_models.md)
      - [文本生成](./docs/pretrained_models.md)
      - [语义表示](./docs/pretrained_models.md)
    - [视频](./docs/pretrained_models.md)
- 使用教程
    - [命令行工具](./docs/tutorial/cmdintro.md)
    - [自定义数据](./docs/tutorial/how_to_load_data.md)
    - [Fine-tune模型转化为PaddleHub Module](./docs/tutorial/finetuned_model_to_module.md)
D
Daniel Yang 已提交
45
    - [自定义任务](./docs/Secondary_development/how_to_define_task.md)
G
grasswolfs 已提交
46
    - [服务化部署](./docs/tutorial/serving.md)
D
Daniel Yang 已提交
47
- 进阶指南
G
grasswolfs 已提交
48 49 50 51
    - [文本Embedding服务](./docs/tutorial/bert_service.md)
    - [语义相似度计算](./docs/tutorial/sentence_sim.md)
    - [ULMFit优化策略](./docs/tutorial/strategy_exp.md)
    - [超参优化](./docs/tutorial/autofinetune.md)
D
Daniel Yang 已提交
52
    - [Hook机制](./docs/Secondary_development/hook.md)
G
grasswolfs 已提交
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
- API
    - [hub.dataset](./docs/reference/dataset.md)
    - [hub.task](./docs/reference/task/task.md)
    - [hub.strategy](./docs/reference/strategy.md)
    - [hub.config](./docs/reference/config.md)  
- [FAQ](./docs/faq.md)  
- 社区交流
    - [加入技术交流群](#欢迎加入PaddleHub技术交流群)
    - [贡献预训练模型](./docs/contribution/contri_pretrained_model.md)
    - [贡献代码](./docs/contribution/contri_pr.md)
- [更新历史](./docs/release.md)
- [许可证书](#许可证书)
- [致谢](#致谢)

## 效果展示

<a name="模型即软件"></a>
### 1、模型即软件
S
Steffy-zxf 已提交
71

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

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

S
Steffy-zxf 已提交
76
* 使用[文字识别](https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=TextRecognition)轻量级中文OCR模型chinese_ocr_db_crnn_mobile即可一键快速识别图片中的文字。
S
Steffy-zxf 已提交
77 78
```shell
$ wget https://paddlehub.bj.bcebos.com/model/image/ocr/test_ocr.jpg
S
Steffy-zxf 已提交
79
$ hub run chinese_ocr_db_crnn_mobile --input_path test_ocr.jpg --visualization=True
S
Steffy-zxf 已提交
80 81 82 83 84 85 86 87
```

预测结果图片保存在当前运行路径下ocr_result文件夹中,如下图所示。

<p align="center">
 <img src="./docs/imgs/ocr_res.jpg" width='70%' align="middle"  
</p>

S
Steffy-zxf 已提交
88
* 使用[目标检测](https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=ObjectDetection)模型pyramidbox_lite_mobile_mask对图片进行口罩检测
S
Steffy-zxf 已提交
89
```shell
S
Steffy-zxf 已提交
90 91
$ 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 已提交
92
```
Z
Zeyu Chen 已提交
93 94 95
<p align="center">
 <img src="./docs/imgs/test_mask_detection_result.jpg" align="middle"  
</p>
S
Steffy-zxf 已提交
96

S
Steffy-zxf 已提交
97
* 使用[词法分析](https://www.paddlepaddle.org.cn/hublist?filter=en_category&value=LexicalAnalysis)模型LAC进行分词
S
Steffy-zxf 已提交
98
```shell
S
Steffy-zxf 已提交
99 100 101 102 103
$ hub run lac --input_text "现在,慕尼黑再保险公司不仅是此类行动的倡议者,更是将其大量气候数据整合进保险产品中,并与公众共享大量天气信息,参与到新能源领域的保障中。"
[{
    'word': ['现在', ',', '慕尼黑再保险公司', '不仅', '是', '此类', '行动', '的', '倡议者', ',', '更是', '将', '其', '大量', '气候', '数据', '整合', '进', '保险', '产品', '中', ',', '并', '与', '公众', '共享', '大量', '天气', '信息', ',', '参与', '到', '新能源', '领域', '的', '保障', '中', '。'],
    'tag':  ['TIME', 'w', 'ORG', 'c', 'v', 'r', 'n', 'u', 'n', 'w', 'd', 'p', 'r', 'a', 'n', 'n', 'v', 'v', 'n', 'n', 'f', 'w', 'c', 'p', 'n', 'v', 'a', 'n', 'n', 'w', 'v', 'v', 'n', 'n', 'u', 'vn', 'f', 'w']
}]
S
Steffy-zxf 已提交
104 105
```

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

G
grasswolfs 已提交
108 109 110
<a name="易用的迁移学习"></a>

### 2、易用的迁移学习
S
Steffy-zxf 已提交
111

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

Z
Zeyu Chen 已提交
114
* [Demo示例](./demo)提供丰富的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)等场景的模型迁移示例。
S
Steffy-zxf 已提交
115

G
grasswolfs 已提交
116 117 118
<p align="center">
 <img src="./docs/imgs/paddlehub_finetune.gif" align="middle"  
</p>
S
Steffy-zxf 已提交
119

G
grasswolfs 已提交
120 121 122
<p align='center'>
 十行代码完成ERNIE工业级文本分类
</p>
S
Steffy-zxf 已提交
123

G
grasswolfs 已提交
124
* 如需在线快速体验,请点击[PaddleHub教程合集](https://aistudio.baidu.com/aistudio/projectdetail/231146),可使用AI Studio平台提供的GPU算力进行快速尝试。
S
Steffy-zxf 已提交
125

G
grasswolfs 已提交
126 127
<a name="一键模型转服务"></a>
### 3、一键模型转服务
S
Steffy-zxf 已提交
128

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

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

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

G
grasswolfs 已提交
137
### 4、自动超参优化
S
Steffy-zxf 已提交
138

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

S
Steffy-zxf 已提交
141
## FAQ
S
Steffy-zxf 已提交
142

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

S
Steffy-zxf 已提交
145
**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 已提交
146 147


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

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

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

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

Z
Zeyu Chen 已提交
161
**A:** 预训练模型版本与PaddlePaddle版本不匹配。可尝试将PaddlePaddle和PaddleHub升级至最新版本,并将原ERNIE模型卸载。
K
kinghuin 已提交
162 163 164
```shell
$ pip install --upgrade paddlehub
$ hub uninstall ernie
S
Steffy-zxf 已提交
165
```
G
grasswolfs 已提交
166
**[More](./docs/faq.md)**
S
Steffy-zxf 已提交
167

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

G
grasswolfs 已提交
170 171
<a name="欢迎加入PaddleHub技术交流群"></a>
## 微信扫描二维码,欢迎加入PaddleHub技术交流群
Z
Zeyu Chen 已提交
172

G
grasswolfs 已提交
173
<div align="center">
G
grasswolfs 已提交
174
<img src="./docs/imgs/joinus.JPEG"  width = "200" height = "200" />
G
grasswolfs 已提交
175 176
</div>  
如扫码失败,请添加微信15711058002,并备注“Hub”,运营同学会邀请您入群。  
W
wuzewu 已提交
177

G
grasswolfs 已提交
178 179 180
<a name="许可证书"></a>
## 许可证书
本项目的发布受<a href="https://github.com/PaddlePaddle/PaddleOCR/blob/master/LICENSE">Apache 2.0 license</a>许可认证。
S
Steffy-zxf 已提交
181

G
grasswolfs 已提交
182 183 184
<a name="致谢"></a>
## 致谢
我们非常欢迎您为PaddleHub贡献代码,也十分感谢您的反馈。
W
wuzewu 已提交
185 186 187 188 189 190

* 非常感谢[Austendeng](https://github.com/Austendeng)贡献了修复SequenceLabelReader的pr
* 非常感谢[cclauss](https://github.com/cclauss)贡献了优化travis-ci检查的pr
* 非常感谢[奇想天外](http://www.cheerthink.com/)贡献了口罩检测的demo
* 非常感谢[mhlwsk](https://github.com/mhlwsk)贡献了修复序列标注预测demo的pr
* 非常感谢[zbp-xxxp](https://github.com/zbp-xxxp)贡献了看图作诗的module