Константа AUTOTUNE
Константа AUTOTUNE используется в TensorFlow
для автоматического подбора оптимального значения
параметра во время выполнения. Чаще всего она
применяется в пайплайнах входных данных, например
в методах prefetch, interleave
и map объекта tf.data.Dataset.
Вместо числового значения буфера можно передать
tf.data.AUTOTUNE, и TensorFlow сам определит
подходящий размер на основе доступных ресурсов.
Синтаксис
tf.data.AUTOTUNE
Пример
Давайте создадим простой датасет и применим
к нему prefetch с константой AUTOTUNE:
import tensorflow as tf
ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
ds = ds.map(lambda x: x * 2)
ds = ds.prefetch(tf.data.AUTOTUNE)
for item in ds:
print(item.numpy())
Результат выполнения кода:
2
4
6
8
10
Пример
Давайте применим AUTOTUNE в методе
interleave для параллельной обработки
нескольких датасетов:
import tensorflow as tf
ds1 = tf.data.Dataset.from_tensor_slices([1, 2, 3])
ds2 = tf.data.Dataset.from_tensor_slices([4, 5, 6])
ds = tf.data.Dataset.from_tensor_slices([ds1, ds2])
ds = ds.interleave(
lambda x: x,
cycle_length=2,
num_parallel_calls=tf.data.AUTOTUNE
)
res = list(ds.as_numpy_iterator())
print(res)
Результат выполнения кода:
[1, 4, 2, 5, 3, 6]
Пример
Давайте используем AUTOTUNE в методе
map для параллельного применения функции
к элементам датасета:
import tensorflow as tf
ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
ds = ds.map(
lambda x: x + 10,
num_parallel_calls=tf.data.AUTOTUNE
)
res = list(ds.as_numpy_iterator())
print(res)
Результат выполнения кода:
[11, 12, 13, 14, 15]
Смотрите также
-
константу
AUTOTUNE,
которая автоматически подбирает оптимальные параметры -
функцию
tf_function,
которая компилирует Python-код в граф TensorFlow -
функцию
device,
которая задает устройство для выполнения операций -
функцию
get_strategy,
которая возвращает текущую стратегию распределения