pytorch 的 cifar 10 教程可以在这里找到: https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py
本教程介绍了如何使用 pytorch 为 CIFAR 10 数据集创建一个简单的卷积神经网络。临近结束时,稍微介绍一下如何在 GPU 上实现上述代码。
本质上的区别在于,我们创 build 备 =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] 无法分配内存
我误解了什么?我是否需要进行任何其他更改才能使整个教程适用于 GPU?
最佳答案
当交换空间不足时,可能会发生这种情况。尝试使用少量的 num_workers
。
希望这有帮助!
关于python-3.x - 如何为 CIFAR 10 pytorch 教程添加 GPU 计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53716432/