當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。