【问题标题】:How to add GPU computation for the CIFAR 10 pytorch Tutorial?如何为 CIFAR 10 pytorch 教程添加 GPU 计算?
【发布时间】:2019-05-11 23:43:31
【问题描述】:

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?

【问题讨论】:

  • 你的gpu有足够的内存吗?
  • 哦,是这个问题吗?将张量发送到 GPU 后是否需要移除张量以节省空间?我该怎么做?
  • 我不认为是 GPU 内存导致了这里的问题,python 进程无法分配 RAM 内存。如果他的 GPU 内存用完了,那将是一个 RuntimeError。
  • @wawawewa 您可以使用htop 程序检查 RAM 的数量是如何变化的吗?您还可以添加多少 RAM 吗?我在 8 GB 的机器上运行了本教程,没有任何问题。
  • 在运行脚本之前运行 Htop,左上角显示 4.20/7.01 GB 内存。但是GPU上不应该有单独的几GB RAM吗?顺便说一句,我的 GPU 是带有 CUDA 10 工具包的 Nvidia GP107 [GeForce GTX 1050 Ti]

标签: python-3.x machine-learning computer-vision gpu pytorch


【解决方案1】:

当没有足够的交换空间时,可能会发生这种情况。尝试使用少量num_workers

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2017-12-04
    • 2020-10-14
    相关资源
    最近更新 更多