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


Python tf.data.experimental.shuffle_and_repeat用法及代碼示例


洗牌和重複數據集,每次重複都重新洗牌。 (已棄用)

用法

tf.data.experimental.shuffle_and_repeat(
    buffer_size, count=None, seed=None
)

參數

  • buffer_size tf.int64 標量 tf.Tensor ,表示預取時將緩衝的最大元素數。
  • count (可選。)tf.int64 標量 tf.Tensor ,表示數據集應重複的次數。默認行為(如果 countNone-1 )是無限期重複數據集。
  • seed (可選。)tf.int64 標量 tf.Tensor ,表示將用於創建分布的隨機種子。有關行為,請參閱tf.random.set_seed

返回

警告:此函數已棄用。它將在未來的版本中刪除。更新說明:使用 tf.data.Dataset.shuffle(buffer_size, seed) 後跟 tf.data.Dataset.repeat(count) 。靜態 tf.data 優化將負責使用融合實現。

d = tf.data.Dataset.from_tensor_slices([1, 2, 3])
d = d.apply(tf.data.experimental.shuffle_and_repeat(2, count=2))
[elem.numpy() for elem in d] # doctest:+SKIP
[2, 3, 1, 1, 3, 2]
dataset.apply(
  tf.data.experimental.shuffle_and_repeat(buffer_size, count, seed))

產生與

dataset.shuffle(
  buffer_size, seed=seed, reshuffle_each_iteration=True).repeat(count)

在每次重複中,此數據集用buffer_size 元素填充緩衝區,然後從該緩衝區中隨機采樣元素,用新元素替換所選元素。對於完美的混洗,將緩衝區大小設置為等於數據集的完整大小。

例如,如果您的數據集包含 10,000 個元素,但 buffer_size 設置為 1,000,則 shuffle 最初將僅從緩衝區中的前 1,000 個元素中選擇一個隨機元素。一旦選擇了一個元素,它在緩衝區中的空間就會被下一個(即第 1,001 個)元素替換,從而保持 1,000 個元素的緩衝區。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.data.experimental.shuffle_and_repeat。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。