4
4
[ ![ License] ( https://img.shields.io/badge/license-Apache%202-blue.svg )] ( LICENSE )
5
5
[ ![ Version] ( https://img.shields.io/github/release/PaddlePaddle/PaddleHub.svg )] ( https://github.com/PaddlePaddle/PaddleHub/releases )
6
6
7
- PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习工具,可以结合预训练模型更便捷地开展迁移学习工作。PaddleHub特性:
8
-
9
- * 便捷地获取PaddlePaddle生态下的所有预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、语言模型、视频分类、图像生成、图像分割等主流模型。
10
- * 更多详情可查看官网:https://www.paddlepaddle.org.cn/hub
11
- * 通过PaddleHub Fine-tune API,结合少量代码即可完成** 大规模预训练模型** 的迁移学习,具体Demo可参考以下链接:
12
- * [ 文本分类] ( ./demo/text-classification )
13
- * [ 序列标注] ( ./demo/sequence-labeling )
14
- * [ 多标签分类] ( ./demo/multi-label-classification )
15
- * [ 图像分类] ( ./demo/image-classification )
16
- * [ 检索式问答任务] ( ./demo/qa_classification )
17
- * [ 回归任务] ( ./demo/sentence_similarity )
18
- * [ 句子语义相似度计算] ( ./demo/sentence_similarity )
19
- * [ 阅读理解任务] ( ./demo/reading-comprehension )
20
- * 支持超参优化(AutoDL Finetuner),自动调整超参数,给出效果较佳的超参数组合。
21
- * [ PaddleHub超参优化功能AutoDL Finetuner使用示例] ( ./demo/autofinetune )
22
- * 引入『** 模型即软件** 』的设计理念,通过Python API或者命令行实现一键预测,更方便地应用PaddlePaddle模型库。
23
- * [ PaddleHub命令行工具介绍] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7 )
24
- * 一键Module服务化部署 - HubServing
25
- * [ PaddleHub-Serving一键服务部署] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Serving%E4%B8%80%E9%94%AE%E6%9C%8D%E5%8A%A1%E9%83%A8%E7%BD%B2 )
26
- * [ 使用示例] ( ./demo/serving )
7
+ PaddleHub是飞桨预训练模型管理和迁移学习工具,通过PaddleHub开发者可以使用高质量的预训练模型结合Fine-tune API快速完成迁移学习到应用部署的全流程工作。PaddleHub具有以下特性:
8
+
9
+ * 便捷获取飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。更多模型详情请查看官网:https://www.paddlepaddle.org.cn/hub
10
+ * 通过高质量预训练模型与PaddleHub Fine-tune API,只需要少量代码即可实现自然语言处理和计算机视觉场景的深度学习模型,更多Demo请参考以下链接:
11
+
12
+ [ 文本分类] ( ./demo/text_classification ) [ 序列标注] ( ./demo/sequence_labeling ) [ 多标签分类] ( ./demo/multi_label_classification ) [ 图像分类] ( ./demo/image_classification ) [ 检索式问答任务] ( ./demo/qa_classification ) [ 回归任务] ( ./demo/regression ) [ 句子语义相似度计算] ( ./demo/sentence_similarity ) [ 阅读理解任务] ( ./demo/reading_comprehension )
13
+
14
+ * 『** 模型即软件** 』的设计理念,通过Python API或命令行实现快速预测,更方便地使用PaddlePaddle模型库,更多介绍请参考教程[ PaddleHub命令行工具介绍] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7 )
15
+ * PaddleHub提供便捷的服务化部署能力,简单一行命令即可搭建属于自己的模型的API服务,更多详情请参考教程[ PaddleHub Serving一键服务化部署] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Serving%E4%B8%80%E9%94%AE%E6%9C%8D%E5%8A%A1%E9%83%A8%E7%BD%B2 ) 和[ 使用示例] ( ./demo/serving )
16
+ * 支持AutoDL Finetuner超参优化技术, 自动搜索最优模型超参得到更好的模型效果。详情请参考[ AutoDL Finetuner超参优化功能教程] ( ./tutorial/autofinetune.md )
27
17
28
18
## 目录
29
19
@@ -53,7 +43,7 @@ pip安装方式如下:
53
43
``` shell
54
44
$ pip install paddlehub
55
45
```
56
- 2 . 下载数据集、module等,PaddleHub要求机器可以访问外网 。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下:
46
+ 2 . 使用PaddleHub下载数据集、预训练模型等,要求机器可以访问外网 。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下:
57
47
58
48
``` python
59
49
import paddlehub
@@ -64,92 +54,93 @@ paddlehub.server_check()
64
54
65
55
66
56
## 快速体验
67
- 安装成功后,执行下面的命令,可以快速体验PaddleHub无需代码、一键预测的命令行功能:
68
-
69
- ` 示例一 `
57
+ 安装成功后,执行命令[ hub run] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7#run ) ,可以快速体验PaddleHub无需代码、一键预测的命令行功能,如下三个示例:
70
58
71
59
使用[ 词法分析] ( http://www.paddlepaddle.org.cn/hub?filter=category&value=LexicalAnalysis ) 模型LAC进行分词
72
60
``` shell
73
61
$ hub run lac --input_text " 今天是个好日子"
74
62
[{' word' : [' 今天' , ' 是' , ' 个' , ' 好日子' ], ' tag' : [' TIME' , ' v' , ' q' , ' n' ]}]
75
63
```
76
64
77
- ` 示例二 `
78
-
79
65
使用[ 情感分析] ( http://www.paddlepaddle.org.cn/hub?filter=category&value=SentimentAnalysis ) 模型Senta对句子进行情感预测
80
66
``` shell
81
67
$ hub run senta_bilstm --input_text " 今天天气真好"
82
68
{' text' : ' 今天天气真好' , ' sentiment_label' : 1, ' sentiment_key' : ' positive' , ' positive_probs' : 0.9798, ' negative_probs' : 0.0202}]
83
69
```
84
70
85
- ` 示例三 `
86
-
87
71
使用[ 目标检测] ( http://www.paddlepaddle.org.cn/hub?filter=category&value=ObjectDetection ) 模型 SSD/YOLO v3/Faster RCNN 对图片进行目标检测
88
72
``` shell
89
- $ wget --no-check-certificate https://paddlehub.bj.bcebos.com/resources/test_object_detection.jpg
73
+ $ wget https://paddlehub.bj.bcebos.com/resources/test_object_detection.jpg
90
74
$ hub run ssd_mobilenet_v1_pascal --input_path test_object_detection.jpg
91
- $ hub run yolov3_coco2017 --input_path test_object_detection.jpg
75
+ $ hub run yolov3_darknet53_coco2017 --input_path test_object_detection.jpg
92
76
$ hub run faster_rcnn_coco2017 --input_path test_object_detection.jpg
93
77
```
94
78
![ SSD检测结果] ( https://raw.githubusercontent.com/PaddlePaddle/PaddleHub/release/v1.3/docs/imgs/object_detection_result.png )
95
79
96
- 除了上述三类模型外,PaddleHub还发布了语言模型、语义模型、图像分类、生成模型、视频分类等业界主流模型,更多PaddleHub已经发布的模型,请前往 https://www.paddlepaddle.org.cn/hub 查看
80
+ 除了上述三类模型外,PaddleHub还发布了图像分类、语义模型、视频分类、图像生成、图像分割、文本审核、关键点检测等业界主流模型,更多PaddleHub已经发布的模型,请前往 https://www.paddlepaddle.org.cn/hub 查看
81
+
82
+ ## 教程
97
83
98
- 同时, 我们在AI Studio上提供了IPython NoteBook形式的demo,您可以直接在平台上在线体验,链接如下:
84
+ 我们在AI Studio上提供了IPython NoteBook形式的demo,您可以直接在平台上在线体验,链接如下:
99
85
100
- | 类别| AIStudio链接|
101
- | -| -|
102
- |ERNIE Tiny 文本分类|[ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/186443 )
103
- | ERNIE文本分类| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectDetail/79380 ) |
104
- | ERNIE序列标注| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectDetail/79377 ) |
105
- | ELMo文本分类| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectDetail/79400 ) |
106
- | senta情感分类| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectDetail/79398 ) |
107
- | 图像分类| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectDetail/79378 ) |
108
- | 自定义数据FineTune(序列标注任务)| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/184200 ) |
109
- | 自定义数据FineTune(文本分类任务)| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/185121 ) |
86
+ | 预训练模型| 任务类型| 数据集| AIStudio链接| 备注|
87
+ | -| -| -| -| -|
88
+ | ResNet| 图像分类| 猫狗数据集DogCat| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216772 ) ||
89
+ | ERNIE| 文本分类| 中文情感分类数据集ChnSentiCorp| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216764 ) ||
90
+ | ERNIE| 文本分类| 中文新闻分类数据集THUNEWS| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216649 ) | 本教程讲述了如何将自定义数据集加载,并利用Fine-tune API完成文本分类迁移学习。|
91
+ | ERNIE| 序列标注| 中文序列标注数据集MSRA_NER| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216787 ) ||
92
+ | ERNIE| 序列标注| 中文快递单数据集Express| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216683 ) | 本教程讲述了如何将自定义数据集加载,并利用Fine-tune API完成序列标注迁移学习。|
93
+ | ERNIE Tiny| 文本分类| 中文情感分类数据集ChnSentiCorp| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/215599 ) ||
94
+ | Senta| 文本分类| 中文情感分类数据集ChnSentiCorp| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216851 ) | 本教程讲述了任何利用Senta和Fine-tune API完成情感分类迁移学习。|
95
+ | Senta| 情感分析预测| N/A| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216735 ) ||
96
+ | LAC| 词法分析| N/A| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/215641 ) ||
97
+ | Ultra-Light-Fast-Generic-Face-Detector-1MB| 人脸检测| N/A| [ 点击体验] ( https://aistudio.baidu.com/aistudio/projectdetail/216749 ) ||
110
98
111
99
112
- ## 教程
100
+ 同时,关于PaddleHub更多信息参考:
101
+
102
+ [ Fine-tune API] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Finetune-API )
103
+
104
+ [ 自定义数据集如何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 )
113
105
114
- PaddleHub Fine-tune API 详情参考 [ wiki教程 ] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Finetune-API )
106
+ [ 实现自定义迁移任务 ] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub:-%E8%87%AA%E5%AE%9A%E4%B9%89Task )
115
107
116
- PaddleHub如何完成迁移学习,详情参考 [ wiki教程 ] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E4%B8%8E%E8%BF%81%E7%A7%BB %E5%AD%A6%E4%B9%A0 )
108
+ [ PaddleHub Serving一键服务化部署 ] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Serving %E4%B8%80%E9%94%AE%E6%9C%8D %E5%8A%A1%E9%83%A8%E7%BD%B2 )
117
109
118
- PaddleHub如何自定义迁移任务,详情参考[ wiki教程] ( https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub:-%E8%87%AA%E5%AE%9A%E4%B9%89Task )
110
+ [ 自动优化超参AutoDL Finetuner使用教程] ( https://github.com/PaddlePaddle/PaddleHub/blob/release/v1.3/tutorial/autofinetune.md )
111
+
112
+ [ 迁移学习与ULMFiT微调策略] ( https://github.com/PaddlePaddle/PaddleHub/blob/release/v1.3/tutorial/strategy_exp.md )
119
113
120
- PaddleHub如何自动优化超参数,详情参考[ AutoDL Finetuner使用教程] ( https://github.com/PaddlePaddle/PaddleHub/blob/release/v1.3/tutorial/autofinetune.md )
121
114
122
- PaddleHub如何使用ULMFiT策略微调预训练模型,详情参考[ PaddleHub 迁移学习与ULMFiT微调策略] ( https://github.com/PaddlePaddle/PaddleHub/blob/release/v1.3/tutorial/strategy_exp.md )
123
115
124
116
## FAQ
125
117
126
- ** Q:** 利用PaddleHub ernie/bert进行Finetune时,运行出错并提示` paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2 ` 等信息
118
+ ** Q:** 利用PaddleHub Fine-tune如何适配自定义数据集
119
+
120
+ ** 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 )
127
121
128
- ** A:** 因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。可以将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。
129
- ``` shell
130
- $ pip install --upgrade paddlehub
131
- $ hub uninstall ernie
132
- ```
133
122
134
123
** Q:** 使用PaddleHub时,无法下载预置数据集、Module的等现象
135
124
136
- ** A:** PaddleHub中的预训练模型和预置数据集都需要通过服务端进行下载,因此PaddleHub默认用户访问外网权限。
137
- 可以通过以下命令确认是否可以访问外网。
125
+ ** A:** 下载数据集、module等,PaddleHub要求机器可以访问外网。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下:
138
126
139
127
``` python
140
- import requests
128
+ import paddlehub
129
+ paddlehub.server_check()
130
+ # 如果可以连接远端PaddleHub-Server,则显示Request Hub-Server successfully.
131
+ # 如果无法连接远端PaddleHub-Server,则显示Request Hub-Server unsuccessfully.
132
+ ```
141
133
142
- res = requests.get(' http://paddlepaddle.org.cn/paddlehub/search' , {' word' : ' ernie' , ' type' : ' Module' })
143
- print (res)
134
+ ** Q:** 利用PaddleHub ernie/bert进行Fine-tune时,运行出错并提示` paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2 ` 等信息
144
135
145
- # the common result is like this:
146
- # <Response [200]>
136
+ ** A:** 因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。可以将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。
137
+ ``` shell
138
+ $ pip install --upgrade paddlehub
139
+ $ hub uninstall ernie
147
140
```
148
- ** Note:** PaddleHub 1.1.1版本已支持离线运行Module
149
141
150
- ** Q:** 利用PaddleHub Finetune如何适配自定义数据集
151
142
152
- ** A: ** 参考 [ PaddleHub适配自定义数据集完成Finetune ] ( 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 )
143
+ ** NOTE ** : PaddleHub 1.1.1版本已支持离线运行Module
153
144
154
145
155
146
** 更多问题**
@@ -165,4 +156,6 @@ print(res)
165
156
166
157
## 更新历史
167
158
159
+ PaddleHub v1.4.1已发布!
160
+
168
161
详情参考[ 更新历史] ( ./RELEASE.md )
0 commit comments