Метод seed
Метод seed класса Generator устанавливает начальное зерно для генератора случайных чисел. В отличие от метода manual_seed, который принимает явное целочисленное значение, метод seed автоматически генерирует случайное зерно на основе системного времени или других источников энтропии. Это полезно для создания непредсказуемых последовательностей случайных чисел.
Метод не принимает параметров и возвращает целое число - установленное значение зерна.
Синтаксис
generator.seed()
Пример
Давайте создадим генератор и установим случайное зерно:
import torch
gen = torch.Generator()
seed_value = gen.seed()
print(f"Seed: {seed_value}")
Результат выполнения кода:
"Seed: 4325987654"
Пример
Создадим два генератора с случайными зернами и сгенерируем случайные числа:
import torch
gen1 = torch.Generator()
gen1.seed()
gen2 = torch.Generator()
gen2.seed()
t1 = torch.randn(3, generator=gen1)
t2 = torch.randn(3, generator=gen2)
print(f"Tensor from gen1: {t1}")
print(f"Tensor from gen2: {t2}")
Результат выполнения кода:
"Tensor from gen1: tensor([ 0.3245, -1.2345, 0.8765])"
"Tensor from gen2: tensor([-0.5678, 1.2345, -0.3456])"
Пример
Метод seed можно использовать для автоматической инициализации генератора без необходимости вручную указывать зерно:
import torch
gen = torch.Generator()
gen.seed()
t = torch.randint(0, 100, (5,), generator=gen)
print(t)
Результат выполнения кода:
tensor([45, 23, 78, 12, 56])
Смотрите также
-
метод
manual_seed,
который устанавливает явное значение зерна -
метод
initial_seed,
который возвращает текущее значение зерна -
метод
get_state,
который возвращает текущее состояние генератора -
метод
set_state,
который устанавливает состояние генератора