Функция random.split
Функция random.split применяется для разделения
состояния генератора случайных чисел на несколько
независимых состояний. Первым параметром функция
принимает состояние генератора seed, которое
можно создать с помощью create_rng_state или
set_seed. Вторым параметром передается
количество новых состояний num. В результате
возвращается тензор с новыми состояниями генератора.
Синтаксис
tf.random.split(seed, num)
Пример
Давайте создадим состояние генератора и разделим его на два независимых состояния:
import tensorflow as tf
seed = tf.random.set_seed(0)
seeds = tf.random.split(seed, 2)
print(seeds)
Результат выполнения кода:
tf.Tensor(
[[0 0]
[0 1]], shape=(2, 2), dtype=int32)
Пример
Давайте используем разделенные состояния для генерации двух разных последовательностей случайных чисел:
import tensorflow as tf
seed = tf.random.set_seed(0)
seeds = tf.random.split(seed, 2)
res1 = tf.random.uniform([3], seed=seeds[0])
res2 = tf.random.uniform([3], seed=seeds[1])
print(res1)
print(res2)
Результат выполнения кода:
tf.Tensor([0.29197526 0.51007926 0.25992274], shape=(3,), dtype=float32)
tf.Tensor([0.44660342 0.8403026 0.39462793], shape=(3,), dtype=float32)
Пример
Давайте разделим состояние генератора на четыре части и проверим их форму:
<+python+>
import tensorflow as tf
seed = tf.random.set_seed(0)
seeds = tf.random.split(seed, 4)
print(seeds)
print(seeds.shape)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[0 0]
[0 1]
[0 2]
[0 3]], shape=(4, 2), dtype=int32)
(4, 2)
Смотрите также
-
функцию
set_seed,
которая устанавливает глобальное зерно генератора -
функцию
create_rng_state,
которая создает состояние генератора случайных чисел -
функцию
uniform,
которая генерирует случайные значения из равномерного распределения -
функцию
normal,
которая генерирует случайные значения из нормального распределения