当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.data.experimental.parallel_interleave用法及代码示例


Dataset.interleave() 转换的并行版本。 (已弃用)

用法

tf.data.experimental.parallel_interleave(
    map_func, cycle_length, block_length=1, sloppy=False,
    buffer_output_elements=None, prefetch_input_elements=None
)

参数

  • map_func 将张量的嵌套结构映射到 Dataset 的函数。
  • cycle_length 要并行交错的输入 Dataset 的数量。
  • block_length 在前进到下一个输入 Dataset 之前从输入 Dataset 中提取的连续元素的数量。
  • sloppy 一个布尔值,通过允许无序生成元素来控制是否应该用确定性来换取性能。如果 sloppyNone ,则使用 tf.data.Options.deterministic 数据集选项(默认为 True)来决定是否强制执行确定性顺序。
  • buffer_output_elements 每个被交错的迭代器应缓冲的元素数量(类似于每个交错迭代器的.prefetch() 转换)。
  • prefetch_input_elements 在需要交错之前要转换为迭代器的输入元素的数量。

返回

警告:此函数已弃用。它将在未来的版本中删除。更新说明:使用tf.data.Dataset.interleave反而。如果需要草率执行,请使用tf.data.Options.deterministic.

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.data.experimental.parallel_interleave(
        lambda filename:tf.data.TFRecordDataset(filename),
        cycle_length=4))

警告:如果 sloppyTrue ,则生成元素的顺序是不确定的。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.parallel_interleave。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。