PyTorch - 尽管检测到 CUDA 支持,但张量不使用 GPU



正如问题的标题清楚地描述的那样,即使torch.cuda.is_available()返回True,张量也使用CPU而不是GPU。我已经将张量的device设置为在定义device后通过images.to(device)函数调用GPU。当我调试代码时,我能够看到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

附言PyTorch安装时带有Cuda 9.0 支持选项。

tensor.to()

不会就地修改张量。它返回存储的新张量 在指定的设备中。

请改用以下内容。

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

相关内容

最新更新