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

Функция manual_seed

Функция manual_seed устанавливает начальное значение (зерно) для генератора псевдослучайных чисел на центральном процессоре (CPU) в PyTorch. Она принимает одно значение - целое число, которое инициализирует генератор. Это позволяет получать одни и те же случайные числа при каждом запуске программы, что критически важно для воспроизводимости результатов экспериментов.

Синтаксис

torch.manual_seed(seed)

Параметр:

  • seed - целое число (int), задающее начальное состояние генератора случайных чисел.

Пример

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

import torch torch.manual_seed(42) t = torch.rand(3) print(t)

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

tensor([0.8823, 0.9150, 0.3829])

Если мы снова запустим этот код с тем же зерном, то получим точно такой же тензор.

Пример

Функция также влияет на генератор случайных чисел, используемый для перемешивания данных и в других модулях, например, в randn:

import torch torch.manual_seed(0) t1 = torch.randn(2, 3) print(t1) torch.manual_seed(0) t2 = torch.randn(2, 3) print(t2)

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

tensor([ [ 1.5410, -0.2934, -2.1788], [ 0.5684, -1.0845, -1.3986], ]) tensor([ [ 1.5410, -0.2934, -2.1788], [ 0.5684, -1.0845, -1.3986], ])

Как видно, при одинаковом зерне генерируются одинаковые тензоры.

Пример

Если необходимо также зафиксировать случайность на графическом процессоре (GPU), то следует использовать дополнительно функции для CUDA:

import torch torch.manual_seed(123) if torch.cuda.is_available(): torch.cuda.manual_seed_all(123) t = torch.rand(5) print(t)

Результат выполнения кода (пример для CPU):

tensor([0.2961, 0.5166, 0.2517, 0.6886, 0.0740])

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

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

  • функцию rand,
    которая генерирует тензор со случайными числами из равномерного распределения
  • функцию seed,
    которая автоматически устанавливает случайное начальное зерно
  • функцию initial_seed,
    которая возвращает текущее значение зерна
  • функцию cuda.manual_seed_all,
    которая устанавливает зерно для всех графических процессоров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить