tf.data.experimental.sample_from_datasets

Samples elements at random from the datasets in datasets.

Creates a dataset by interleaving elements of datasets with the weight[i] probability of picking an element from dataset i. For example, suppose we have 2 datasets:

dataset1 = tf.data.Dataset.range(0, 3)
dataset2 = tf.data.Dataset.range(100, 103)

Suppose also that we sample from these 2 datasets with the following weights:

sample_dataset = tf.data.experimental.sample_from_datasets(
    [dataset1, dataset2], weights=[0.5, 0.5])

One possible outcome of elements in sample_dataset is:

print(list(sample_dataset.as_numpy_iterator()))
# [100, 0, 1, 101, 2, 102]

datasets A list of tf.data.Dataset objects with compatible structure.
weights (Optional.) A list of len(datasets) floating-point values where weights[i] represents the probability with which an element should be sampled from datasets[i], or a tf.data.Dataset object where each element is such a list. Defaults to a uniform distribution across datasets.
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.

A dataset that interleaves elements from datasets at random, according to weights if provided, otherwise with uniform probability.

TypeError If the datasets or weights arguments have the wrong type.
ValueError If the weights argument is specified and does not match the length of the datasets element.