Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
832364e1
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
大约 2 年 前同步成功
通知
118
Star
4999
Fork
1114
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
6
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleClas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
6
合并请求
6
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
832364e1
编写于
12月 02, 2020
作者:
Q
QingshuChen
提交者:
GitHub
12月 02, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support static graph train for kunlun (#441)
上级
8e5bde6c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
83 addition
and
6 deletion
+83
-6
configs/quick_start/ResNet50_vd_finetune_kunlun.yaml
configs/quick_start/ResNet50_vd_finetune_kunlun.yaml
+71
-0
tools/static/train.py
tools/static/train.py
+12
-6
未找到文件。
configs/quick_start/ResNet50_vd_finetune_kunlun.yaml
0 → 100644
浏览文件 @
832364e1
mode
:
'
train'
ARCHITECTURE
:
name
:
'
ResNet50_vd'
pretrained_model
:
"
./pretrained/ResNet50_vd_pretrained"
load_static_weights
:
true
model_save_dir
:
"
./output/"
classes_num
:
102
total_images
:
1020
save_interval
:
1
validate
:
True
valid_interval
:
1
epochs
:
120
topk
:
5
image_shape
:
[
3
,
224
,
224
]
LEARNING_RATE
:
function
:
'
Cosine'
params
:
lr
:
0.00375
OPTIMIZER
:
function
:
'
Momentum'
params
:
momentum
:
0.9
regularizer
:
function
:
'
L2'
factor
:
0.000001
TRAIN
:
batch_size
:
20
num_workers
:
1
file_list
:
"
./dataset/flowers102/train_list.txt"
data_dir
:
"
./dataset/flowers102/"
shuffle_seed
:
0
transforms
:
-
DecodeImage
:
to_rgb
:
True
to_np
:
False
channel_first
:
False
-
RandCropImage
:
size
:
224
-
RandFlipImage
:
flip_code
:
1
-
NormalizeImage
:
scale
:
1./255.
mean
:
[
0.485
,
0.456
,
0.406
]
std
:
[
0.229
,
0.224
,
0.225
]
order
:
'
'
-
ToCHWImage
:
VALID
:
batch_size
:
20
num_workers
:
1
file_list
:
"
./dataset/flowers102/val_list.txt"
data_dir
:
"
./dataset/flowers102/"
shuffle_seed
:
0
transforms
:
-
DecodeImage
:
to_rgb
:
True
to_np
:
False
channel_first
:
False
-
ResizeImage
:
resize_short
:
256
-
CropImage
:
size
:
224
-
NormalizeImage
:
scale
:
1.0/255.0
mean
:
[
0.485
,
0.456
,
0.406
]
std
:
[
0.229
,
0.224
,
0.225
]
order
:
'
'
-
ToCHWImage
:
tools/static/train.py
浏览文件 @
832364e1
...
@@ -63,9 +63,12 @@ def main(args):
...
@@ -63,9 +63,12 @@ def main(args):
config
=
get_config
(
args
.
config
,
overrides
=
args
.
override
,
show
=
True
)
config
=
get_config
(
args
.
config
,
overrides
=
args
.
override
,
show
=
True
)
# assign the place
# assign the place
use_gpu
=
config
.
get
(
"use_gpu"
,
True
)
use_gpu
=
config
.
get
(
"use_gpu"
,
False
)
assert
use_gpu
is
True
,
"gpu must be true in static mode!"
use_xpu
=
config
.
get
(
"use_xpu"
,
False
)
place
=
paddle
.
set_device
(
"gpu"
)
assert
(
use_gpu
or
use_xpu
)
is
True
,
"gpu or xpu must be true in static mode!"
assert
(
use_gpu
and
use_xpu
)
is
not
True
,
"gpu and xpu can not be true in the same time in static mode!"
place
=
paddle
.
set_device
(
'gpu'
if
use_gpu
else
'xpu'
)
# startup_prog is used to do some parameter init work,
# startup_prog is used to do some parameter init work,
# and train prog is used to hold the network
# and train prog is used to hold the network
...
@@ -75,12 +78,12 @@ def main(args):
...
@@ -75,12 +78,12 @@ def main(args):
best_top1_acc
=
0.0
# best top1 acc record
best_top1_acc
=
0.0
# best top1 acc record
train_fetchs
,
lr_scheduler
,
train_feeds
=
program
.
build
(
train_fetchs
,
lr_scheduler
,
train_feeds
=
program
.
build
(
config
,
train_prog
,
startup_prog
,
is_train
=
True
)
config
,
train_prog
,
startup_prog
,
is_train
=
True
,
is_distributed
=
config
.
get
(
"is_distributed"
,
True
)
)
if
config
.
validate
:
if
config
.
validate
:
valid_prog
=
paddle
.
static
.
Program
()
valid_prog
=
paddle
.
static
.
Program
()
valid_fetchs
,
_
,
valid_feeds
=
program
.
build
(
valid_fetchs
,
_
,
valid_feeds
=
program
.
build
(
config
,
valid_prog
,
startup_prog
,
is_train
=
False
)
config
,
valid_prog
,
startup_prog
,
is_train
=
False
,
is_distributed
=
config
.
get
(
"is_distributed"
,
True
)
)
# clone to prune some content which is irrelevant in valid_prog
# clone to prune some content which is irrelevant in valid_prog
valid_prog
=
valid_prog
.
clone
(
for_test
=
True
)
valid_prog
=
valid_prog
.
clone
(
for_test
=
True
)
...
@@ -94,7 +97,10 @@ def main(args):
...
@@ -94,7 +97,10 @@ def main(args):
if
config
.
validate
and
paddle
.
distributed
.
get_rank
()
==
0
:
if
config
.
validate
and
paddle
.
distributed
.
get_rank
()
==
0
:
valid_dataloader
=
Reader
(
config
,
'valid'
,
places
=
place
)()
valid_dataloader
=
Reader
(
config
,
'valid'
,
places
=
place
)()
compiled_valid_prog
=
program
.
compile
(
config
,
valid_prog
)
if
use_xpu
:
compiled_valid_prog
=
valid_prog
else
:
compiled_valid_prog
=
program
.
compile
(
config
,
valid_prog
)
vdl_writer
=
None
vdl_writer
=
None
if
args
.
vdl_dir
:
if
args
.
vdl_dir
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录