Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
9011f9e5
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9011f9e5
编写于
6月 07, 2017
作者:
G
gongweibao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add precommit
上级
94dbe44b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
60 addition
and
0 deletion
+60
-0
python/paddle/v2/dataset/common.py
python/paddle/v2/dataset/common.py
+44
-0
python/paddle/v2/dataset/tests/common_test.py
python/paddle/v2/dataset/tests/common_test.py
+16
-0
未找到文件。
python/paddle/v2/dataset/common.py
浏览文件 @
9011f9e5
...
...
@@ -149,3 +149,47 @@ def cluster_files_reader(files_pattern,
yield
line
return
reader
def
convert
(
output_path
,
eader
,
num_shards
,
name_prefix
):
import
recordio
import
cPickle
as
pickle
"""
Convert data from reader to recordio format files.
:param output_path: directory in which output files will be saved.
:param reader: a data reader, from which the convert program will read data instances.
:param num_shards: the number of shards that the dataset will be partitioned into.
:param name_prefix: the name prefix of generated files.
"""
def
open_needs
(
idx
):
n
=
"%s/%s-%05d"
%
(
output_path
,
name_prefix
,
idx
)
w
=
recordio
.
writer
(
n
)
f
=
open
(
n
,
"w"
)
idx
+=
1
return
w
,
f
,
idx
def
close_needs
(
w
,
f
):
if
w
is
not
None
:
w
.
close
()
if
f
is
not
None
:
f
.
close
()
idx
=
0
w
=
None
f
=
None
for
i
,
d
in
enumerate
(
reader
()):
if
w
is
None
:
w
,
f
,
idx
=
open_needs
(
idx
)
w
.
write
(
pickle
.
dumps
(
d
,
pickle
.
HIGHEST_PROTOCOL
))
if
i
%
num_shards
==
0
and
i
>=
num_shards
:
close_needs
(
w
,
f
)
w
,
f
,
idx
=
open_needs
(
idx
)
close_needs
(
w
,
f
)
python/paddle/v2/dataset/tests/common_test.py
浏览文件 @
9011f9e5
...
...
@@ -57,6 +57,22 @@ class TestCommon(unittest.TestCase):
for
idx
,
e
in
enumerate
(
reader
()):
self
.
assertEqual
(
e
,
str
(
"0"
))
def
test_convert
(
self
):
def
test_reader
():
def
reader
():
for
x
in
xrange
(
10
):
yield
x
return
reader
path
=
tempfile
.
mkdtemp
()
paddle
.
v2
.
dataset
.
common
.
convert
(
path
,
test_reader
(),
4
,
'random_images'
)
files
=
glob
.
glob
(
temp_path
+
'/random_images-*'
)
self
.
assertEqual
(
len
(
files
),
3
)
if
__name__
==
'__main__'
:
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录