Data input and output

Data input

Fluid supports two methods for data input, including:

1. Python Reader: A pure Python Reader. The user defines the fluid.layers.data layer on the Python side and builds the network. Then, read the data by calling executor.run(feed=...) . The process of data reading and model training/inference is performed simultaneously.

2. PyReader: An Efficient and flexible C++ Reader interface. PyReader internally maintains a queue with size of capacity (queue capacity is determined by capacity parameter in the fluid.layers.py_reader interface ). Python side call queue push to feed the training/inference data, and the C++ side training/inference program calls the pop method to retrieve the data sent by the Python side. PyReader can work in conjunction with double_buffer to realize asynchronous execution of data reading and model training/inference.

For details, please refer to api_fluid_layers_py_reader.

Data output

Fluid supports obtaining data for the current batch in the training/inference phase.

The user can fetch expected variables from executor.run(fetch_list=[...], return_numpy=...) . User can determine whether to convert the output data to numpy array by setting the return_numpy parameter. If return_numpy is False , data of type LoDTensor will be returned.

For specific usage, please refer to the relevant API documentation api_fluid_executor_Executor and api_fluid_ParallelExecutor.