diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec index 5556c6206e9d3983ba6536b6fc02e6f137e118ef..458e68bd93a1eacf2b6020f1f635b9e2c5490d8a 100644 --- a/paddle/fluid/API.spec +++ b/paddle/fluid/API.spec @@ -249,7 +249,7 @@ paddle.fluid.layers.batch (ArgSpec(args=['reader', 'batch_size'], varargs=None, paddle.fluid.layers.double_buffer (ArgSpec(args=['reader', 'place', 'name'], varargs=None, keywords=None, defaults=(None, None)), ('document', 'c13b8a8521bea5f8123b925ae2a5d5db')) paddle.fluid.layers.random_data_generator (ArgSpec(args=['low', 'high', 'shapes', 'lod_levels', 'for_parallel'], varargs=None, keywords=None, defaults=(True,)), ('document', '9b7f0f86ec24bbc97643cadcb6499cff')) paddle.fluid.layers.py_reader (ArgSpec(args=['capacity', 'shapes', 'dtypes', 'lod_levels', 'name', 'use_double_buffer'], varargs=None, keywords=None, defaults=(None, None, True)), ('document', 'd78a1c7344955c5caed8dc13adb7beb6')) -paddle.fluid.layers.create_py_reader_by_data (ArgSpec(args=['capacity', 'feed_list', 'name', 'use_double_buffer'], varargs=None, keywords=None, defaults=(None, True)), ('document', 'b42332b894e1e0962c6a43f0151c2640')) +paddle.fluid.layers.create_py_reader_by_data (ArgSpec(args=['capacity', 'feed_list', 'name', 'use_double_buffer'], varargs=None, keywords=None, defaults=(None, True)), ('document', '2edf37d57862b24a7a26aa19a3573f73')) paddle.fluid.layers.Preprocessor.__init__ (ArgSpec(args=['self', 'reader', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '6adf97f83acf6453d4a6a4b1070f3754')) paddle.fluid.layers.Preprocessor.block (ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None), ('document', '6adf97f83acf6453d4a6a4b1070f3754')) paddle.fluid.layers.Preprocessor.inputs (ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None), ('document', '6adf97f83acf6453d4a6a4b1070f3754')) diff --git a/python/paddle/fluid/layers/io.py b/python/paddle/fluid/layers/io.py index 718e4a4ec2167f89d672eb979808ca1cc50c166b..c0ba1d2e36adc3dc1de184a0245cbf4aec4d7116 100644 --- a/python/paddle/fluid/layers/io.py +++ b/python/paddle/fluid/layers/io.py @@ -828,6 +828,7 @@ def create_py_reader_by_data(capacity, import paddle import paddle.fluid as fluid import paddle.dataset.mnist as mnist + import paddle.fluid.compiler as compiler def network(img, label): # User defined network. Here a simple regression as example @@ -835,6 +836,9 @@ def create_py_reader_by_data(capacity, loss = fluid.layers.cross_entropy(input=predict, label=label) return fluid.layers.mean(loss) + MEMORY_OPT = False + USE_CUDA = False + image = fluid.layers.data(name='image', shape=[1, 28, 28], dtype='float32') label = fluid.layers.data(name='label', shape=[1], dtype='int64') reader = fluid.layers.create_py_reader_by_data(capacity=64, @@ -846,14 +850,23 @@ def create_py_reader_by_data(capacity, img, label = fluid.layers.read_file(reader) loss = network(img, label) # some network definition - fluid.Executor(fluid.CUDAPlace(0)).run(fluid.default_startup_program()) + place = fluid.CUDAPlace(0) if USE_CUDA else fluid.CPUPlace() + exe = fluid.Executor(place) + exe.run(fluid.default_startup_program()) - exe = fluid.ParallelExecutor(use_cuda=True, loss_name=loss.name) - for epoch_id in range(10): + build_strategy = fluid.BuildStrategy() + build_strategy.memory_optimize = True if MEMORY_OPT else False + compiled_prog = compiler.CompiledProgram( + fluid.default_main_program()).with_data_parallel( + loss_name=loss.name, + build_strategy=build_strategy, + exec_strategy=exec_strategy) + + for epoch_id in range(2): reader.start() try: while True: - exe.run(fetch_list=[loss.name]) + exe.run(compiled_prog, fetch_list=[loss.name]) except fluid.core.EOFException: reader.reset() """