Метод with_options класса Dataset
Метод with_options класса Dataset применяется к датасету
и возвращает его копию с заданными опциями.
Первым параметром метод принимает объект tf.data.Options,
содержащий настройки производительности, распределения и порядка обработки данных.
Исходный датасет при этом не изменяется - возвращается новый объект.
Метод удобен, когда нужно задать параметры детерминированности,
включить параллелизм или настроить распределенную обработку.
Синтаксис
Dataset.with_options(options)
Пример
Давайте создадим датасет и применим к нему опцию включения детерминированности:
import tensorflow as tf
ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
options = tf.data.Options()
options.deterministic = True
ds = ds.with_options(options)
res = ds.options().deterministic
print(res)
Результат выполнения кода:
True
Пример
Давайте создадим датасет и настроим автоматическое распараллеливание операций через опции:
import tensorflow as tf
ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
options = tf.data.Options()
options.autotune.enabled = True
options.threading.private_threadpool_size = 4
ds = ds.with_options(options)
res = ds.options().threading.private_threadpool_size
print(res)
Результат выполнения кода:
4
Пример
Давайте применим опции к датасету батчей
и проверим работу вместе с методом batch:
import tensorflow as tf
ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
options = tf.data.Options()
options.deterministic = True
ds = ds.with_options(options).batch(2)
res = list(ds.as_numpy_iterator())
print(res)
Результат выполнения кода:
[array([1, 2]), array([3, 4]), array([5])]