Skip to content

A toolkit for managing pretrained models of PaddlePaddle and helping user getting started with transfer learning more efficiently. (『飞桨』预训练模型管理和迁移学习工具 )

License

Notifications You must be signed in to change notification settings

luzm3/PaddleHub

 
 

Repository files navigation

PaddleHub

Build Status License Version

PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习工具,可以结合预训练模型更便捷地开展迁移学习工作。PaddleHub特性:

目录

安装

环境依赖

  • Python==2.7 or Python>=3.5
  • PaddlePaddle>=1.4.0

除上述依赖外,PaddleHub的预训练模型和预置数据集需要连接服务端进行下载,请确保机器可以正常访问网络。若本地已存在相关的数据集和预训练模型,则可以离线运行PaddleHub。

NOTE: 若是出现离线运行PaddleHub错误,请更新PaddleHub 1.1.1版本之上。 pip安装方式如下:

$ pip install paddlehub

快速体验

安装成功后,执行下面的命令,可以快速体验PaddleHub无需代码、一键预测的命令行功能:

示例一

使用词法分析模型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}]

示例三

使用目标检测模型 SSD/YOLO v3/Faster RCNN 对图片进行目标检测

$ wget --no-check-certificate 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检测结果

除了上述三类模型外,PaddleHub还发布了语言模型、语义模型、图像分类、生成模型、视频分类等业界主流模型,更多PaddleHub已经发布的模型,请前往 https://www.paddlepaddle.org.cn/hub 查看

同时,我们在AI Studio和AIBook上提供了IPython NoteBook形式的demo,您可以直接在平台上在线体验,链接如下:

教程

PaddleHub Fine-tune API 详情参考wiki教程

PaddleHub如何完成迁移学习,详情参考wiki教程

PaddleHub如何自定义迁移任务,详情参考wiki教程

PaddleHub如何自动优化超参数,详情参考autofinetune使用教程

PaddleHub如何使用ULMFiT策略微调预训练模型,详情参考PaddleHub 迁移学习与ULMFiT微调策略

FAQ

Q: 利用PaddleHub ernie/bert进行Finetune时,运行出错并提示paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2等信息

A: 因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。可以将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。

# 若是CPU环境,则 pip install --upgrade paddlepaddle
$ pip install --upgrade paddlepaddle-gpu
$ pip install --upgrade paddlehub
$ hub uninstall ernie

Q: 使用PaddleHub时,无法下载预置数据集、Module的等现象

A: PaddleHub中的预训练模型和预置数据集都需要通过服务端进行下载,因此PaddleHub默认用户访问外网权限。 可以通过以下命令确认是否可以访问外网。

import requests

res = requests.get('http://paddlepaddle.org.cn/paddlehub/search', {'word': 'ernie', 'type': 'Module'})
print(res)

# the common result is like this:
# <Response [200]>

Note: PaddleHub 1.1.1版本已支持离线运行Module

Q: 利用PaddleHub Finetune如何适配自定义数据集

A: 参考PaddleHub适配自定义数据集完成Finetune

更多问题

当安装或者使用遇到问题时,可以通过FAQ查找解决方案。 如果在FAQ中没有找到解决方案,欢迎您将问题和bug报告以Github Issues的形式提交给我们,我们会第一时间进行跟进

用户交流群

  • 飞桨PaddlePaddle 交流群:432676488(QQ群)
  • 飞桨 ERNIE交流群:760439550(QQ群)

更新历史

详情参考更新历史

About

A toolkit for managing pretrained models of PaddlePaddle and helping user getting started with transfer learning more efficiently. (『飞桨』预训练模型管理和迁移学习工具 )

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.5%
  • Shell 0.5%