diff --git a/README.md b/README.md index 1ff3c61aa10f6e79c003032920b87a3475efe52c..6c24057d69a75b3dccf5202deba2487536418c6d 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,14 @@ PaddleHub是飞桨预训练模型管理和迁移学习工具,通过PaddleHub开发者可以使用高质量的预训练模型结合Fine-tune API快速完成迁移学习到应用部署的全流程工作。PaddleHub具有以下特性: -* 便捷获取飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、语言模型、视频分类、图像生成、图像分割等主流模型。更多模型详情请查看官网:https://www.paddlepaddle.org.cn/hub +* 便捷获取飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。更多模型详情请查看官网:https://www.paddlepaddle.org.cn/hub * 通过高质量预训练模型与PaddleHub Fine-tune API,只需要少量代码即可实现自然语言处理和计算机视觉场景的深度学习模型,更多Demo请参考以下链接: - * [文本分类](./demo/text-classification) - * [序列标注](./demo/sequence-labeling) - * [多标签分类](./demo/multi-label-classification) - * [图像分类](./demo/image-classification) - * [检索式问答任务](./demo/qa_classification) - * [回归任务](./demo/sentence_similarity) - * [句子语义相似度计算](./demo/sentence_similarity) - * [阅读理解任务](./demo/reading-comprehension) + + [文本分类](./demo/text-classification) [序列标注](./demo/sequence-labeling) [多标签分类](./demo/multi-label-classification) [图像分类](./demo/image-classification) [检索式问答任务](./demo/qa_classification) [回归任务](./demo/regression) [句子语义相似度计算](./demo/sentence_similarity) [阅读理解任务](./demo/reading-comprehension) * 『**模型即软件**』的设计理念,通过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) * 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) -* 支持AutoDL Finetuner超参优化技术, 自动搜索最优模型超参得到更好的模型效果。详情请参考[AutoDL Finetuner超参优化功能教程](./demo/autofinetune) +* 支持AutoDL Finetuner超参优化技术, 自动搜索最优模型超参得到更好的模型效果。详情请参考[AutoDL Finetuner超参优化功能教程](./tutorial/autofinetune.md) ## 目录 @@ -49,7 +43,7 @@ pip安装方式如下: ```shell $ pip install paddlehub ``` -2. 下载数据集、module等,PaddleHub要求机器可以访问外网。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下: +2. 使用PaddleHub下载数据集、预训练模型等,要求机器可以访问外网。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下: ```python import paddlehub @@ -60,9 +54,7 @@ paddlehub.server_check() ## 快速体验 -安装成功后,执行下面的命令,可以快速体验PaddleHub无需代码、一键预测的命令行功能: - -`示例一` +安装成功后,执行命令[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无需代码、一键预测的命令行功能,如下三个示例: 使用[词法分析](http://www.paddlepaddle.org.cn/hub?filter=category&value=LexicalAnalysis)模型LAC进行分词 ```shell @@ -70,26 +62,22 @@ $ hub run lac --input_text "今天是个好日子" [{'word': ['今天', '是', '个', '好日子'], 'tag': ['TIME', 'v', 'q', 'n']}] ``` -`示例二` - 使用[情感分析](http://www.paddlepaddle.org.cn/hub?filter=category&value=SentimentAnalysis)模型Senta对句子进行情感预测 ```shell $ hub run senta_bilstm --input_text "今天天气真好" {'text': '今天天气真好', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9798, 'negative_probs': 0.0202}] ``` -`示例三` - 使用[目标检测](http://www.paddlepaddle.org.cn/hub?filter=category&value=ObjectDetection)模型 SSD/YOLO v3/Faster RCNN 对图片进行目标检测 ```shell -$ wget --no-check-certificate https://paddlehub.bj.bcebos.com/resources/test_object_detection.jpg +$ wget https://paddlehub.bj.bcebos.com/resources/test_object_detection.jpg $ hub run ssd_mobilenet_v1_pascal --input_path test_object_detection.jpg $ hub run yolov3_coco2017 --input_path test_object_detection.jpg $ hub run faster_rcnn_coco2017 --input_path test_object_detection.jpg ``` ![SSD检测结果](https://raw.githubusercontent.com/PaddlePaddle/PaddleHub/release/v1.3/docs/imgs/object_detection_result.png) -除了上述三类模型外,PaddleHub还发布了语言模型、语义模型、图像分类、生成模型、视频分类等业界主流模型,更多PaddleHub已经发布的模型,请前往 https://www.paddlepaddle.org.cn/hub 查看 +除了上述三类模型外,PaddleHub还发布了图像分类、语义模型、视频分类、图像生成、图像分割、文本审核、关键点检测等业界主流模型,更多PaddleHub已经发布的模型,请前往 https://www.paddlepaddle.org.cn/hub 查看 ## 教程 @@ -127,33 +115,32 @@ $ hub run faster_rcnn_coco2017 --input_path test_object_detection.jpg ## FAQ -**Q:** 利用PaddleHub ernie/bert进行Finetune时,运行出错并提示`paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2`等信息 +**Q:** 利用PaddleHub Finetune如何适配自定义数据集 + +**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) -**A:** 因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。可以将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。 -```shell -$ pip install --upgrade paddlehub -$ hub uninstall ernie -``` **Q:** 使用PaddleHub时,无法下载预置数据集、Module的等现象 -**A:** PaddleHub中的预训练模型和预置数据集都需要通过服务端进行下载,因此PaddleHub默认用户访问外网权限。 -可以通过以下命令确认是否可以访问外网。 +**A:** 下载数据集、module等,PaddleHub要求机器可以访问外网。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下: ```python -import requests +import paddlehub +paddlehub.server_check() +# 如果可以连接远端PaddleHub-Server,则显示Request Hub-Server successfully. +# 如果无法连接远端PaddleHub-Server,则显示Request Hub-Server unsuccessfully. +``` -res = requests.get('http://paddlepaddle.org.cn/paddlehub/search', {'word': 'ernie', 'type': 'Module'}) -print(res) +**Q:** 利用PaddleHub ernie/bert进行Finetune时,运行出错并提示`paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2`等信息 -# the common result is like this: -# +**A:** 因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。可以将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。 +```shell +$ pip install --upgrade paddlehub +$ hub uninstall ernie ``` -**Note:** PaddleHub 1.1.1版本已支持离线运行Module -**Q:** 利用PaddleHub Finetune如何适配自定义数据集 -**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) +**Note:** PaddleHub 1.1.1版本已支持离线运行Module **更多问题** @@ -169,4 +156,6 @@ print(res) ## 更新历史 +PaddleHub v1.4.1已发布! + 详情参考[更新历史](./RELEASE.md) diff --git a/demo/README.md b/demo/README.md index 8b5d2a89bb874bd78d665c8f1995e40e663e216a..e43ecdec4826ae38f9e50b307f7ba0a06928e05a 100644 --- a/demo/README.md +++ b/demo/README.md @@ -2,46 +2,46 @@ 目前PaddleHub有以下任务示例: -* 图像分类 - * 该样例展示了PaddleHub如何将ResNet50、ResNet101、ResNet152、MobileNet、NasNet以及PNasNet作为预训练模型在Flowers、DogCat、Indoor67、Food101、StanfordDogs等数据集上进行图像分类的FineTune和预测。 +* [图像分类](./image-classification) + 该样例展示了PaddleHub如何将ResNet50、ResNet101、ResNet152、MobileNet、NasNet以及PNasNet作为预训练模型在Flowers、DogCat、Indoor67、Food101、StanfordDogs等数据集上进行图像分类的FineTune和预测。 -* 中文词法分析 - * 该样例展示了PaddleHub如何利用中文词法分析LAC进行预测。 +* [中文词法分析](./lac) + 该样例展示了PaddleHub如何利用中文词法分析LAC进行预测。 -* 情感分析 - * 该样例展示了PaddleHub如何利用中文情感分析模型Senta进行FineTune和预测。 +* [情感分析](./senta) + 该样例展示了PaddleHub如何利用中文情感分析模型Senta进行FineTune和预测。 -* 序列标注 - * 该样例展示了PaddleHub如何将ERNIE/BERT等Transformer类模型作为预训练模型在MSRA_NER数据集上完成序列标注的FineTune和预测。 +* [序列标注](./sequence-labeling) + 该样例展示了PaddleHub如何将ERNIE/BERT等Transformer类模型作为预训练模型在MSRA_NER数据集上完成序列标注的FineTune和预测。 -* 目标检测 - * 该样例展示了PaddleHub如何将SSD作为预训练模型在PascalVOC数据集上完成目标检测的预测。 +* [目标检测](./ssd) + 该样例展示了PaddleHub如何将SSD作为预训练模型在PascalVOC数据集上完成目标检测的预测。 -* 文本分类 - * 该样例展示了PaddleHub如何将ERNIE/BERT等Transformer类模型作为预训练模型在GLUE、ChnSentiCorp等数据集上完成文本分类的FineTune和预测。 +* [文本分类](./text-classification) + 该样例展示了PaddleHub如何将ERNIE/BERT等Transformer类模型作为预训练模型在GLUE、ChnSentiCorp等数据集上完成文本分类的FineTune和预测。 -* 多标签分类 - * 该样例展示了PaddleHub如何将BERT作为预训练模型在Toxic数据集上完成多标签分类的FineTune和预测。 +* [多标签分类](./multi-label-classification) + 该样例展示了PaddleHub如何将BERT作为预训练模型在Toxic数据集上完成多标签分类的FineTune和预测。 -* 回归任务 - * 该样例展示了PaddleHub如何将BERT作为预训练模型在GLUE-STSB数据集上完成回归任务的FineTune和预测。 +* [回归任务](./regression) + 该样例展示了PaddleHub如何将BERT作为预训练模型在GLUE-STSB数据集上完成回归任务的FineTune和预测。 -* 阅读理解 - * 该样例展示了PaddleHub如何将BERT作为预训练模型在SQAD数据集上完成阅读理解的FineTune和预测。 +* [阅读理解](./reading-comprehension) + 该样例展示了PaddleHub如何将BERT作为预训练模型在SQAD数据集上完成阅读理解的FineTune和预测。 -* 检索式问答任务 - * 该样例展示了PaddleHub如何将ERNIE和BERT作为预训练模型在NLPCC-DBQA等数据集上完成检索式问答任务的FineTune和预测。 +* [检索式问答任务](./qa_classfication) + 该样例展示了PaddleHub如何将ERNIE和BERT作为预训练模型在NLPCC-DBQA等数据集上完成检索式问答任务的FineTune和预测。 -* 句子语义相似度计算 - * 该样例展示了PaddleHub如何将word2vec_skipgram用于计算两个文本语义相似度。 +* [句子语义相似度计算](./sentence_similarity) + 该样例展示了PaddleHub如何将word2vec_skipgram用于计算两个文本语义相似度。 -* 超参优化AutoDL Finetuner使用 - * 该样例展示了PaddleHub超参优化AutoDL Finetuner如何使用,给出了自动搜素图像分类/文本分类任务的较佳超参数示例。 +* [超参优化AutoDL Finetuner使用](./autofinetune) + 该样例展示了PaddleHub超参优化AutoDL Finetuner如何使用,给出了自动搜素图像分类/文本分类任务的较佳超参数示例。 -* 服务化部署Hub Serving使用 - * 该样例文件夹下展示了服务化部署Hub Serving如何使用,将PaddleHub支持的可预测Module如何服务化部署。 +* [服务化部署Hub Serving使用](./serving) + 该样例文件夹下展示了服务化部署Hub Serving如何使用,将PaddleHub支持的可预测Module如何服务化部署。 -**NOTE** +**NOTE:** 以上任务示例均是利用PaddleHub提供的数据集,若您想在自定义数据集上完成相应任务,请查看[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) ## 快速体验 @@ -64,4 +64,4 @@ ## 超参优化AutoDL Finetuner -PaddleHub还提供了超参优化(Hyperparameter Tuning)功能, 自动搜索最优模型超参得到更好的模型效果。详细信息参见[AutoDL Finetuner超参优化功能教程](../../tutorial/autofinetune.md) 和[使用样例](../autofinetune) +PaddleHub还提供了超参优化(Hyperparameter Tuning)功能, 自动搜索最优模型超参得到更好的模型效果。详细信息参见[AutoDL Finetuner超参优化功能教程](../tutorial/autofinetune.md)