Skip to content

Commit 75cda4d

Browse files
authored
fix data_feed_desc.py example run error (#17452)
* fix data_feed_desc.py example run error test=develop test=test=document_preview * fix data_feed_desc.py example display error test=develop test=document_preview * update API.spec for DataFeedDesc test=develop test=document_preview
1 parent e32f4c4 commit 75cda4d

File tree

2 files changed

+128
-37
lines changed

2 files changed

+128
-37
lines changed

paddle/fluid/API.spec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ paddle.fluid.ParallelExecutor.run (ArgSpec(args=['self', 'fetch_list', 'feed', '
3636
paddle.fluid.create_lod_tensor (ArgSpec(args=['data', 'recursive_seq_lens', 'place'], varargs=None, keywords=None, defaults=None), ('document', 'b82ea20e2dc5ff2372e0643169ca47ff'))
3737
paddle.fluid.create_random_int_lodtensor (ArgSpec(args=['recursive_seq_lens', 'base_shape', 'place', 'low', 'high'], varargs=None, keywords=None, defaults=None), ('document', '74dc6d23185d90a7a50fbac19f5b65fb'))
3838
paddle.fluid.DataFeedDesc.__init__ (ArgSpec(args=['self', 'proto_file'], varargs=None, keywords=None, defaults=None), ('document', '6adf97f83acf6453d4a6a4b1070f3754'))
39-
paddle.fluid.DataFeedDesc.desc (ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None), ('document', '4294493e31c4bc9fc4bd48753044235f'))
40-
paddle.fluid.DataFeedDesc.set_batch_size (ArgSpec(args=['self', 'batch_size'], varargs=None, keywords=None, defaults=None), ('document', '8d9f44601e0a99dd431f14fd9250cd21'))
41-
paddle.fluid.DataFeedDesc.set_dense_slots (ArgSpec(args=['self', 'dense_slots_name'], varargs=None, keywords=None, defaults=None), ('document', 'eb894b464bbcd1b4bc8038398954f766'))
42-
paddle.fluid.DataFeedDesc.set_use_slots (ArgSpec(args=['self', 'use_slots_name'], varargs=None, keywords=None, defaults=None), ('document', '415c56600ce4e198c071cad01409a690'))
39+
paddle.fluid.DataFeedDesc.desc (ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None), ('document', '75283b5f03ec7b6f74bfca9881a37428'))
40+
paddle.fluid.DataFeedDesc.set_batch_size (ArgSpec(args=['self', 'batch_size'], varargs=None, keywords=None, defaults=None), ('document', '68df53d3ea0f24063bf7689e82c2b82e'))
41+
paddle.fluid.DataFeedDesc.set_dense_slots (ArgSpec(args=['self', 'dense_slots_name'], varargs=None, keywords=None, defaults=None), ('document', 'd5a78553cd94fe64148399797055d8ad'))
42+
paddle.fluid.DataFeedDesc.set_use_slots (ArgSpec(args=['self', 'use_slots_name'], varargs=None, keywords=None, defaults=None), ('document', '88d229ea9f892ce8d2922cf028c8bb3a'))
4343
paddle.fluid.CompiledProgram.__init__ (ArgSpec(args=['self', 'program_or_graph'], varargs=None, keywords=None, defaults=None), ('document', '6adf97f83acf6453d4a6a4b1070f3754'))
4444
paddle.fluid.CompiledProgram.with_data_parallel (ArgSpec(args=['self', 'loss_name', 'build_strategy', 'exec_strategy', 'share_vars_from', 'places'], varargs=None, keywords=None, defaults=(None, None, None, None, None)), ('document', '0e17773521634ef798fddd7d2ea3ef96'))
4545
paddle.fluid.CompiledProgram.with_inference_optimize (ArgSpec(args=['self', 'config'], varargs=None, keywords=None, defaults=None), ('document', '9e5b009d850191a010e859189c127fd8'))

python/paddle/fluid/data_feed_desc.py

Lines changed: 124 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,32 @@ class DataFeedDesc(object):
2424
currently only used for AsyncExecutor (See comments for class AsyncExecutor
2525
for a brief introduction)
2626
27-
DataFeedDesc shall be initialized from a valid protobuf message from disk:
28-
>>> data_feed = fluid.DataFeedDesc('data.proto')
27+
DataFeedDesc shall be initialized from a valid protobuf message from disk.
2928
3029
See :code:`paddle/fluid/framework/data_feed.proto` for message definition.
3130
A typical message might look like:
3231
33-
>>> name: "MultiSlotDataFeed"
34-
>>> batch_size: 2
35-
>>> multi_slot_desc {
36-
>>> slots {
37-
>>> name: "words"
38-
>>> type: "uint64"
39-
>>> is_dense: false
40-
>>> is_used: true
41-
>>> }
42-
>>> slots {
43-
>>> name: "label"
44-
>>> type: "uint64"
45-
>>> is_dense: false
46-
>>> is_used: true
47-
>>> }
48-
>>> }
32+
.. code-block:: python
33+
34+
f = open("data.proto", "w")
35+
print >> f, 'name: "MultiSlotDataFeed"'
36+
print >> f, 'batch_size: 2'
37+
print >> f, 'multi_slot_desc {'
38+
print >> f, ' slots {'
39+
print >> f, ' name: "words"'
40+
print >> f, ' type: "uint64"'
41+
print >> f, ' is_dense: false'
42+
print >> f, ' is_used: true'
43+
print >> f, ' }'
44+
print >> f, ' slots {'
45+
print >> f, ' name: "label"'
46+
print >> f, ' type: "uint64"'
47+
print >> f, ' is_dense: false'
48+
print >> f, ' is_used: true'
49+
print >> f, ' }'
50+
print >> f, '}'
51+
f.close()
52+
data_feed = fluid.DataFeedDesc('data.proto')
4953
5054
However, users usually shouldn't care about the message format; instead,
5155
they are encouragd to use :code:`Data Generator` as a tool to generate a
@@ -54,16 +58,23 @@ class DataFeedDesc(object):
5458
5559
DataFeedDesc can also be changed during runtime. Once you got familiar with
5660
what each field mean, you can modify it to better suit your need. E.g.:
57-
>>> data_feed.set_batch_size(128)
58-
>>> data_feed.set_dense_slots('wd') # The slot named 'wd' will be dense
59-
>>> data_feed.set_use_slots('wd') # The slot named 'wd' will be used
61+
62+
.. code-block:: python
63+
64+
data_feed = fluid.DataFeedDesc('data.proto')
65+
data_feed.set_batch_size(128)
66+
data_feed.set_dense_slots('wd') # The slot named 'wd' will be dense
67+
data_feed.set_use_slots('wd') # The slot named 'wd' will be used
6068
6169
Finally, the content can be dumped out for debugging purpose:
62-
>>> print(data_feed.desc())
70+
71+
.. code-block:: python
72+
73+
print(data_feed.desc())
6374
6475
Args:
6576
proto_file(string): Disk file containing a data feed description.
66-
77+
6778
"""
6879

6980
def __init__(self, proto_file):
@@ -82,8 +93,28 @@ def set_batch_size(self, batch_size):
8293
Set batch size. Will be effective during training
8394
8495
Example:
85-
>>> data_feed = fluid.DataFeedDesc('data.proto')
86-
>>> data_feed.set_batch_size(128)
96+
.. code-block:: python
97+
98+
f = open("data.proto", "w")
99+
print >> f, 'name: "MultiSlotDataFeed"'
100+
print >> f, 'batch_size: 2'
101+
print >> f, 'multi_slot_desc {'
102+
print >> f, ' slots {'
103+
print >> f, ' name: "words"'
104+
print >> f, ' type: "uint64"'
105+
print >> f, ' is_dense: false'
106+
print >> f, ' is_used: true'
107+
print >> f, ' }'
108+
print >> f, ' slots {'
109+
print >> f, ' name: "label"'
110+
print >> f, ' type: "uint64"'
111+
print >> f, ' is_dense: false'
112+
print >> f, ' is_used: true'
113+
print >> f, ' }'
114+
print >> f, '}'
115+
f.close()
116+
data_feed = fluid.DataFeedDesc('data.proto')
117+
data_feed.set_batch_size(128)
87118
88119
Args:
89120
batch_size: batch size
@@ -98,8 +129,28 @@ def set_dense_slots(self, dense_slots_name):
98129
sparse slot will be fed into a LoDTensor
99130
100131
Example:
101-
>>> data_feed = fluid.DataFeedDesc('data.proto')
102-
>>> data_feed.set_dense_slots(['words'])
132+
.. code-block:: python
133+
134+
f = open("data.proto", "w")
135+
print >> f, 'name: "MultiSlotDataFeed"'
136+
print >> f, 'batch_size: 2'
137+
print >> f, 'multi_slot_desc {'
138+
print >> f, ' slots {'
139+
print >> f, ' name: "words"'
140+
print >> f, ' type: "uint64"'
141+
print >> f, ' is_dense: false'
142+
print >> f, ' is_used: true'
143+
print >> f, ' }'
144+
print >> f, ' slots {'
145+
print >> f, ' name: "label"'
146+
print >> f, ' type: "uint64"'
147+
print >> f, ' is_dense: false'
148+
print >> f, ' is_used: true'
149+
print >> f, ' }'
150+
print >> f, '}'
151+
f.close()
152+
data_feed = fluid.DataFeedDesc('data.proto')
153+
data_feed.set_dense_slots(['words'])
103154
104155
Args:
105156
dense_slots_name: a list of slot names which will be set dense
@@ -109,7 +160,7 @@ def set_dense_slots(self, dense_slots_name):
109160
"""
110161
if self.proto_desc.name != "MultiSlotDataFeed":
111162
raise ValueError(
112-
"Only MultiSlotDataFeed need set_dense_slots, pls check your datafeed.proto"
163+
"Only MultiSlotDataFeed needs set_dense_slots, please check your datafeed.proto"
113164
)
114165
for name in dense_slots_name:
115166
self.proto_desc.multi_slot_desc.slots[self.__name_to_index[
@@ -122,8 +173,28 @@ def set_use_slots(self, use_slots_name):
122173
ones will be used for a specific model.
123174
124175
Example:
125-
>>> data_feed = fluid.DataFeedDesc('data.proto')
126-
>>> data_feed.set_use_slots(['words'])
176+
.. code-block:: python
177+
178+
f = open("data.proto", "w")
179+
print >> f, 'name: "MultiSlotDataFeed"'
180+
print >> f, 'batch_size: 2'
181+
print >> f, 'multi_slot_desc {'
182+
print >> f, ' slots {'
183+
print >> f, ' name: "words"'
184+
print >> f, ' type: "uint64"'
185+
print >> f, ' is_dense: false'
186+
print >> f, ' is_used: true'
187+
print >> f, ' }'
188+
print >> f, ' slots {'
189+
print >> f, ' name: "label"'
190+
print >> f, ' type: "uint64"'
191+
print >> f, ' is_dense: false'
192+
print >> f, ' is_used: true'
193+
print >> f, ' }'
194+
print >> f, '}'
195+
f.close()
196+
data_feed = fluid.DataFeedDesc('data.proto')
197+
data_feed.set_use_slots(['words'])
127198
128199
Args:
129200
use_slots_name: a list of slot names which will be used in training
@@ -133,7 +204,7 @@ def set_use_slots(self, use_slots_name):
133204
"""
134205
if self.proto_desc.name != "MultiSlotDataFeed":
135206
raise ValueError(
136-
"Only MultiSlotDataFeed need set_use_slots, pls check your datafeed.proto"
207+
"Only MultiSlotDataFeed needs set_use_slots, please check your datafeed.proto"
137208
)
138209
for name in use_slots_name:
139210
self.proto_desc.multi_slot_desc.slots[self.__name_to_index[
@@ -144,8 +215,28 @@ def desc(self):
144215
Returns a protobuf message for this DataFeedDesc
145216
146217
Example:
147-
>>> data_feed = fluid.DataFeedDesc('data.proto')
148-
>>> print(data_feed.desc())
218+
.. code-block:: python
219+
220+
f = open("data.proto", "w")
221+
print >> f, 'name: "MultiSlotDataFeed"'
222+
print >> f, 'batch_size: 2'
223+
print >> f, 'multi_slot_desc {'
224+
print >> f, ' slots {'
225+
print >> f, ' name: "words"'
226+
print >> f, ' type: "uint64"'
227+
print >> f, ' is_dense: false'
228+
print >> f, ' is_used: true'
229+
print >> f, ' }'
230+
print >> f, ' slots {'
231+
print >> f, ' name: "label"'
232+
print >> f, ' type: "uint64"'
233+
print >> f, ' is_dense: false'
234+
print >> f, ' is_used: true'
235+
print >> f, ' }'
236+
print >> f, '}'
237+
f.close()
238+
data_feed = fluid.DataFeedDesc('data.proto')
239+
print(data_feed.desc())
149240
150241
Returns:
151242
A string message

0 commit comments

Comments
 (0)