Skip to content

Commit 3a09693

Browse files
committed
change API name
test=develop
1 parent 161b8dd commit 3a09693

File tree

6 files changed

+36
-16
lines changed

6 files changed

+36
-16
lines changed

paddle/fluid/API.spec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ paddle.fluid.io.load_params (ArgSpec(args=['executor', 'dirname', 'main_program'
6161
paddle.fluid.io.load_persistables (ArgSpec(args=['executor', 'dirname', 'main_program', 'filename'], varargs=None, keywords=None, defaults=(None, None)), ('document', '28df5bfe26ca7a077f91156abb0fe6d2'))
6262
paddle.fluid.io.save_inference_model (ArgSpec(args=['dirname', 'feeded_var_names', 'target_vars', 'executor', 'main_program', 'model_filename', 'params_filename', 'export_for_deployment'], varargs=None, keywords=None, defaults=(None, None, None, True)), ('document', '582d87b8df75a5a639a107db8ff86f9c'))
6363
paddle.fluid.io.load_inference_model (ArgSpec(args=['dirname', 'executor', 'model_filename', 'params_filename', 'pserver_endpoints'], varargs=None, keywords=None, defaults=(None, None, None)), ('document', '7a5255386075dac3c75b7058254fcdcb'))
64-
paddle.fluid.io.PyReader.__init__ (ArgSpec(args=['self', 'feed_list', 'capacity', 'use_double_buffer', 'iterable'], varargs=None, keywords=None, defaults=(True, False)), ('document', '18211b287474b401bc460d3f73dbc1c7'))
65-
paddle.fluid.io.PyReader.decorate_paddle_reader (ArgSpec(args=['self', 'reader', 'places'], varargs=None, keywords=None, defaults=(None,)), ('document', 'faef298f73e91aedcfaf5d184f3109b7'))
66-
paddle.fluid.io.PyReader.decorate_sample_generator (ArgSpec(args=['self', 'sample_generator', 'batch_size', 'drop_last', 'places'], varargs=None, keywords=None, defaults=(True, None)), ('document', 'd3fe49fc342e7778ed086e965f41bf12'))
67-
paddle.fluid.io.PyReader.decorate_tensor_provider (ArgSpec(args=['self', 'reader', 'places'], varargs=None, keywords=None, defaults=(None,)), ('document', 'd10224fef1095247063b6976da793021'))
64+
paddle.fluid.io.PyReader.__init__ (ArgSpec(args=['self', 'feed_list', 'capacity', 'use_double_buffer', 'iterable'], varargs=None, keywords=None, defaults=(True, False)), ('document', 'b3d72958b2568aae3f90f72abdcb7d1a'))
65+
paddle.fluid.io.PyReader.decorate_batch_generator (ArgSpec(args=['self', 'reader', 'places'], varargs=None, keywords=None, defaults=(None,)), ('document', 'd10224fef1095247063b6976da793021'))
66+
paddle.fluid.io.PyReader.decorate_sample_generator (ArgSpec(args=['self', 'sample_generator', 'batch_size', 'drop_last', 'places'], varargs=None, keywords=None, defaults=(True, None)), ('document', '7abd9cf7d695bab5bb6cf7ded5903cb2'))
67+
paddle.fluid.io.PyReader.decorate_sample_list_generator (ArgSpec(args=['self', 'reader', 'places'], varargs=None, keywords=None, defaults=(None,)), ('document', 'faef298f73e91aedcfaf5d184f3109b7'))
6868
paddle.fluid.io.PyReader.reset (ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None), ('document', 'ff1cc1e2beb8824d453656c72c28ddfb'))
6969
paddle.fluid.io.PyReader.start (ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None), ('document', 'b7ea0a548991924e4cfe61a577b8e56d'))
7070
paddle.fluid.initializer.ConstantInitializer.__init__ (ArgSpec(args=['self', 'value', 'force_cpu'], varargs=None, keywords=None, defaults=(0.0, False)), ('document', '6adf97f83acf6453d4a6a4b1070f3754'))

python/paddle/fluid/compiler.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ def with_data_parallel(self,
127127
program in the given places. Otherwise, the places used when compiled
128128
is determined by the Executor, and the places used are controlled
129129
by environment variables: FLAGS_selected_gpus or CUDA_VISIBLE_DEVICES
130-
if using GPU; or CPU_NUM if using CPU.
130+
if using GPU; or CPU_NUM if using CPU. For example, if you want to
131+
run on GPU 0 and 1, set places=[fluid.CUDAPlace(0), fluid.CUDAPlace(1)].
132+
If you want to run on 2 CPU cores, set places=[fluid.CPUPlace()]*2.
131133
132134
Returns:
133135
self

python/paddle/fluid/layers/io.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,9 @@ def __start__():
632632
reader.reset = __reset__
633633
reader.decorate_tensor_provider = __set_tensor_provider__
634634
reader.decorate_paddle_reader = __set_paddle_reader__
635+
636+
reader.decorate_batch_generator = __set_tensor_provider__
637+
reader.decorate_sample_list_generator = __set_paddle_reader__
635638
reader.start = __start__
636639

637640
return reader

python/paddle/fluid/reader.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def __init__(self,
8282
8383
reader = fluid.io.PyReader(feed_list=[image, label],
8484
capacity=4, iterable=False)
85-
reader.decorate_paddle_reader(user_defined_reader)
85+
reader.decorate_sample_list_generator(user_defined_reader)
8686
... # definition of network is omitted
8787
executor.run(fluid.default_main_program())
8888
for _ in range(EPOCH_NUM):
@@ -109,7 +109,7 @@ def __init__(self,
109109
110110
reader = fluid.io.PyReader(feed_list=[image, label],
111111
capacity=4, iterable=True)
112-
reader.decorate_paddle_reader(user_defined_reader,
112+
reader.decorate_sample_list_generator(user_defined_reader,
113113
places=fluid.cuda_places())
114114
... # definition of network is omitted
115115
executor.run(fluid.default_main_program())
@@ -287,7 +287,7 @@ def decorate_sample_generator(self,
287287
:code:`places` must be set when the PyReader object is iterable.
288288
289289
If all inputs have no lods, this method is faster than
290-
:code:`decorate_paddle_reader(paddle.batch(sample_generator, ...))` .
290+
:code:`decorate_sample_list_generator(paddle.batch(sample_generator, ...))` .
291291
292292
Args:
293293
sample_generator (generator): Python generator that yields
@@ -306,7 +306,7 @@ def decorate_sample_generator(self,
306306
break
307307

308308
if has_lod:
309-
self.decorate_paddle_reader(
309+
self.decorate_sample_list_generator(
310310
paddle.batch(
311311
sample_generator,
312312
batch_size=batch_size,
@@ -319,9 +319,9 @@ def decorate_sample_generator(self,
319319
batch_size=batch_size,
320320
generator=sample_generator,
321321
drop_last=drop_last)
322-
self.decorate_tensor_provider(reader, places=places)
322+
self.decorate_batch_generator(reader, places=places)
323323

324-
def decorate_paddle_reader(self, reader, places=None):
324+
def decorate_sample_list_generator(self, reader, places=None):
325325
'''
326326
Set the data source of the PyReader object.
327327
@@ -347,9 +347,9 @@ def __tensor_reader_impl__():
347347
for slots in paddle_reader():
348348
yield [slots[var.name] for var in self._feed_list]
349349

350-
self.decorate_tensor_provider(__tensor_reader_impl__, places)
350+
self.decorate_batch_generator(__tensor_reader_impl__, places)
351351

352-
def decorate_tensor_provider(self, reader, places=None):
352+
def decorate_batch_generator(self, reader, places=None):
353353
'''
354354
Set the data source of the PyReader object.
355355

python/paddle/fluid/tests/unittests/test_decoupled_py_reader.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626

2727
def random_reader():
28+
np.random.seed(1)
2829
for i in range(BATCH_SIZE * 40):
2930
image = np.random.random([784])
3031
label = np.random.random_integers(low=0, high=CLASS_NUM - 1)
@@ -79,7 +80,8 @@ def run_main(self, use_legacy_py_reader, with_data_parallel, places,
7980
reader = paddle.batch(random_reader, batch_size=BATCH_SIZE)
8081

8182
ps = places if use_double_buffer else fluid.cpu_places(len(places))
82-
py_reader.decorate_paddle_reader(
83+
84+
py_reader.decorate_sample_list_generator(
8385
reader, places=ps if py_reader.iterable else None)
8486

8587
exe = fluid.Executor(place=places[0])
@@ -92,6 +94,7 @@ def run_main(self, use_legacy_py_reader, with_data_parallel, places,
9294

9395
step = 0
9496
step_list = []
97+
loss_list = []
9598
start_t = time.time()
9699
if not py_reader.iterable:
97100
for _ in six.moves.range(EPOCH_NUM):
@@ -102,6 +105,7 @@ def run_main(self, use_legacy_py_reader, with_data_parallel, places,
102105
L, = exe.run(program=prog,
103106
fetch_list=[loss],
104107
use_program_cache=True)
108+
loss_list.append(np.mean(L))
105109
step += 1
106110
except fluid.core.EOFException:
107111
py_reader.reset()
@@ -123,10 +127,15 @@ def run_main(self, use_legacy_py_reader, with_data_parallel, places,
123127
feed=d,
124128
fetch_list=[loss],
125129
use_program_cache=True)
130+
loss_list.append(np.mean(L))
126131
step += 1
127132
step_list.append(step)
128133
end_t = time.time()
129-
ret = {"time": end_t - start_t, "step": step_list}
134+
ret = {
135+
"time": end_t - start_t,
136+
"step": step_list,
137+
"loss": np.array(loss_list)
138+
}
130139
return ret
131140

132141
def prepare_places(self, with_data_parallel, with_cpu=True, with_gpu=True):
@@ -148,12 +157,18 @@ def test_main(self):
148157
for with_data_parallel in [True, False]:
149158
for p in self.prepare_places(with_data_parallel):
150159
for use_double_buffer in [False, True]:
160+
results = []
151161
for use_legacy_py_reader in [False, True]:
152162
ret = self.run_main(
153163
use_legacy_py_reader=use_legacy_py_reader,
154164
with_data_parallel=with_data_parallel,
155165
places=p,
156166
use_double_buffer=use_double_buffer)
167+
results.append(ret)
168+
if not use_double_buffer:
169+
diff = np.max(
170+
np.abs(results[0]['loss'] - results[1]['loss']))
171+
self.assertLess(diff, 1e-3)
157172

158173

159174
if __name__ == '__main__':

python/paddle/fluid/tests/unittests/test_py_reader_sample_generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def run_main(self, reader, use_sample_generator, iterable, drop_last):
6262
all_datas = self.generate_all_data(batch_reader)
6363

6464
if not use_sample_generator:
65-
py_reader.decorate_paddle_reader(
65+
py_reader.decorate_sample_list_generator(
6666
batch_reader, places=fluid.cpu_places())
6767
else:
6868
py_reader.decorate_sample_generator(

0 commit comments

Comments
 (0)