РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
708 of 824 menu

Метод split класса Generator

Метод split класса Generator позволяет разделить текущее состояние генератора случайных чисел на заданное количество независимых потоков. Метод принимает один обязательный параметр - количество частей, на которое нужно разбить генератор. Возвращается список объектов Generator, каждый из которых имеет собственное независимое состояние.

Такой подход полезен, когда нужно получить несколько независимых источников случайности, например, для разных слоев нейронной сети или для параллельных вычислений. Важно, что после вызова метода исходный генератор продолжает существовать, а возвращенные генераторы не зависят друг от друга.

Синтаксис

Generator.split(count)

Пример

Давайте создадим генератор с фиксированным зерном и разобьем его на три независимые части:

import tensorflow as tf tf.random.set_seed(0) gen = tf.random.Generator.from_seed(0) gens = gen.split(3) print(len(gens)) print(type(gens[0]))

Результат выполнения кода:

3 <class 'tensorflow.python.ops.stateful_random_ops.Generator'>

Пример

Давайте убедимся, что разбитые генераторы выдают разные последовательности случайных чисел:

import tensorflow as tf tf.random.set_seed(0) gen = tf.random.Generator.from_seed(0) gens = gen.split(3) for g in gens: print(g.normal([]).numpy())

Результат выполнения кода:

1.5110626 -0.4246769 0.22244024

Пример

Давайте используем разбитые генераторы для создания тензоров с разными значениями:

import tensorflow as tf tf.random.set_seed(0) gen = tf.random.Generator.from_seed(0) gens = gen.split(2) t1 = gens[0].uniform([5]) t2 = gens[1].uniform([5]) print(t1) print(t2)

Результат выполнения кода:

tf.Tensor([0.13634598 0.41921532 0.7382531 0.7538868 0.55122733], shape=(5,), dtype=float32) tf.Tensor([0.6159056 0.20636415 0.85950077 0.17762434 0.12440491], shape=(5,), dtype=float32)

Смотрите также

  • класс Generator,
    который представляет генератор случайных чисел
  • метод normal,
    который генерирует значения из нормального распределения
  • метод uniform,
    который генерирует значения из равномерного распределения
  • метод from_seed,
    который создает генератор с заданным зерном
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить