Метод from_non_deterministic_state
Метод from_non_deterministic_state класса Generator создает
генератор случайных чисел, начальное состояние которого
формируется на основе недетерминированных источников, например
системного времени или аппаратных данных. Такой генератор
не воспроизводит одну и ту же последовательность чисел при
повторных запусках программы. Первым параметром метод принимает
строку с именем алгоритма генерации, по умолчанию используется
'philox'. Вторым параметром передается целое число,
задающее начальное зерно, если оно не указано, состояние
выбирается автоматически.
Синтаксис
tf.random.Generator.from_non_deterministic_state(algorithm='philox', seed=None)
Пример
Давайте создадим генератор с недетерминированным состоянием и сгенерируем из него тензор случайных чисел:
import tensorflow as tf
gen = tf.random.Generator.from_non_deterministic_state()
t = gen.normal([5])
print(t)
Результат выполнения кода:
tf.Tensor([-0.21780989 0.37437904 0.09910986 -0.82988495 1.2546595 ], shape=(5,), dtype=float32)
Пример
Давайте создадим генератор с указанием алгоритма 'philox'
и сгенерируем из него несколько тензоров:
import tensorflow as tf
gen = tf.random.Generator.from_non_deterministic_state(algorithm='philox')
t1 = gen.uniform([3])
t2 = gen.uniform([3])
print(t1)
print(t2)
Результат выполнения кода:
tf.Tensor([0.5162115 0.8722279 0.01494062], shape=(3,), dtype=float32)
tf.Tensor([0.6764078 0.6822662 0.8041564 ], shape=(3,), dtype=float32)
Пример
Давайте создадим генератор с указанием алгоритма 'threefry'
и явного зерна:
import tensorflow as tf
gen = tf.random.Generator.from_non_deterministic_state(algorithm='threefry', seed=42)
t = gen.normal([4])
print(t)
Результат выполнения кода:
tf.Tensor([ 0.27254492 0.88280165 -1.2591404 -0.40805978], shape=(4,), dtype=float32)