Skip to content

Commit d0dcfe8

Browse files
authored
Merge pull request #329 from sneaxiy/data_feeder_api_guide_1.2
Add data feeder api guide
2 parents c77b096 + 358a3ff commit d0dcfe8

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
.. _api_guide_data_feeder:
2+
3+
使用DataFeeder传入训练/预测数据
4+
###################################
5+
6+
Fluid提供 :code:`DataFeeder` 类,将numpy array等数据转换为 :code:`LoDTensor` 类型传入训练/预测网络。
7+
8+
用户创建 :code:`DataFeeder` 对象的方式为:
9+
10+
.. code-block:: python
11+
12+
import paddle.fluid as fluid
13+
14+
image = fluid.layers.data(name='image', shape=[-1, 3, 224, 224], dtype='float32')
15+
label = fluid.layers.data(name='label', shape=[-1, 1], dtype='int64')
16+
place = fluid.CUDAPlace(0) if fluid.core.is_compiled_with_cuda() else fluid.CPUPlace()
17+
feeder = fluid.DataFeeder(feed_list=[image, label], place=place)
18+
19+
其中,:code:`feed_list` 参数为变量列表,这些变量由 :code:`fluid.layers.data()` 创建,
20+
:code:`place` 参数表示应将Python端传入的numpy array等数据转换为GPU端或是CPU端的 :code:`LoDTensor` 。
21+
创建 :code:`DataFeeder` 对象后,用户可调用其 :code:`feed(iterable)` 方法将用户传入的
22+
:code:`iterable` 数据转换为 :code:`LoDTensor`。
23+
24+
:code:`iterable` 应为Python List或Tuple类型对象,且 :code:`iterable` 的每个元素均为长度为N的
25+
Python List或Tuple类型对象,其中N为创建 :code:`DataFeeder` 对象时传入的 :code:`feed_list` 变量个数。
26+
27+
:code:`iterable` 的具体格式为:
28+
29+
.. code-block:: python
30+
31+
iterable = [
32+
(image_1, label_1),
33+
(image_2, label_2),
34+
...
35+
(image_n, label_n)
36+
]
37+
38+
其中,:code:`image_i` 与 :code:`label_i` 均为numpy array类型数据。若传入数据的维度为[1],如 :code:`label_i`,
39+
则可传入Python int、float等类型数据。 :code:`image_i` 与 :code:`label_i` 的数据类型和维度不必
40+
:code:`fluid.layers.data()` 创建时指定的 :code:`dtype` 和 :code:`shape` 完全一致,:code:`DataFeeder` 内部
41+
会完成数据类型和维度的转换。若 :code:`feed_list` 中的变量的 :code:`lod_level` 不为零,则Fluid会将经过维度转换后的
42+
:code:`iterable` 中每行数据的第0维作为返回结果的 :code:`LoD`。
43+
44+
具体使用方法请参见 :ref:`api_fluid_DataFeeder` 。

doc/fluid/api/api_guides/low_level/layers/data_in_out.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Fluid支持两种数据输入方式,包括:
1717
方法送入训练/预测数据,C++端的训练/预测程序调用队列的 :code:`pop` 方法取出Python端送入的数据。PyReader可与
1818
:code:`double_buffer` 配合使用,实现数据读取和训练/预测的异步执行。
1919

20-
具体使用方法请参考 :ref:`user_guide_use_py_reader`。
20+
具体使用方法请参考 :ref:`api_fluid_layers_py_reader`。
2121

2222

2323
数据输出

0 commit comments

Comments
 (0)