tf.data.experimental.shuffle_and_repeat

View source on GitHub

Shuffles and repeats a Dataset, reshuffling with each repetition. (deprecated)

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

Warning: THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Use tf.data.Dataset.shuffle(buffer_size, seed) followed by tf.data.Dataset.repeat(count). Static tf.data optimizations will take care of using the fused implementation.

>>> 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))

produces the same output as

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

In each repetition, this dataset fills a buffer with buffer_size elements, then randomly samples elements from this buffer, replacing the selected elements with new elements. For perfect shuffling, set the buffer size equal to the full size of the dataset.

For instance, if your dataset contains 10,000 elements but buffer_size is set to 1,000, then shuffle will initially select a random element from only the first 1,000 elements in the buffer. Once an element is selected, its space in the buffer is replaced by the next (i.e. 1,001-st) element, maintaining the 1,000 element buffer.

Args:

Returns:

A Dataset transformation function, which can be passed to tf.data.Dataset.apply.