Атрибут is_cuda
Атрибут is_cuda класса Tensor возвращает булево значение, указывающее, размещён ли тензор на устройстве CUDA (GPU). Он доступен только для чтения и автоматически обновляется при перемещении тензора между устройствами.
Атрибут не принимает параметров и используется как свойство объекта тензора.
Синтаксис
t.is_cuda
Пример
Давайте создадим тензор на CPU и проверим значение атрибута is_cuda:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
print(t.is_cuda)
Результат выполнения кода:
False
Как видите, для тензора на CPU атрибут возвращает False.
Пример
Теперь создадим тензор на GPU (если доступен) и проверим is_cuda:
import torch
if torch.cuda.is_available():
t = torch.tensor([1, 2, 3, 4, 5]).cuda()
print(t.is_cuda)
else:
print("CUDA не доступна")
Результат выполнения кода при наличии GPU:
True
Атрибут возвращает True, поскольку тензор находится на GPU.
Пример
Значение is_cuda меняется при перемещении тензора между устройствами:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
print("На CPU:", t.is_cuda)
if torch.cuda.is_available():
t = t.cuda()
print("На GPU:", t.is_cuda)
t = t.cpu()
print("Снова на CPU:", t.is_cuda)
Результат выполнения кода при наличии GPU:
На CPU: False
На GPU: True
Снова на CPU: False
Атрибут автоматически обновляется при каждом перемещении тензора.
Пример
Используем is_cuda в условной логике для выполнения операций на нужном устройстве:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
if t.is_cuda:
print("Тензор на GPU, выполняем быстрые вычисления")
res = t * 2
else:
print("Тензор на CPU, используем обычный режим")
res = t * 2
print(res)
Результат выполнения кода:
Тензор на CPU, используем обычный режим
tensor([2, 4, 6, 8, 10])
Атрибут помогает писать код, который корректно работает на разных устройствах.