Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
d9ae6d8f
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d9ae6d8f
编写于
3月 09, 2019
作者:
Z
Zeng Jinle
提交者:
Cheerego
3月 09, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix doc error (#675)
上级
7f7c7da6
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
8 addition
and
11 deletion
+8
-11
doc/fluid/user_guides/howto/prepare_data/use_py_reader.rst
doc/fluid/user_guides/howto/prepare_data/use_py_reader.rst
+8
-11
未找到文件。
doc/fluid/user_guides/howto/prepare_data/use_py_reader.rst
浏览文件 @
d9ae6d8f
...
@@ -89,18 +89,20 @@
...
@@ -89,18 +89,20 @@
设置PyReader对象的数据源
设置PyReader对象的数据源
################################
################################
PyReader对象通过 :code:`decorate_paddle_reader()` 或 :code:`decorate_tensor_provider()` 方法设置其数据源。 :code:`decorate_paddle_reader()` 和 :code:`decorate_tensor_provider()` 均接收Python生成器 :code:`generator` 作为参数, :code:`generator` 内部每次通过yield的方式生成一个batch的数据。
PyReader对象通过 :code:`decorate_paddle_reader()` 或 :code:`decorate_tensor_provider()` 方法设置其数据源。 :code:`decorate_paddle_reader()` 和 :code:`decorate_tensor_provider()` 均接收Python生成器 :code:`generator` 作为参数, :code:`generator` 内部每次通过yield的方式生成一个batch的数据。
:code:`decorate_paddle_reader()` 和 :code:`decorate_tensor_provider()` 方法的区别在于:
:code:`decorate_paddle_reader()` 和 :code:`decorate_tensor_provider()` 方法的区别在于:
- :code:`decorate_paddle_reader()`
的 :code:`generator` 应返回Numpy Array类型的数据,而 :code:`decorate_tensor_provider()` 的 :code:`generator` 应返回LoDTensor类型的
数据。
- :code:`decorate_paddle_reader()`
要求 :code:`generator` 返回的数据格式为[(img_1, label_1), (img_2, label_2), ..., (img_n, label_n)],其中img_i和label_i均为每个样本的Numpy Array类型数据,n为batch size。而 :code:`decorate_tensor_provider()` 要求 :code:`generator` 返回的数据的数据格式为[batched_imgs, batched_labels],其中batched_imgs和batched_labels为batch级的Numpy Array或LoDTensor类型
数据。
- :code:`decorate_tensor_provider()` 要求 :code:`generator` 返回的
LoDTensor的
数据类型、尺寸必须与配置py_reader时指定的dtypes、shapes参数相同,而 :code:`decorate_paddle_reader()` 不要求数据类型和尺寸的严格一致,其内部会完成数据类型和尺寸的转换。
- :code:`decorate_tensor_provider()` 要求 :code:`generator` 返回的数据类型、尺寸必须与配置py_reader时指定的dtypes、shapes参数相同,而 :code:`decorate_paddle_reader()` 不要求数据类型和尺寸的严格一致,其内部会完成数据类型和尺寸的转换。
具体方式为:
具体方式为:
.. code-block:: python
.. code-block:: python
import paddle.batch
import paddle.fluid as fluid
import paddle.fluid as fluid
import numpy as np
import numpy as np
...
@@ -109,8 +111,8 @@ PyReader对象通过 :code:`decorate_paddle_reader()` 或 :code:`decorate_tensor
...
@@ -109,8 +111,8 @@ PyReader对象通过 :code:`decorate_paddle_reader()` 或 :code:`decorate_tensor
# Case 1: Use decorate_paddle_reader() method to set the data source of py_reader
# Case 1: Use decorate_paddle_reader() method to set the data source of py_reader
# The generator yields Numpy-typed batched data
# The generator yields Numpy-typed batched data
def fake_random_numpy_reader():
def fake_random_numpy_reader():
image = np.random.random(size=(
BATCH_SIZE, 784
))
image = np.random.random(size=(
784,
))
label = np.random.random_integers(size=(
BATCH_SIZE, 1
), low=0, high=9)
label = np.random.random_integers(size=(
1,
), low=0, high=9)
yield image, label
yield image, label
py_reader1 = fluid.layers.py_reader(
py_reader1 = fluid.layers.py_reader(
...
@@ -120,19 +122,14 @@ PyReader对象通过 :code:`decorate_paddle_reader()` 或 :code:`decorate_tensor
...
@@ -120,19 +122,14 @@ PyReader对象通过 :code:`decorate_paddle_reader()` 或 :code:`decorate_tensor
name='py_reader1',
name='py_reader1',
use_double_buffer=True)
use_double_buffer=True)
py_reader1.decorate_paddle_reader(fake_random_reader)
py_reader1.decorate_paddle_reader(paddle.batch(fake_random_reader, batch_size=BATCH_SIZE))
# Case 2: Use decorate_tensor_provider() method to set the data source of py_reader
# Case 2: Use decorate_tensor_provider() method to set the data source of py_reader
# The generator yields Tensor-typed batched data
# The generator yields Tensor-typed batched data
def fake_random_tensor_provider():
def fake_random_tensor_provider():
image = np.random.random(size=(BATCH_SIZE, 784)).astype('float32')
image = np.random.random(size=(BATCH_SIZE, 784)).astype('float32')
label = np.random.random_integers(size=(BATCH_SIZE, 1), low=0, high=9).astype('int64')
label = np.random.random_integers(size=(BATCH_SIZE, 1), low=0, high=9).astype('int64')
image_tensor = fluid.LoDTensor()
image_tensor.set(image, fluid.CPUPlace())
label_tensor = fluid.LoDTensor()
label_tensor.set(label, fluid.CPUPlace())
yield image_tensor, label_tensor
yield image_tensor, label_tensor
py_reader2 = fluid.layers.py_reader(
py_reader2 = fluid.layers.py_reader(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录