【问题标题】:How to return back to cpu from gpu in pytorch?如何从pytorch中的gpu返回cpu?
【发布时间】:2019-06-26 16:06:38
【问题描述】:

我在 pytorch 中有一个文本分类器,我想使用 GPU 来提高运行速度。 我已经使用这部分代码来检查CUDA并使用它:

if torch.cuda.device_count() > 1:
    print("Let's use", torch.cuda.device_count(), "GPUs!")
    my_rnn_model = nn.DataParallel(my_rnn_model)
if torch.cuda.is_available():
    my_rnn_model.cuda()

现在我想返回使用 cpu(而不是 gpu)。所以我清除了这部分代码。但它不起作用,我收到此错误:

RuntimeError: cuda runtime error (8) : invalid device function at /opt/conda/conda-bld/pytorch_1503963423183/work/torch/lib/THC/THCTensorCopy.cu:204

请指导我如何返回到 cpu 运行状态?

【问题讨论】:

  • 看起来 PyTorch 的编译二进制文件有一些问题。您能告诉我们您使用的是什么 GPU 和 cuda 版本吗?
  • GPU0 GeForce GT 425M 和 CUDA 9.0.176。太旧了,我要买一个新的。
  • 我想我已经找到了这背后的原因。请检查我的答案

标签: python gpu cpu pytorch


【解决方案1】:

您可以设置要使用的 GPU 设备:

device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')

在您的情况下,您可以使用以下方法返回 CPU:

torch.device('cpu')

【讨论】:

  • 谢谢。我应该迁移到 Pytorch 0.4 以使用 torch.device。我去看看。
【解决方案2】:

有一个.cpu() 方法,相当于.cuda(),在早期版本中也有。

【讨论】:

    【解决方案3】:

    根据@soumith 在thread 中的说法,您的 GT 425M 似乎具有 2.1 的计算能力,不满足 PyTorch 所需的版本(至少 3.0)。

    所以,您无法访问某些与 GPU 相关的功能。

    您可以查看计算能力here

    更多信息here

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 2018-03-24
      • 2019-01-11
      • 2020-10-24
      • 2020-04-12
      • 2014-05-14
      • 2019-06-19
      • 2022-10-23
      • 2019-04-18
      相关资源
      最近更新 更多