PyTorch - GPU не используется тензорами, несмотря на обнаружение поддержки CUDA - PullRequest
1 голос
/ 21 марта 2019

Как ясно описывает заголовок вопроса, даже если t orch.cuda.is_available() возвращает True, CPU используется вместо GPU тензорами. Я установил device тензора на GPU через вызов функции images.to(device) после определения device. Когда я отлаживаю свой код, я вижу, что device имеет значение cuda:0; но тензорный device все еще установлен на cpu.

Определение устройства:

use_cuda = torch.cuda.is_available()  # returns True
device = torch.device('cuda:0' if use_cuda else 'cpu')

Определение устройства тензоров:

for epoch in range(num_epochs):
    for i, (images, labels) in enumerate(train_loader):
        images.to(device)
        labels.to(device)
        # both of images and labels' devices are set to cpu

Программный стек:

Python 3.7.1
torch 1.0.1
Windows 10 64-bit

p.s. PyTorch устанавливается с опцией Поддержка Cuda 9.0 .

1 Ответ

3 голосов
/ 21 марта 2019

tensor.to() не изменяет тензор на месте. Возвращает новый тензор, который хранится в указанном устройстве.

Используйте вместо этого следующее.

 images = images.to(device)
 labels = labels.to(device)
...