.. _cn_api_fluid_io_xmap_readers: xmap_readers ------------------------------- .. py:function:: paddle.fluid.io.xmap_readers(mapper, reader, process_num, buffer_size, order=False) :alias_main: paddle.io.xmap_readers :alias: paddle.io.xmap_readers,paddle.io..reader.xmap_readers 多线程下,使用自定义映射器 reader 返回样本到输出队列。 参数: - **mapper** (callable): 映射 reader 数据的函数。 - **reader** (callable): 产生数据的 reader。 - **process_num** (int): 处理样本的线程数。 - **buffer_size** (int): 数据缓冲队列大小。 - **order** (bool): 是否保持原始 reader 数据顺序,默认为 False。 返回:一个用户定义的 reader `装饰器 `_ 。 返回类型:callable,可调用对象。 **代码示例**: .. code-block:: python import paddle.fluid as fluid import time def reader_creator_10(dur): def reader(): for i in range(10): time.sleep(dur) yield i return reader def mapper(x): return (x + 1) orders = (True, False) thread_num = (1, 2, 4, 8, 16) buffer_size = (1, 2, 4, 8, 16) for order in orders: for t_num in thread_num: for size in buffer_size: user_reader = fluid.io.xmap_readers(mapper, reader_creator_10(0), t_num, size, order) for n in range(3): result = list() for i in user_reader(): result.append(i) if not order: result.sort() for idx, e in enumerate(result): assert e == mapper(idx)