Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
a82eef9f
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
大约 1 年 前同步成功
通知
115
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看板
提交
a82eef9f
编写于
4月 19, 2020
作者:
W
WuHaobo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add comment
上级
33c96900
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
16 addition
and
49 deletion
+16
-49
ppcls/utils/__init__.py
ppcls/utils/__init__.py
+0
-1
ppcls/utils/environment.py
ppcls/utils/environment.py
+0
-39
tools/eval.py
tools/eval.py
+3
-3
tools/train.py
tools/train.py
+13
-6
未找到文件。
ppcls/utils/__init__.py
浏览文件 @
a82eef9f
...
...
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
.
import
environment
from
.
import
model_zoo
from
.
import
misc
from
.
import
logger
...
...
ppcls/utils/environment.py
已删除
100644 → 0
浏览文件 @
33c96900
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
#
#Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.
import
os
import
paddle
import
paddle.fluid
as
fluid
import
paddle.fluid.framework
as
pff
trainers_num
=
int
(
os
.
environ
.
get
(
'PADDLE_TRAINERS_NUM'
,
1
))
trainer_id
=
int
(
os
.
environ
.
get
(
"PADDLE_TRAINER_ID"
,
0
))
def
place
():
gpu_id
=
int
(
os
.
environ
.
get
(
'FLAGS_selected_gpus'
,
0
))
return
fluid
.
CUDAPlace
(
gpu_id
)
def
places
():
"""
Returns available running places, the numbers are usually
indicated by 'export CUDA_VISIBLE_DEVICES= '
Args:
"""
if
trainers_num
<=
1
:
return
pff
.
cuda_places
()
else
:
return
place
()
tools/eval.py
浏览文件 @
a82eef9f
...
...
@@ -25,7 +25,6 @@ import paddle.fluid as fluid
import
program
from
ppcls.data
import
Reader
import
ppcls.utils.environment
as
env
from
ppcls.utils.config
import
get_config
from
ppcls.utils.save_load
import
init_model
,
save_model
from
ppcls.utils
import
logger
...
...
@@ -58,7 +57,8 @@ def main(args):
fleet
.
init
(
role
)
config
=
get_config
(
args
.
config
,
overrides
=
args
.
override
,
show
=
True
)
place
=
env
.
place
()
gpu_id
=
int
(
os
.
environ
.
get
(
'FLAGS_selected_gpus'
,
0
))
place
=
fluid
.
CUDAPlace
(
gpu_id
)
startup_prog
=
fluid
.
Program
()
valid_prog
=
fluid
.
Program
()
...
...
@@ -69,7 +69,7 @@ def main(args):
exe
=
fluid
.
Executor
(
place
)
exe
.
run
(
startup_prog
)
init_model
(
config
,
valid_prog
,
exe
)
init_model
(
config
,
valid_prog
,
exe
,
'ppcls'
)
valid_reader
=
Reader
(
config
,
'valid'
)()
valid_dataloader
.
set_sample_list_generator
(
valid_reader
,
place
)
...
...
tools/train.py
浏览文件 @
a82eef9f
...
...
@@ -19,8 +19,6 @@ from __future__ import print_function
import
argparse
import
os
import
sys
sys
.
path
.
append
(
os
.
getcwd
())
import
paddle
import
paddle.fluid
as
fluid
...
...
@@ -28,7 +26,6 @@ import paddle.fluid as fluid
import
program
from
ppcls.data
import
Reader
import
ppcls.utils.environment
as
env
from
ppcls.utils.config
import
get_config
from
ppcls.utils.save_load
import
init_model
,
save_model
from
ppcls.utils
import
logger
...
...
@@ -60,8 +57,12 @@ def main(args):
fleet
.
init
(
role
)
config
=
get_config
(
args
.
config
,
overrides
=
args
.
override
,
show
=
True
)
place
=
env
.
place
()
# assign the place
gpu_id
=
int
(
os
.
environ
.
get
(
'FLAGS_selected_gpus'
,
0
))
place
=
fluid
.
CUDAPlace
(
gpu_id
)
# startup_prog is used to do some parameter init work,
# and train prog is used to hold the network
startup_prog
=
fluid
.
Program
()
train_prog
=
fluid
.
Program
()
...
...
@@ -72,11 +73,15 @@ def main(args):
valid_prog
=
fluid
.
Program
()
valid_dataloader
,
valid_fetchs
=
program
.
build
(
config
,
valid_prog
,
startup_prog
,
is_train
=
False
)
# clone to prune some content which is irrelevant in valid_prog
valid_prog
=
valid_prog
.
clone
(
for_test
=
True
)
exe
=
fluid
.
Executor
(
place
)
# create the "Executor" with the statement of which place
exe
=
fluid
.
Executor
(
place
=
place
)
# only run startup_prog once to init
exe
.
run
(
startup_prog
)
# load model from checkpoint or pretrained model
init_model
(
config
,
train_prog
,
exe
)
train_reader
=
Reader
(
config
,
'train'
)()
...
...
@@ -89,13 +94,15 @@ def main(args):
compiled_train_prog
=
fleet
.
main_program
for
epoch_id
in
range
(
config
.
epochs
):
# 1. train with train dataset
program
.
run
(
train_dataloader
,
exe
,
compiled_train_prog
,
train_fetchs
,
epoch_id
,
'train'
)
# 2. validate with validate dataset
if
config
.
validate
and
epoch_id
%
config
.
valid_interval
==
0
:
program
.
run
(
valid_dataloader
,
exe
,
compiled_valid_prog
,
valid_fetchs
,
epoch_id
,
'valid'
)
# 3. save the persistable model
if
epoch_id
%
config
.
save_interval
==
0
:
model_path
=
os
.
path
.
join
(
config
.
model_save_dir
,
config
.
ARCHITECTURE
[
"name"
])
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录