Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
33c08f20
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 1 年 前同步成功
通知
282
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
33c08f20
编写于
9月 12, 2019
作者:
Z
zhangxuefei
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
https://github.com/PaddlePaddle/PaddleHub
into develop
上级
239c8e6a
3b94f708
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
60 addition
and
86 deletion
+60
-86
README.md
README.md
+31
-67
paddlehub/commands/config.py
paddlehub/commands/config.py
+6
-12
paddlehub/common/dir.py
paddlehub/common/dir.py
+21
-6
requirements.txt
requirements.txt
+1
-0
setup.py
setup.py
+1
-1
未找到文件。
README.md
浏览文件 @
33c08f20
# PaddleHub
# PaddleHub
## 目录
*
[
简介
](
https://github.com/paddlepaddle/paddlehub#%E7%AE%80%E4%BB%8B
)
*
[
环境依赖
](
https://github.com/paddlepaddle/paddlehub#%E7%8E%AF%E5%A2%83%E4%BE%9D%E8%B5%96
)
*
[
安装
](
https://github.com/paddlepaddle/paddlehub#%E5%AE%89%E8%A3%85
)
*
[
快速体验
](
https://github.com/paddlepaddle/paddlehub#%E5%BF%AB%E9%80%9F%E4%BD%93%E9%AA%8C
)
*
[
教程
](
https://github.com/paddlepaddle/paddlehub#%E6%95%99%E7%A8%8B
)
*
[
FAQ
](
https://github.com/paddlepaddle/paddlehub#faq
)
*
[
用户交流群
](
https://github.com/paddlepaddle/paddlehub#%E7%94%A8%E6%88%B7%E4%BA%A4%E6%B5%81%E7%BE%A4
)
*
[
更新历史
](
https://github.com/paddlepaddle/paddlehub#%E6%9B%B4%E6%96%B0%E5%8E%86%E5%8F%B2
)
## 简介
[
![Build Status
](
https://travis-ci.org/PaddlePaddle/PaddleHub.svg?branch=develop
)
](https://travis-ci.org/PaddlePaddle/PaddleHub)
[
![Build Status
](
https://travis-ci.org/PaddlePaddle/PaddleHub.svg?branch=develop
)
](https://travis-ci.org/PaddlePaddle/PaddleHub)
[
![License
](
https://img.shields.io/badge/license-Apache%202-blue.svg
)
](LICENSE)
[
![License
](
https://img.shields.io/badge/license-Apache%202-blue.svg
)
](LICENSE)
[
![Version
](
https://img.shields.io/github/release/PaddlePaddle/PaddleHub.svg
)
](https://github.com/PaddlePaddle/PaddleHub/releases)
[
![Version
](
https://img.shields.io/github/release/PaddlePaddle/PaddleHub.svg
)
](https://github.com/PaddlePaddle/PaddleHub/releases)
...
@@ -33,13 +20,25 @@ PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习
...
@@ -33,13 +20,25 @@ PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习
*
PaddleHub引入『
**模型即软件**
』的设计理念,支持通过Python API或者命令行工具,一键完成预训练模型地预测,更方便的应用PaddlePaddle模型库。
*
PaddleHub引入『
**模型即软件**
』的设计理念,支持通过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命令行工具介绍
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7
)
## 环境依赖
## 目录
*
[
安装
](
https://github.com/paddlepaddle/paddlehub#%E5%AE%89%E8%A3%85
)
*
[
快速体验
](
https://github.com/paddlepaddle/paddlehub#%E5%BF%AB%E9%80%9F%E4%BD%93%E9%AA%8C
)
*
[
教程
](
https://github.com/paddlepaddle/paddlehub#%E6%95%99%E7%A8%8B
)
*
[
FAQ
](
https://github.com/paddlepaddle/paddlehub#faq
)
*
[
用户交流群
](
https://github.com/paddlepaddle/paddlehub#%E7%94%A8%E6%88%B7%E4%BA%A4%E6%B5%81%E7%BE%A4
)
*
[
更新历史
](
https://github.com/paddlepaddle/paddlehub#%E6%9B%B4%E6%96%B0%E5%8E%86%E5%8F%B2
)
## 安装
### 环境依赖
*
Python==2.7 or Python>=3.5
*
Python==2.7 or Python>=3.5
*
PaddlePaddle>=1.4.0
*
PaddlePaddle>=1.4.0
除上述依赖外,PaddleHub的预训练模型和预置数据集需要连接服务端进行下载,请确保机器可以正常访问网络
除上述依赖外,PaddleHub的预训练模型和预置数据集需要连接服务端进行下载,请确保机器可以正常访问网络
## 安装
pip安装方式如下:
pip安装方式如下:
```
shell
```
shell
...
@@ -81,67 +80,43 @@ $ hub run faster_rcnn_coco2017 --input_path test_object_detection.jpg
...
@@ -81,67 +80,43 @@ $ hub run faster_rcnn_coco2017 --input_path test_object_detection.jpg
同时,我们在AI Studio和AIBook上提供了IPython NoteBook形式的demo,您可以直接在平台上在线体验,链接如下:
同时,我们在AI Studio和AIBook上提供了IPython NoteBook形式的demo,您可以直接在平台上在线体验,链接如下:
*
ERNIE文本分类:
*
ERNIE文本分类:
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79380
)
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79380
)
*
[
AIBook
](
https://console.bce.baidu.com/bml/?_=1562072915183#/bml/aibook/ernie_txt_cls
)
*
[
AI
Book
](
https://console.bce.baidu.com/bml/?_=1562072915183#/bml/aibook/ernie_txt_cls
)
*
ERNIE序列标注:
*
ERNIE序列标注:
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79377
)
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79377
)
*
[
AIBook
](
https://console.bce.baidu.com/bml/?_=1562072915183#/bml/aibook/ernie_seq_label
)
*
[
AI
Book
](
https://console.bce.baidu.com/bml/?_=1562072915183#/bml/aibook/ernie_seq_label
)
*
ELMo文本分类:
*
ELMo文本分类:
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79400
)
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79400
)
*
[
AIBook
](
https://console.bce.baidu.com/bml/#/bml/aibook/elmo_txt_cls
)
*
[
AI
Book
](
https://console.bce.baidu.com/bml/#/bml/aibook/elmo_txt_cls
)
*
senta情感分类:
*
senta情感分类:
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79398
)
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79398
)
*
[
AIBook
](
https://console.bce.baidu.com/bml/#/bml/aibook/senta_bilstm
)
*
[
AI
Book
](
https://console.bce.baidu.com/bml/#/bml/aibook/senta_bilstm
)
*
图像分类:
*
图像分类:
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79378
)
*
[
AI Studio
](
https://aistudio.baidu.com/aistudio/projectDetail/79378
)
*
[
AIBook
](
https://console.bce.baidu.com/bml/#/bml/aibook/img_cls
)
*
[
AI
Book
](
https://console.bce.baidu.com/bml/#/bml/aibook/img_cls
)
## 教程
## 教程
[
API
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Finetune-API
)
PaddleHub Fine-tune API 详情参考
[
wiki教程
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-Finetune-API
)
[
迁移学习
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E4%B8%8E%E8%BF%81%E7%A7%BB%E5%AD%A6%E4%B9%A0
)
PaddleHub如何完成迁移学习,详情参考
[
wiki教程
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub%E4%B8%8E%E8%BF%81%E7%A7%BB%E5%AD%A6%E4%B9%A0
)
[
自定义迁移任务
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub:-%E8%87%AA%E5%AE%9A%E4%B9%89Task
)
PaddleHub如何自定义迁移任务,详情参考
[
wiki教程
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub:-%E8%87%AA%E5%AE%9A%E4%B9%89Task
)
## FAQ
## FAQ
### 问题一
**Q:**
利用PaddleHub ernie/bert进行Finetune时,运行出错并提示
`paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2`
等信息
**现象**
利用PaddleHub ernie/bert进行Finetune时,提示
`paddle.fluid.core_avx.EnforceNotMet: Input ShapeTensor cannot be found in Op reshape2`
等信息
**原因**
这是因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。
**解决方法**
**A:**
因为ernie/bert module的创建时和此时运行环境中PaddlePaddle版本不对应。可以将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。
首先将PaddlePaddle和PaddleHub升级至最新版本,同时将ernie卸载。
如果机器不支持GPU,那么使用如下命令来安装PaddlePaddle的CPU版本
```
shell
$
pip
install
--upgrade
paddlepaddle
$
pip
install
--upgrade
paddlehub
$
hub uninstall ernie
```
如果机器支持GPU,则使用如下命令来安装PaddlePaddle的GPU版本
```
shell
```
shell
# 若是CPU环境,则 pip install --upgrade paddlepaddle
$
pip
install
--upgrade
paddlepaddle-gpu
$
pip
install
--upgrade
paddlepaddle-gpu
$
pip
install
--upgrade
paddlehub
$
pip
install
--upgrade
paddlehub
$
hub uninstall ernie
$
hub uninstall ernie
```
```
### 问题二
**Q:**
使用PaddleHub时,无法下载预置数据集、Module的等现象
**现象**
使用paddlehub时,无法下载预置数据集、Module的等现象
**原因**
PaddleHub中的预训练模型和预置数据集都需要通过服务端进行下载,因此PaddleHub默认用户访问外网权限。
**A:**
PaddleHub中的预训练模型和预置数据集都需要通过服务端进行下载,因此PaddleHub默认用户访问外网权限。
可以通过以下命令确认是否可以访问外网。
可以通过以下命令确认是否可以访问外网。
```
python
```
python
...
@@ -153,22 +128,14 @@ print(res)
...
@@ -153,22 +128,14 @@ print(res)
# the common result is like this:
# the common result is like this:
# <Response [200]>
# <Response [200]>
```
```
**Note:**
PaddleHub 1.1.1版本已支持离线运行Module
**
Note**
**
Q:**
利用PaddleHub Finetune如何适配自定义数据集
PaddleHub 1.1.1版本已支持离线运行Module
**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
)
### 问题三
**现象**
**更多问题**
利用PaddleHub Finetune如何适配自定义数据集
**解决方法**
参考
[
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
)
### 更多问题
当安装或者使用遇到问题时,可以通过
[
FAQ
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-FAQ
)
查找解决方案。
当安装或者使用遇到问题时,可以通过
[
FAQ
](
https://github.com/PaddlePaddle/PaddleHub/wiki/PaddleHub-FAQ
)
查找解决方案。
如果在FAQ中没有找到解决方案,欢迎您将问题和bug报告以
[
Github Issues
](
https://github.com/PaddlePaddle/PaddleHub/issues
)
的形式提交给我们,我们会第一时间进行跟进
如果在FAQ中没有找到解决方案,欢迎您将问题和bug报告以
[
Github Issues
](
https://github.com/PaddlePaddle/PaddleHub/issues
)
的形式提交给我们,我们会第一时间进行跟进
...
@@ -210,6 +177,3 @@ PaddleHub 1.1.1版本已支持离线运行Module
...
@@ -210,6 +177,3 @@ PaddleHub 1.1.1版本已支持离线运行Module
目前版本支持以下模型:词法分析LAC;情感分析Senta;目标检测SSD;图像分类ResNet, MobileNet, NASNet等。
目前版本支持以下模型:词法分析LAC;情感分析Senta;目标检测SSD;图像分类ResNet, MobileNet, NASNet等。
*
迁移学习: 提供了基于预训练模型的Finetune API,用户通过少量代码即可完成迁移学习,包括BERT/ERNIE文本分类、序列标注、图像分类迁移等。
*
迁移学习: 提供了基于预训练模型的Finetune API,用户通过少量代码即可完成迁移学习,包括BERT/ERNIE文本分类、序列标注、图像分类迁移等。
## 版权和许可证
PaddleHub由
[
Apache-2.0 license
](
LICENSE
)
提供
paddlehub/commands/config.py
浏览文件 @
33c08f20
...
@@ -21,14 +21,10 @@ import argparse
...
@@ -21,14 +21,10 @@ import argparse
import
json
import
json
import
os
import
os
import
re
import
re
import
logging
from
paddlehub.common
import
utils
from
paddlehub.module.manager
import
default_module_manager
from
paddlehub.commands.base_command
import
BaseCommand
,
ENTRY
from
paddlehub.commands.base_command
import
BaseCommand
,
ENTRY
from
paddlehub.common.dir
import
CONF_HOME
from
paddlehub.common.dir
import
CONF_HOME
from
paddlehub.common.server_config
import
default_server_config
from
paddlehub.common.server_config
import
default_server_config
from
paddlehub.common.logger
import
logger
class
ConfigCommand
(
BaseCommand
):
class
ConfigCommand
(
BaseCommand
):
...
@@ -84,9 +80,12 @@ class ConfigCommand(BaseCommand):
...
@@ -84,9 +80,12 @@ class ConfigCommand(BaseCommand):
@
staticmethod
@
staticmethod
def
set_log_level
(
level
):
def
set_log_level
(
level
):
if
level
not
in
logging
.
_nameToLevel
.
keys
():
if
level
not
in
[
print
(
"Allowed values include: "
+
"CRITICAL"
,
"FATAL"
,
"ERROR"
,
"WARN"
,
"WARNING"
,
"INFO"
,
str
(
list
(
logging
.
_nameToLevel
.
keys
())))
"DEBUG"
,
"NOTSET"
]:
print
(
"Allowed values include: "
"CRITICAL, FATAL, ERROR, WARN, WARNING, INFO, DEBUG, NOTSET"
)
return
return
with
open
(
os
.
path
.
join
(
CONF_HOME
,
"config.json"
),
"r"
)
as
fp
:
with
open
(
os
.
path
.
join
(
CONF_HOME
,
"config.json"
),
"r"
)
as
fp
:
current_config
=
json
.
load
(
fp
)
current_config
=
json
.
load
(
fp
)
...
@@ -96,8 +95,6 @@ class ConfigCommand(BaseCommand):
...
@@ -96,8 +95,6 @@ class ConfigCommand(BaseCommand):
print
(
"Set success! The current configuration is shown below."
)
print
(
"Set success! The current configuration is shown below."
)
print
(
json
.
dumps
(
current_config
,
indent
=
4
))
print
(
json
.
dumps
(
current_config
,
indent
=
4
))
# logger.setLevel(level)
@
staticmethod
@
staticmethod
def
show_help
():
def
show_help
():
str
=
"config <option> <value>
\n
"
str
=
"config <option> <value>
\n
"
...
@@ -116,10 +113,7 @@ class ConfigCommand(BaseCommand):
...
@@ -116,10 +113,7 @@ class ConfigCommand(BaseCommand):
print
(
str
)
print
(
str
)
def
execute
(
self
,
argv
):
def
execute
(
self
,
argv
):
# logger.setLevel("ERROR")
# print(argv)
args
=
self
.
parser
.
parse_args
()
args
=
self
.
parser
.
parse_args
()
# print(args)
if
args
.
option
is
None
:
if
args
.
option
is
None
:
ConfigCommand
.
show_config
()
ConfigCommand
.
show_config
()
elif
args
.
option
==
"reset"
:
elif
args
.
option
==
"reset"
:
...
...
paddlehub/common/dir.py
浏览文件 @
33c08f20
...
@@ -15,9 +15,24 @@
...
@@ -15,9 +15,24 @@
import
os
import
os
USER_HOME
=
os
.
path
.
expanduser
(
'~'
)
# TODO: Change dir.py's filename, this naming rule is not qualified
HUB_HOME
=
os
.
path
.
join
(
USER_HOME
,
".paddlehub"
)
MODULE_HOME
=
os
.
path
.
join
(
HUB_HOME
,
"modules"
)
CACHE_HOME
=
os
.
path
.
join
(
HUB_HOME
,
"cache"
)
def
gen_user_home
():
DATA_HOME
=
os
.
path
.
join
(
HUB_HOME
,
"dataset"
)
if
"HUB_HOME"
in
os
.
environ
:
CONF_HOME
=
os
.
path
.
join
(
HUB_HOME
,
"conf"
)
home_path
=
os
.
environ
[
"HUB_HOME"
]
if
os
.
path
.
exists
(
home_path
)
and
os
.
path
.
isdir
(
home_path
):
return
home_path
return
os
.
path
.
expanduser
(
'~'
)
def
gen_hub_home
():
return
os
.
path
.
join
(
gen_user_home
(),
".paddlehub"
)
USER_HOME
=
gen_user_home
()
HUB_HOME
=
gen_hub_home
()
MODULE_HOME
=
os
.
path
.
join
(
gen_hub_home
(),
"modules"
)
CACHE_HOME
=
os
.
path
.
join
(
gen_hub_home
(),
"cache"
)
DATA_HOME
=
os
.
path
.
join
(
gen_hub_home
(),
"dataset"
)
CONF_HOME
=
os
.
path
.
join
(
gen_hub_home
(),
"conf"
)
requirements.txt
浏览文件 @
33c08f20
...
@@ -12,4 +12,5 @@ pandas
...
@@ -12,4 +12,5 @@ pandas
#[py2]pandas == 0.24.0
#[py2]pandas == 0.24.0
flake8
flake8
tb-paddle
tb-paddle
tb-nightly
cma
== 2.7.0
cma
== 2.7.0
setup.py
浏览文件 @
33c08f20
...
@@ -32,7 +32,7 @@ max_version, mid_version, min_version = python_version()
...
@@ -32,7 +32,7 @@ max_version, mid_version, min_version = python_version()
REQUIRED_PACKAGES
=
[
REQUIRED_PACKAGES
=
[
'six >= 1.10.0'
,
'protobuf >= 3.1.0'
,
'pyyaml'
,
'Pillow'
,
'requests'
,
'six >= 1.10.0'
,
'protobuf >= 3.1.0'
,
'pyyaml'
,
'Pillow'
,
'requests'
,
'
visualdl >= 1.3.0
'
,
'cma == 2.7.0'
'
tb-paddle'
,
'tb-nightly
'
,
'cma == 2.7.0'
]
]
if
max_version
<
3
:
if
max_version
<
3
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录