如何在PyTorch中从GPU返回到CPU?

4

我在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版本吗? - Rex Low
GPU0 GeForce GT 425M 和 CUDA 9.0.176。它太老了,我打算买一个新的。 - Mahsa
我认为我已经找到了这个问题的原因。请检查我的答案。 - Rex Low
3个回答

3
您可以使用以下命令设置要使用的GPU设备:
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')

在你的情况下,你只需要使用以下代码返回到CPU:

torch.device('cpu')

1
谢谢。我应该迁移到Pytorch 0.4以使用torch.device。我会去检查它。 - Mahsa

2

有一个名为.cpu()的方法,相当于.cuda(),即使在早期版本中也可以使用。

最初的回答:有一个叫做.cpu()的方法,和.cuda()相同,在更早的版本中也可以使用。

1

看起来你的GT 425M的计算能力为2.1,这不符合PyTorch所需的版本要求(至少3.0),根据@soumith在这个thread中的说法。

因此,你无法访问一些与GPU相关的功能。

你可以在这里检查计算能力

更多信息在这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接