tf.contrib.data.parallel_interleave(
map_func,
cycle_length,
block_length=1,
sloppy=False,
buffer_output_elements=None,
prefetch_input_elements=None
参数:
map_func,
cycle_length,
block_length=1,
sloppy=False,
buffer_output_elements=None,
prefetch_input_elements=None
)
定义于:tensorflow/contrib/data/python/ops/interleave_ops.py。
Dataset.interleave()变换的并行版本。
parallel_interleave()映射map_func通过输入以生成嵌套数据集,并且输出其元素隔行交错。与tf.data.Dataset.interleave不同的是 ,它从cycle_length嵌套数据集中并行的获取元素,从而增加了吞吐量,尤其是在存在落后者的情况下。此外,sloppy参数可以用来提高性能,通过放宽在确定性顺序中产生输出的要求,并允许实现跳过在请求时数据元素未准备好的嵌套数据集。
用法示例:
# Preprocess 4 files concurrently.
filenames = tf.data.Dataset.list_files("/path/to/data/train*.tfrecords")
dataset = filenames.apply(
tf.contrib.data.parallel_interleave(
lambda filename: tf.data.TFRecordDataset(filename),
cycle_length=4))
警告:如果sloppy是True,则生成的元素的顺序不确定。参数:
map_func:一个函数,将嵌套结构的tensor映射到一个Dataset。
cycle_length:Dataset并行交错的输入的数量。
block_length:Dataset在前进到下一个输入之前从输入Dataset中拉出的连续元素的数量 。
sloppy:如果为false,则元素以确定的顺序生成。否则,为了方便起见,允许以非确定性顺序生成元素。
buffer_output_elements:应该缓冲的每个迭代器交错的元素数量(每个交叉迭代器的转换,类似于.prefetch())。
prefetch_input_elements:在需要交错之前,转换为迭代器的输入元素的数量。
返回:
一个Dataset转换函数,它可以传递给 tf.data.Dataset.apply。