Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
5c7994f3
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看板
未验证
提交
5c7994f3
编写于
10月 09, 2019
作者:
S
Steffy-zxf
提交者:
GitHub
10月 09, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update autofinetune-cv.md
上级
d4e9ade7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
7 deletion
+12
-7
tutorial/autofinetune-cv.md
tutorial/autofinetune-cv.md
+12
-7
未找到文件。
tutorial/autofinetune-cv.md
浏览文件 @
5c7994f3
# PaddleHub Auto Fine-tune——图像分类任务
使用PaddleHub Auto Fine-tune
必须按照规定形式准备两个文件,分别是需要Fine-tune的python脚本
`finetunee.py`
和需要优化的超参数信息yaml文件hparam.yaml。
使用PaddleHub Auto Fine-tune
需要准备两个指定格式的文件:待优化的超参数信息yaml文件hparam.yaml和需要Fine-tune的python脚本train.py
以Fine-tune图像分类任务为例,
我们
展示如何利用PaddleHub Auto Finetune进行超参优化。
以Fine-tune图像分类任务为例,展示如何利用PaddleHub Auto Finetune进行超参优化。
以下是待优化超参数的yaml文件hparam.yaml,包含需要搜素的超参名字、类型、范围等信息。目前参数搜索类型只支持float和int类型
```
...
...
@@ -20,7 +20,7 @@ param_list:
greater_than : 10
```
以下是图像分类的
`
finetunee
.py`
以下是图像分类的
`
train
.py`
```
python
# coding:utf-8
...
...
@@ -33,16 +33,18 @@ import paddle.fluid as fluid
import
paddlehub
as
hub
import
numpy
as
np
# yapf: disable
parser
=
argparse
.
ArgumentParser
(
__doc__
)
parser
.
add_argument
(
"--num_epoch"
,
type
=
int
,
default
=
1
,
help
=
"Number of epoches for fine-tuning."
)
parser
.
add_argument
(
"--use_gpu"
,
type
=
ast
.
literal_eval
,
default
=
True
,
help
=
"Whether use GPU for fine-tuning."
)
parser
.
add_argument
(
"--checkpoint_dir"
,
type
=
str
,
default
=
None
,
help
=
"Path to save log data."
)
# the name of hyperparameters to be searched should keep with hparam.py
parser
.
add_argument
(
"--batch_size"
,
type
=
int
,
default
=
16
,
help
=
"Total examples' number in batch for training."
)
parser
.
add_argument
(
"--saved_params_dir"
,
type
=
str
,
default
=
""
,
help
=
"Directory for saving model"
)
parser
.
add_argument
(
"--learning_rate"
,
type
=
float
,
default
=
1e-4
,
help
=
"learning_rate."
)
# saved_params_dir and model_path are needed by auto finetune
parser
.
add_argument
(
"--saved_params_dir"
,
type
=
str
,
default
=
""
,
help
=
"Directory for saving model"
)
parser
.
add_argument
(
"--model_path"
,
type
=
str
,
default
=
""
,
help
=
"load model path"
)
# yapf: enable.
def
is_path_valid
(
path
):
...
...
@@ -55,11 +57,12 @@ def is_path_valid(path):
return
True
def
finetune
(
args
):
# Load Paddlehub resnet50 pretrained model
module
=
hub
.
Module
(
name
=
"resnet_v2_50_imagenet"
)
input_dict
,
output_dict
,
program
=
module
.
context
(
trainable
=
True
)
# Download dataset and use ImageClassificationReader to read dataset
dataset
=
hub
.
dataset
.
Flowers
()
data_reader
=
hub
.
reader
.
ImageClassificationReader
(
image_width
=
module
.
get_expected_image_width
(),
image_height
=
module
.
get_expected_image_height
(),
...
...
@@ -83,6 +86,7 @@ def finetune(args):
checkpoint_dir
=
args
.
checkpoint_dir
,
strategy
=
strategy
)
# Construct transfer learning network
task
=
hub
.
ImageClassifierTask
(
data_reader
=
data_reader
,
feed_list
=
feed_list
,
...
...
@@ -108,6 +112,7 @@ def finetune(args):
shutil
.
copytree
(
best_model_dir
,
args
.
saved_params_dir
)
shutil
.
rmtree
(
config
.
checkpoint_dir
)
# acc on dev will be used by auto finetune
print
(
"AutoFinetuneEval"
+
"
\t
"
+
str
(
float
(
eval_avg_score
[
"acc"
])))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录