PaddleHub是飞桨生态的预训练模型应用工具,开发者可以便捷地使用高质量的预训练模型结合Fine-tune API快速完成模型迁移到部署的全流程工作。PaddleHub提供的预训练模型涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。更多详情可查看官网:https://www.paddlepaddle.org.cn/hu
PaddleHub以预训练模型应用为核心具备以下特点:
-
模型即软件,通过Python API或命令行实现模型调用,可快速体验或集成飞桨特色预训练模型。
-
易用的迁移学习,通过Fine-tune API,内置多种优化策略,只需少量代码即可完成预训练模型的Fine-tuning。
-
一键模型转服务,简单一行命令即可搭建属于自己的深度学习模型API服务完成部署。
-
自动超参优化,内置AutoDL Finetuner能力,一键启动自动化超参搜索。
十行代码完成ERNIE工业级文本分类
目录
安装
环境依赖
- Python >= 3.6
- PaddlePaddle >= 1.7.0
- 操作系统: Windows/Mac/Linux
安装命令
PaddlePaddle框架的安装请查阅飞桨快速安装
pip install paddlehub
除上述依赖外,预训练模型和数据集的下载需要网络连接,请确保机器可以正常访问网络。若本地已存在相关预训练模型目录,则可以离线使用PaddleHub。
特性
模型即软件
PaddleHub采用模型即软件的设计理念,所有的预训练模型与Python软件包类似,具备版本的概念,通过hub install/uninstall
可以便捷完成模型的升级和卸载。还可以通过Python的API或命令行实现快速预测的软件集成,更方便地应用和集成深度学习模型。
安装PaddleHub后,执行命令hub run,即可快速体验无需代码、一键预测的功能:
- 使用目标检测模型pyramidbox_lite_mobile_mask对图片进行口罩检测
$ wget https://paddlehub.bj.bcebos.com/resources/test_mask_detection.jpg
$ hub run pyramidbox_lite_mobile_mask --input_path test_mask_detection.jpg
- 使用词法分析模型LAC进行分词
$ hub run lac --input_text "今天是个好日子"
[{'word': ['今天', '是', '个', '好日子'], 'tag': ['TIME', 'v', 'q', 'n']}]
- 使用情感分析模型Senta对句子进行情感预测
$ hub run senta_bilstm --input_text "今天天气真好"
{'text': '今天天气真好', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9798, 'negative_probs': 0.0202}]
- 使用目标检测模型Ultra-Light-Fast-Generic-Face-Detector-1MB对图片进行人脸识别
$ 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
- 使用图像分割模型进行人像扣图和人体部件识别
$ wget https://paddlehub.bj.bcebos.com/resources/test_image.jpg
$ hub run ace2p --input_path test_image.jpg
$ hub run deeplabv3p_xception65_humanseg --input_path test_image.jpg
ace2p分割结果展示 humanseg分割结果展示
PaddleHub还提供图像分类、语义模型、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型,更多模型介绍,请前往 https://www.paddlepaddle.org.cn/hub 查看
易用的迁移学习
通过Fine-tune API,只需要少量代码即可完成深度学习模型在自然语言处理和计算机视觉场景下的迁移学习。
-
Demo示例提供丰富的Fine-tune API的使用代码,包括文本分类、序列标注、多标签分类、图像分类、检索式问答任务、回归任务、句子语义相似度计算、阅读理解任务等场景的模型迁移示例。
-
如需在线快速体验,请点击PaddleHub教程合集,可使用AI Studio平台提供的GPU算力进行快速尝试。
更多Fine-tune API的使用教程可参考:
一键模型转服务
PaddleHub提供便捷的模型转服务的能力,只需简单一行命令即可完成模型的HTTP服务部署。通过以下命令即可快速启动LAC词法分析服务:
$ hub serving start --modules lac
更多关于模型服务化使用说明参见PaddleHub模型一键能服务化部署。
PaddleHub 1.5.0版本增加文本Embedding服务Bert Service, 高性能地获取文本Embedding
自动超参优化
PaddleHub内置AutoDL Finetuner能力,提供多种优化策略策略实现自动化超参搜索,使得模型在验证集上得到更好的结果,用户只需要一行命令hub autofinetune
即可启动。更多详细使用说明请参见PaddleHub超参优化。
FAQ
Q: 利用PaddleHub Fine-tune如何适配自定义数据集?
A: 参考PaddleHub适配自定义数据集完成Fine-tune。
Q: 使用PaddleHub时,无法下载预置数据集、Module的等现象。
A: 下载数据集、module等,PaddleHub要求机器可以访问外网。可以使用server_check()可以检查本地与远端PaddleHub-Server的连接状态,使用方法如下:
import paddlehub
paddlehub.server_check()
# 如果可以连接远端PaddleHub-Server,则显示Request Hub-Server successfully。
# 如果无法连接远端PaddleHub-Server,则显示Request Hub-Server unsuccessfully。
Q: 利用PaddleHub ERNIE/BERT进行Fine-tune时,运行出错并提示paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2
等信息。
A: 预训练模型版本与PaddlePaddle版本不匹配。可尝试将PaddlePaddle和PaddleHub升级至最新版本,并将原ERNIE模型卸载。
$ pip install --upgrade paddlehub
$ hub uninstall ernie
FAQ
当安装或者使用遇到问题时,可以通过FAQ查找解决方案。 如果在FAQ中没有找到解决方案,欢迎您将问题以Github Issues的形式提交给我们,我们会第一时间进行跟进。
用户交流群
- 飞桨PaddlePaddle 交流群:796771754(QQ群)
- 飞桨ERNIE交流群:760439550(QQ群)
更新历史
PaddleHub v1.6.0已发布!
详情参考更新历史
项目简介
Awesome pre-trained models toolkit based on PaddlePaddle. (400+ models including Image, Text, Audio, Video and Cross-Modal with Easy Inference & Serving)
源项目地址