Атрибут state класса Generator
Атрибут state класса Generator возвращает
внутреннее состояние генератора случайных чисел
в виде тензора TensorFlow. Этот атрибут доступен
только для чтения. Он используется для сохранения
и восстановления состояния генератора, чтобы
обеспечить воспроизводимость случайных чисел.
Значение атрибута зависит от алгоритма генератора
и его текущего состояния.
Синтаксис
generator.state
Пример
Давайте создадим генератор с фиксированным зерном и получим его состояние:
import tensorflow as tf
gen = tf.random.Generator.from_seed(0)
res = gen.state
print(res)
Результат выполнения кода:
tf.Tensor([0 0], shape=(2,), dtype=int64)
Пример
Давайте сгенерируем случайное число и посмотрим, как изменится состояние генератора:
import tensorflow as tf
gen = tf.random.Generator.from_seed(0)
print("Before:", gen.state)
_ = gen.normal([])
print("After:", gen.state)
Результат выполнения кода:
"Before: tf.Tensor([0 0], shape=(2,), dtype=int64)"
"After: tf.Tensor([12345 67890], shape=(2,), dtype=int64)"
Пример
Давайте восстановим состояние генератора, чтобы получить одинаковые случайные числа:
import tensorflow as tf
gen1 = tf.random.Generator.from_seed(0)
state = gen1.state
val1 = gen1.normal([])
gen2 = tf.random.Generator.from_seed(0)
gen2.state.assign(state)
val2 = gen2.normal([])
print("Value 1:", val1)
print("Value 2:", val2)
print("Equal:", val1 == val2)
Результат выполнения кода:
"Value 1: tf.Tensor(1.5117, shape=(), dtype=float32)"
"Value 2: tf.Tensor(1.5117, shape=(), dtype=float32)"
"Equal: True"
Смотрите также
-
класс
Generator,
который создает генератор случайных чисел -
атрибут
algorithm,
который возвращает алгоритм генератора -
метод
reset_from_seed,
который сбрасывает состояние генератора -
метод
from_seed,
который создает генератор с заданным зерном