Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PALM
提交
82741fb6
P
PALM
项目概览
PaddlePaddle
/
PALM
通知
7
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PALM
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
82741fb6
编写于
12月 27, 2019
作者:
X
xixiaoyao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bugs
上级
fa625b30
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
1 deletion
+27
-1
paddlepalm/trainer.py
paddlepalm/trainer.py
+14
-1
paddlepalm/utils/reader_helper.py
paddlepalm/utils/reader_helper.py
+13
-0
未找到文件。
paddlepalm/trainer.py
浏览文件 @
82741fb6
...
...
@@ -19,7 +19,7 @@ import json
from
paddle
import
fluid
import
paddlepalm.utils.basic_helper
as
helper
from
paddlepalm.utils
import
reader_helper
,
saver
from
paddlepalm.distribute
import
gpu_dev_count
from
paddlepalm.distribute
import
gpu_dev_count
,
data_feeder
# from paddlepalm.default_settings import *
DEBUG
=
False
...
...
@@ -143,6 +143,7 @@ class Trainer(object):
self
.
_train_init_prog
=
train_init_prog
with
fluid
.
program_guard
(
train_prog
,
train_init_prog
):
net_inputs
=
reader_helper
.
create_net_inputs
(
input_attrs
,
async
=
False
)
self
.
_net_inputs
=
net_inputs
# build backbone and task layers
# bb_output_vars = self._backbone.build(net_inputs, scope_name='__paddlepalm_')
...
...
@@ -189,6 +190,7 @@ class Trainer(object):
bb_fetches
=
{
k
:
v
.
name
for
k
,
v
in
bb_output_vars
.
items
()}
task_fetches
=
{
k
:
v
.
name
for
k
,
v
in
task_output_vars
.
items
()}
self
.
_fetches
=
task_fetches
# fetches = task_fetches
# fetches['__task_id'] = net_inputs['__task_id'].name
...
...
@@ -269,6 +271,17 @@ class Trainer(object):
model_path
,
main_program
=
self
.
_train_init_prog
)
def
train
(
self
,
iterator
,
print_steps
=
5
):
feed_batch_process_fn
=
reader_helper
.
create_feed_batch_process_fn
(
self
.
_net_inputs
)
distribute_feeder
=
data_feeder
(
iterator
,
feed_batch_process_fn
)
fetch_names
,
fetch_list
=
zip
(
*
self
.
_fetches
.
items
())
for
feed
,
mask
in
distribute_feeder
:
rt_outputs
=
self
.
exe
.
run
(
self
.
_train_prog
,
feed
=
feed
,
fetch_list
=
fetch_list
)
while
mask
.
pop
()
==
False
:
rt_outputs
.
pop
()
def
_build_head
(
self
,
net_inputs
,
phase
,
scope
=
""
):
if
phase
==
'train'
:
output_vars
=
self
.
_task_head
.
build
(
net_inputs
,
scope_name
=
scope
)
...
...
paddlepalm/utils/reader_helper.py
浏览文件 @
82741fb6
...
...
@@ -22,6 +22,19 @@ from paddle import fluid
from
paddle.fluid
import
layers
def
create_feed_batch_process_fn
(
net_inputs
):
def
feed_batch_process_fn
(
data
):
temp
=
{}
for
q
,
var
in
net_inputs
.
items
():
if
isinstance
(
var
,
str
)
or
isinstance
(
var
,
unicode
):
temp
[
var
]
=
data
[
q
]
else
:
temp
[
var
.
name
]
=
data
[
q
]
return
temp
return
feed_batch_process_fn
def
_check_and_adapt_shape_dtype
(
rt_val
,
attr
,
message
=
""
):
if
not
isinstance
(
rt_val
,
np
.
ndarray
):
rt_val
=
np
.
array
(
rt_val
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录