此页面由 Cloud Translation API 翻译。
Switch to English

tf.data.experimental.shuffle_and_repeat

TensorFlow 1版 GitHub上查看源代码

洗牌和重复数据集,其中每个重复的洗牌。 (废弃)

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设置为1000,然后shuffle最初将仅在缓冲区中的第1,000个元素选择一个随机元素。一旦元件被选定时,其在缓冲空间由下一个(即1001-ST)元件替换,以保持1000元件缓冲器。

buffer_size tf.int64标量tf.Tensor ,表示预取时将被缓冲的最大数量的元素。
count (可选)。A tf.int64标量tf.Tensor ,代表的次数据集应重复的数目。默认行为(如果countNone-1 )是集无限重复。
seed (可选)。A tf.int64标量tf.Tensor ,表示将被用来创建分发的随机种子。见tf.random.set_seed的行为。

一个Dataset转换功能,它可以传递给tf.data.Dataset.apply