Функция random.create_rng_state
Функция random.create_rng_state создает тензор состояния
генератора случайных чисел (RNG state). Первым параметром
функция принимает целочисленное зерно (seed), которое
определяет начальное состояние генератора. Вторым параметром
передается алгоритм генерации. Полученное состояние можно
использовать в операциях со случайными числами для
воспроизводимости результатов.
Синтаксис
tf.random.create_rng_state(seed, alg)
Пример
Давайте создадим состояние генератора случайных чисел
с зерном 42 и алгоритмом philox:
import tensorflow as tf
state = tf.random.create_rng_state(42, "philox")
print(state)
Результат выполнения кода:
tf.Tensor([42 0 0], shape=(3,), dtype=int64)
Пример
Давайте создадим состояние с алгоритмом threefry
и выведем его форму и тип данных:
import tensorflow as tf
state = tf.random.create_rng_state(123, "threefry")
print(state)
print(state.shape)
print(state.dtype)
Результат выполнения кода:
tf.Tensor([123 0], shape=(2,), dtype=int64)
(2,)
<dtype: 'int64'>
Пример
Давайте используем созданное состояние для генерации случайных чисел и убедимся в воспроизводимости:
import tensorflow as tf
state = tf.random.create_rng_state(42, "philox")
t1 = tf.random.stateless_normal([3], seed=state)
t2 = tf.random.stateless_normal([3], seed=state)
print(t1)
print(t2)
print(tf.reduce_all(tf.equal(t1, t2)))
Результат выполнения кода:
tf.Tensor([-0.5060676 0.75360477 0.39380622], shape=(3,), dtype=float32)
tf.Tensor([-0.5060676 0.75360477 0.39380622], shape=(3,), dtype=float32)
tf.Tensor(True, shape=(), dtype=bool)
Смотрите также
-
функцию
stateless_normal,
которая генерирует случайные числа из нормального распределения -
функцию
stateless_uniform,
которая генерирует случайные числа из равномерного распределения -
функцию
set_seed,
которая устанавливает глобальное зерно генератора -
функцию
split,
которая разделяет состояние генератора на несколько частей