Как ясно описывает заголовок вопроса, даже если 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 .