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

Атрибут device

Атрибут device класса torch.Generator возвращает устройство, на котором в данный момент работает генератор случайных чисел. Этот атрибут доступен только для чтения и позволяет определить, используется ли генератор на центральном процессоре (CPU) или на графическом процессоре (GPU/CUDA). При создании генератора через torch.Generator без параметров, он по умолчанию создается на устройстве CPU.

Синтаксис

generator.device

Пример

Давайте создадим генератор на CPU и выведем его устройство:

import torch gen = torch.Generator() print(gen.device)

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

device(type='cpu')

Пример

Создадим генератор на устройстве CUDA, если оно доступно, и проверим его устройство:

import torch if torch.cuda.is_available(): gen = torch.Generator(device='cuda') print(gen.device) else: print("CUDA не доступна")

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

device(type='cuda', index=0)

Пример

Атрибут device позволяет определить, на каком устройстве будут генерироваться случайные числа. Это особенно полезно при работе с тензорами на разных устройствах:

import torch torch.manual_seed(0) cpu_gen = torch.Generator() cpu_gen.manual_seed(42) t_cpu = torch.randn(3, device='cpu', generator=cpu_gen) if torch.cuda.is_available(): cuda_gen = torch.Generator(device='cuda') cuda_gen.manual_seed(42) t_cuda = torch.randn(3, device='cuda', generator=cuda_gen) print("CPU генератор:", cpu_gen.device) print("CUDA генератор:", cuda_gen.device) print("Тензор на CPU:", t_cpu) print("Тензор на CUDA:", t_cuda) else: print("CUDA не доступна") print("CPU генератор:", cpu_gen.device) print("Тензор на CPU:", t_cpu)

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

CPU генератор: device(type='cpu') CUDA генератор: device(type='cuda', index=0) Тензор на CPU: tensor([ 0.3367, 0.1288, -0.2346]) Тензор на CUDA: tensor([ 0.3367, 0.1288, -0.2346], device='cuda:0')

Пример

Попытка использовать генератор на одном устройстве для создания тензора на другом устройстве приведёт к ошибке. Атрибут device помогает избежать таких ситуаций:

import torch cpu_gen = torch.Generator() if torch.cuda.is_available(): try: t = torch.randn(3, device='cuda', generator=cpu_gen) except RuntimeError as e: print("Ошибка:", e) else: print("CUDA не доступна")

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

"Ошибка: Generator device must be cuda when using a cuda device tensor"

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

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