tf.data.experimental.shuffle_and_repeat

TensorFlow 2 version View source on GitHub

Shuffles and repeats a Dataset returning a new permutation for each epoch. (deprecated)

dataset.apply(tf.data.experimental.shuffle_and_repeat(buffer_size, count))

is equivalent to

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

The difference is that the latter dataset is not serializable. So, if you need to checkpoint an input pipeline with reshuffling you must use this implementation.

buffer_size A tf.int64 scalar tf.Tensor, representing the maximum number elements that will be buffered when prefetching.
count (Optional.) A tf.int64 scalar tf.Tensor, representing the number of times the dataset should be repeated. The default behavior (if count is None or -1) is for the dataset be repeated indefinitely.
seed (Optional.) A tf.int64 scalar tf.Tensor, representing the random seed that will be used to create the distribution. See tf.compat.v1.set_random_seed for behavior.

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