Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
ERNIE
提交
09d106e1
E
ERNIE
项目概览
PaddlePaddle
/
ERNIE
大约 1 年 前同步成功
通知
109
Star
5997
Fork
1270
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
29
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
ERNIE
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
29
Issue
29
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
09d106e1
编写于
6月 15, 2019
作者:
C
chengduozh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support multi process reader for bert
上级
ad3547c0
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
28 addition
and
7 deletion
+28
-7
BERT/reader/cls.py
BERT/reader/cls.py
+28
-7
未找到文件。
BERT/reader/cls.py
浏览文件 @
09d106e1
...
@@ -18,7 +18,7 @@ import csv
...
@@ -18,7 +18,7 @@ import csv
import
numpy
as
np
import
numpy
as
np
import
tokenization
import
tokenization
from
batching
import
prepare_batch_data
from
batching
import
prepare_batch_data
import
functools
class
DataProcessor
(
object
):
class
DataProcessor
(
object
):
"""Base class for data converters for sequence classification data sets."""
"""Base class for data converters for sequence classification data sets."""
...
@@ -178,16 +178,37 @@ class DataProcessor(object):
...
@@ -178,16 +178,37 @@ class DataProcessor(object):
yield
batch
,
total_token_num
yield
batch
,
total_token_num
def
wrapper
():
def
wrapper
():
for
batch_data
,
total_token_num
in
batch_reader
(
trainers_num
=
int
(
os
.
environ
.
get
(
'PADDLE_TRAINERS_NUM'
,
1
))
instance_reader
,
batch_size
,
self
.
in_tokens
):
trainer_id
=
int
(
os
.
getenv
(
"PADDLE_TRAINER_ID"
,
0
))
+
1
batch_data
=
self
.
generate_batch_data
(
if
trainers_num
>
1
:
batch_data
,
print
(
"start data reader (trainers_num: {}, trainer_id: {})"
.
format
(
total_token_num
,
trainers_num
,
trainer_id
-
1
))
get_prepared_batch_input
=
functools
.
partial
(
self
.
generate_batch_data
,
voc_size
=-
1
,
voc_size
=-
1
,
mask_id
=-
1
,
mask_id
=-
1
,
return_input_mask
=
True
,
return_input_mask
=
True
,
return_max_len
=
False
,
return_max_len
=
False
,
return_num_token
=
False
)
return_num_token
=
False
)
train_data
,
train_token_num
,
idx
=
None
,
None
,
1
for
batch_data
,
total_token_num
in
batch_reader
(
instance_reader
,
batch_size
,
self
.
in_tokens
):
if
trainers_num
>
1
:
if
idx
<
trainers_num
:
if
idx
==
trainer_id
:
train_data
,
train_token_num
=
batch_data
,
total_token_num
idx
+=
1
else
:
if
idx
==
trainer_id
:
train_data
,
train_token_num
=
batch_data
,
total_token_num
assert
train_data
is
not
None
,
"train data should not be None."
assert
train_token_num
is
not
None
,
"train data should not be None."
batch_data
=
get_prepared_batch_input
(
train_data
,
train_token_num
)
yield
batch_data
train_data
,
train_token_num
,
idx
=
None
,
None
,
1
else
:
batch_data
=
get_prepared_batch_input
(
batch_data
,
total_token_num
)
yield
batch_data
yield
batch_data
return
wrapper
return
wrapper
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录