# at beginning of the script
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
...
# then whenever you get a new Tensor or Module
# this won't copy if they are already on the desired device
input = data.to(device)
model = MyModule(...).to(device)
6条答案
按热度按时间bvhaajcl1#
在运行代码之前,运行以下shell命令以告知torch没有GPU:
这将告诉它只使用一个GPU(id为0的GPU),依此类推:
hmtdttj42#
我只想补充一点,在PyTorch代码中也可以这样做:
下面是一个取自PyTorch 0.4.0迁移指南的小示例:
一个很大的优势是,当使用这种语法时,如上面的示例,您可以创建在CPU上运行的代码,如果没有GPU可用,也可以在GPU上运行,而无需更改任何行。*
除了使用
torch.cuda.is_available()
的 if-statement,您还可以将设备设置为 CPU,如下所示:此外,您可以使用
device
标志在所需的 * 设备 * 上创建Tensor:这将直接在之前指定的
device
上创建Tensor。我想指出的是,您可以使用此语法在 CPU 和 GPU 之间切换,也可以在不同的 * GPU * 之间切换。
我希望这是有帮助的!
w80xi6nr3#
使用Python最简单的方法是:
snvhrwxg4#
强制使用CPU的方法有多种:
1.设置默认Tensor类型:
1.在创建Tensor时设置设备和一致的参考:
(with您可以轻松地在GPU和CPU之间切换)
1.从视图中隐藏GPU:
cfh9epnr5#
常规
正如前面的答案所示,您可以使用以下方法使pytorch在CPU上运行:
比较训练模型
我想补充一下如何在cpu上加载一个之前训练过的模型(例子取自pytorch文档)。
建议装载
加载整个模型
wkyowqbh6#
这是一个真实的的示例:使用GPU的原始功能与使用CPU的新功能。
来源:https://github.com/zllrunning/face-parsing.PyTorch/blob/master/test.py
在我的例子中,我编辑了以下4行代码:
第一个