Функция experimental.enable_op_determinism
Функция tf.config.experimental.enable_op_determinism включает режим
детерминированного выполнения операций. При вызове этой функции
TensorFlow старается использовать только такие реализации операций,
которые дают одинаковый результат при одинаковых входных данных.
Функция не принимает параметров и не возвращает значений.
После включения детерминизма его нельзя отключить в рамках текущего
процесса. Включение может замедлить выполнение и повысить потребление
памяти, так как не все операции имеют детерминированные реализации.
Синтаксис
tf.config.experimental.enable_op_determinism()
Пример
Давайте включим детерминизм и выполним простое сложение тензоров:
import tensorflow as tf
tf.config.experimental.enable_op_determinism()
t1 = tf.constant([1, 2, 3, 4, 5])
t2 = tf.constant([1, 2, 3, 4, 5])
t = tf.add(t1, t2)
print(t)
Результат выполнения кода:
tf.Tensor([ 2 4 6 8 10], shape=(5,), dtype=int32)
Пример
Давайте проверим, что при включённом детерминизме результаты матричного умножения совпадают при повторных запусках:
import tensorflow as tf
tf.config.experimental.enable_op_determinism()
tf.random.set_seed(0)
t1 = tf.constant([[1, 2, 3], [4, 5, 6]])
t2 = tf.constant([[1, 2], [3, 4], [5, 6]])
res = tf.matmul(t1, t2)
print(res)
Результат выполнения кода:
tf.Tensor(
[[22 28]
[49 64]], shape=(2, 2), dtype=int32)
Пример
Давайте включим детерминизм и выполним операцию над тензором с плавающей точкой:
import tensorflow as tf
tf.config.experimental.enable_op_determinism()
t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0])
res = tf.reduce_sum(t)
print(res)
Результат выполнения кода:
tf.Tensor(15.0, shape=(), dtype=float32)
Смотрите также
-
функцию
disable_op_determinism,
которая отключает детерминированное выполнение операций -
функцию
set_soft_device_placement,
которая управляет автоматическим размещением операций -
функцию
tf_function,
которая компилирует функции в графы TensorFlow -
функцию
device,
которая задаёт устройство для выполнения операций