Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
ebdf1648
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看板
提交
ebdf1648
编写于
4月 02, 2019
作者:
W
wuzewu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs
上级
3e43062b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
103 addition
and
52 deletion
+103
-52
docs/command_line_introduction.md
docs/command_line_introduction.md
+55
-20
docs/transfer_learning_turtorial.md
docs/transfer_learning_turtorial.md
+48
-32
未找到文件。
docs/command_line_introduction.md
浏览文件 @
ebdf1648
# 命令行
Paddle Hub为Module的管理和使用提供了命令行工具,目前命令行支持以下9个命令:
*
install
*
uninstall
*
show
*
download
*
search
*
list
*
run
*
help
*
version
## install
install命令用于将
## uninstall
## show
## download
## search
## list
## run
## help
## version
*
`install`
:用于将Module安装到本地,默认安装在${USER_HOME}/.hub/module目录下,当一个Module安装到本地后,用户可以通过其他命令操作该Module(例如,使用该Module进行预测),也可以使用PaddleHub提供的python API,将Module应用到自己的任务中,实现迁移学习
*
`uninstall`
:用于卸载本地Module
*
`show`
:用于查看Module的属性,包括Module的名字、版本、描述、作者等信息
*
`download`
:用于下载百度NLP工具包
*
`search`
:通过关键字在服务端检索匹配的Module,当你想要查找某个特定模型的Module时,使用search命令可以快速得到结果,例如
`hub search ssd`
命令,会查找所有包含了ssd字样的Module
*
`list`
:列出本地已经安装的Module
*
`run`
:用于执行Module的预测,需要注意的是,并不是所有的模型都支持预测(同样,也不是所有的模型都支持迁移学习)
*
`help`
:显示帮助信息
*
`version`
:显示版本信息
# 关于预测
PaddleHub尽量简化了用户在使用命令行预测时的理解成本,一般来讲,我们将预测分为NLP和CV两大类
## NLP类的任务
输入数据通过--input_text或者--input_file指定。以LAC(中文词性分析)为例子,可以通过以下两个命令实现单文本和多文本的预测
```
shell
#单文本预测
hub run lac
--input_text
"今天是个好日子"
```
```
shell
#多文本分析
hub run lac
--input_file
test.csv
```
其中test.csv的格式为
```
今天是个好日子
天气预报说今天要下雨
下一班地铁马上就要到了
……更多行……
```
## CV类的任务
输入数据通过--input_path或者--input_file指定。以SSD(目标检测)为例子,可以通过以下两个命令实现单张图片和多张图片的预测
```
shell
#单张照片预测
hub run ssd_mobilenet_pascal
--input_text
test.jpg
```
```
shell
#多文本分析
hub run ssd_mobilenet_pascal
--input_file
test.csv
```
其中test.csv的格式为
```
cat.jpg
dog.jpg
person.jpg
……更多行……
```
docs/transfer_learning_turtorial.md
浏览文件 @
ebdf1648
# Transfer Learning
Transfer Learning是xxxx
更多关于Transfer Learning的知识,请参考
## 简述
Transfer Learning是属于机器学习的一个子研究领域,该研究领域的目标在于利用数据、任务、或模型之间的相似性,将在旧领域学习过的知识,迁移应用于新领域中
基于以下几个原因,迁移学习吸引了很多研究者投身其中:
*
一些研究领域只有少量标注数据,且数据标注成本较高,不足以训练一个足够鲁棒的神经网络
*
大规模神经网络的训练依赖于大量的计算资源,这对于一般用户而言难以实现
*
应对于普适化需求的模型,在特定应用上表现不尽如人意
目前在深度学习领域已经取得了较大的发展,本文让用户了解如何快速使用PaddleHub进行迁移学习。 更多关于Transfer Learning的知识,请参考:
http://cs231n.github.io/transfer-learning/
https://papers.nips.cc/paper/5347-how-transferable-are-features-in-deep-neural-networks.pdf
http://ftp.cs.wisc.edu/machine-learning/shavlik-group/torrey.handbook09.pdf
## PaddleHub中的迁移学习
## CV教程
以猫狗分类为例子,我们可以快速的使用一个通过ImageNet训练过的ResNet进行finetune
```
python
import
paddle.fluid
as
fluid
import
paddle_hub
as
hub
resnet
=
hub
.
Module
(
key
=
"resnet_v2_50_imagenet"
)
input_dict
,
output_dict
,
program
=
resnet
.
context
(
sign_name
=
"feature_map"
)
img_mode
,
img_size
,
img_order
=
resnet
.
data_config
()
reader
=
hub
.
ImageClassifierReader
(
mode
=
img_mode
,
shape
=
img_shape
,
order
=
img_order
,
dataset
=
hub
.
dataset
.
flowers
(),
batch_size
=
32
)
with
fluid
.
program_guard
(
program
):
img
=
input_dict
[
"image"
]
feature_map
=
output_dict
[
"feature_map"
]
label
=
fluid
.
layers
.
data
(
name
=
"label"
,
shape
=
[
1
],
dtype
=
"int64"
)
task
=
hub
.
DNNClassifier
(
input
=
feature_map
,
hidden_units
=
[
10
],
acts
=
[
"softmax"
])
finetune_config
=
{
"epochs"
:
100
}
hub
.
finetune_and_eval
(
task
=
task
,
reader
=
reader
.
train
(),
config
=
finetune_config
)
```
## NLP教程
```
python
import
paddle
import
paddle.fluid
as
fluid
import
paddle_hub
as
hub
resnet
=
hub
.
Module
(
key
=
"resnet_v2_50_imagenet"
)
input_dict
,
output_dict
,
program
=
resnet
.
context
(
sign_name
=
"feature_map"
)
img_mode
,
img_size
,
img_order
=
resnet
.
data_config
()
reader
=
hub
.
ImageClassifierReader
(
mode
=
img_mode
,
shape
=
img_shape
,
order
=
img_order
,
dataset
=
hub
.
dataset
.
flowers
(),
batch_size
=
32
)
with
fluid
.
program_guard
(
program
):
img
=
input_dict
[
"image"
]
feature_map
=
output_dict
[
"feature_map"
]
label
=
fluid
.
layers
.
data
(
name
=
"label"
,
shape
=
[
1
],
dtype
=
"int64"
)
task
=
hub
.
DNNClassifier
(
input
=
feature_map
,
hidden_units
=
[
10
],
acts
=
[
"softmax"
])
finetune_config
=
{
"epochs"
:
100
}
hub
.
finetune_and_eval
(
task
=
task
,
reader
=
reader
.
train
(),
config
=
finetune_config
)
def
train
():
resnet_module
=
hub
.
Module
(
name
=
"resnet50_imagenet"
)
input_dict
,
output_dict
,
program
=
resnet_module
.
context
(
sign_name
=
"feature_map"
,
trainable
=
True
)
dataset
=
hub
.
dataset
.
DogCat
()
data_reader
=
hub
.
ImageClassificationReader
(
image_width
=
224
,
image_height
=
224
,
dataset
=
dataset
)
with
fluid
.
program_guard
(
program
):
label
=
fluid
.
layers
.
data
(
name
=
"label"
,
dtype
=
"int64"
,
shape
=
[
1
])
img
=
input_dict
[
"img"
]
feature_map
=
output_dict
[
"feature_map"
]
# 运行配置
config
=
hub
.
RunConfig
(
use_cuda
=
True
,
num_epoch
=
10
,
batch_size
=
32
,
strategy
=
hub
.
finetune
.
strategy
.
DefaultFinetuneStrategy
())
feed_list
=
[
img
.
name
,
label
.
name
]
# 构造多分类模型
task
=
hub
.
append_mlp_classifier
(
feature
=
feature_map
,
label
=
label
,
num_classes
=
dataset
.
num_labels
)
# finetune
hub
.
finetune_and_eval
(
task
,
feed_list
=
feed_list
,
data_reader
=
data_reader
,
config
=
config
)
if
__name__
==
"__main__"
:
train
()
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录