tf.data.experimental.shuffle_and_repeat
Stay organized with collections
Save and categorize content based on your preferences.
Shuffles and repeats a Dataset, reshuffling with each repetition. (deprecated)
tf.data.experimental.shuffle_and_repeat(
buffer_size, count=None, seed=None
)
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 |
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.random.set_seed for behavior.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.
[null,null,["Last updated 2024-04-26 UTC."],[],[],null,["# tf.data.experimental.shuffle_and_repeat\n\n\u003cbr /\u003e\n\n|------------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/data/experimental/ops/shuffle_ops.py#L58-L112) |\n\nShuffles and repeats a Dataset, reshuffling with each repetition. (deprecated)\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.data.experimental.shuffle_and_repeat`](https://www.tensorflow.org/api_docs/python/tf/data/experimental/shuffle_and_repeat)\n\n\u003cbr /\u003e\n\n tf.data.experimental.shuffle_and_repeat(\n buffer_size, count=None, seed=None\n )\n\n**Deprecated:** THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Use [`tf.data.Dataset.shuffle(buffer_size, seed)`](../../../tf/data/Dataset#shuffle) followed by [`tf.data.Dataset.repeat(count)`](../../../tf/data/Dataset#repeat). Static tf.data optimizations will take care of using the fused implementation. \n\n d = tf.data.Dataset.from_tensor_slices([1, 2, 3])\n d = d.apply(tf.data.experimental.shuffle_and_repeat(2, count=2))\n [elem.numpy() for elem in d] # doctest: +SKIP\n [2, 3, 1, 1, 3, 2]\n\n dataset.apply(\n tf.data.experimental.shuffle_and_repeat(buffer_size, count, seed))\n\nproduces the same output as \n\n dataset.shuffle(\n buffer_size, seed=seed, reshuffle_each_iteration=True).repeat(count)\n\nIn each repetition, this dataset fills a buffer with `buffer_size` elements,\nthen randomly samples elements from this buffer, replacing the selected\nelements with new elements. For perfect shuffling, set the buffer size equal\nto the full size of the dataset.\n\nFor instance, if your dataset contains 10,000 elements but `buffer_size` is\nset to 1,000, then `shuffle` will initially select a random element from\nonly the first 1,000 elements in the buffer. Once an element is selected,\nits space in the buffer is replaced by the next (i.e. 1,001-st) element,\nmaintaining the 1,000 element buffer.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `buffer_size` | A [`tf.int64`](../../../tf#int64) scalar [`tf.Tensor`](../../../tf/Tensor), representing the maximum number elements that will be buffered when prefetching. |\n| `count` | (Optional.) A [`tf.int64`](../../../tf#int64) scalar [`tf.Tensor`](../../../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. |\n| `seed` | (Optional.) A [`tf.int64`](../../../tf#int64) scalar [`tf.Tensor`](../../../tf/Tensor), representing the random seed that will be used to create the distribution. See [`tf.random.set_seed`](../../../tf/random/set_seed) for behavior. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Dataset` transformation function, which can be passed to [`tf.data.Dataset.apply`](../../../tf/data/Dataset#apply). ||\n\n\u003cbr /\u003e"]]