Функция config.enable_op_determinism
Функция config.enable_op_determinism включает режим
детерминированного выполнения операций. Когда этот режим
активирован, TensorFlow выбирает детерминированные реализации
для операций, которые обычно могут выполняться
недетерминированно на GPU (например, tf.math.reduce_sum
или свертки). Это гарантирует, что при одинаковых входных
данных и одинаковом зерне генератора случайных чисел
результаты вычислений будут полностью совпадать
при повторных запусках.
Функция не принимает параметров. Она применяется глобально ко всему процессу TensorFlow. После включения детерминизма его нельзя отключить в текущем процессе без перезапуска. Следует учитывать, что детерминированные операции могут работать медленнее недетерминированных аналогов.
Синтаксис
tf.config.enable_op_determinism()
Пример
Давайте включим детерминизм и выполним операцию суммирования:
import tensorflow as tf
tf.config.enable_op_determinism()
t = tf.constant([1, 2, 3, 4, 5])
res = tf.math.reduce_sum(t)
print(res)
Результат выполнения кода:
tf.Tensor(15, shape=(), dtype=int32)
Пример
Давайте проверим воспроизводимость результатов при включенном детерминизме:
import tensorflow as tf
tf.config.enable_op_determinism()
tf.random.set_seed(0)
t = tf.constant([[1, 2, 3], [4, 5, 6]])
res1 = tf.random.shuffle(t)
print(res1)
tf.random.set_seed(0)
res2 = tf.random.shuffle(t)
print(res2)
print(tf.reduce_all(tf.equal(res1, res2)))
Результат выполнения кода:
tf.Tensor(
[[4 5 6]
[1 2 3]], shape=(2, 3), dtype=int32)
tf.Tensor(
[[4 5 6]
[1 2 3]], shape=(2, 3), dtype=int32)
tf.Tensor(True, shape=(), dtype=bool)
Смотрите также
-
функцию
config.disable_op_determinism,
которая отключает детерминизм операций -
функцию
experimental.enable_op_determinism,
которая включает детерминизм на уровне экспериментального API -
функцию
tf_function,
которая компилирует функцию в граф TensorFlow -
функцию
debugging.assert_near,
которая проверяет близость значений с заданной точностью