可以在这里找到pytorch的cifar 10教程: https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py
本教程介绍了如何使用pytorch为CIFAR 10数据集创建简单的卷积神经网络。在结尾处,它略微介绍了如何为GPU实现上述代码。
本质上的区别是,我们创建设备= torch.device('gpu')并将所有张量发送到gpu设备,然后再进行计算。因此,从本质上讲,我们希望在每次执行计算之前将净对象以及输入张量和标签张量发送到gpu设备。
所以我回去补充:
net.to(device)
在计算循环中:
with torch.no_grad():
for data in testloader:
images, labels = data
#I added this line of change:
inputs, labels = inputs.to(device), labels.to(device)
outputs = net(images)
_, predicted = torch.max(outputs, 1)
c = (predicted == labels).squeeze()
for i in range(4):
label = labels[i]
class_correct[label] += c[i].item()
class_total[label] += 1
但是,这导致了错误:OSError: [Errno 12] Cannot allocate memory
我误会什么?我是否需要进行其他任何更改,以便整个教程可以在GPU上运行?
答案 0 :(得分:0)
当交换空间不足时可能会发生这种情况。尝试使用少量num_workers
。
希望这会有所帮助!