如何默认在 GPU 上 运行 PyTorch?

How to run PyTorch on GPU by default?

我想 运行 使用 cuda 的 PyTorch。我为所有张量设置 model.cuda()torch.cuda.LongTensor()

如果我使用了 model.cuda(),是否必须明确地使用 .cuda 创建张量?

有没有办法默认在 GPU 上进行所有计算 运行?

我认为您不能指定默认使用 cuda 张量。 但是,您应该查看 pytorch 官方示例。

在 imagenet training/testing 脚本中,他们在名为 DataParallel 的模型上使用了一个包装器。 这个包装器有两个优点:

  • 它处理多个 GPU 上的数据并行
  • 它处理 cpu 张量到 cuda 张量的转换

如您在 L164 中所见,您不必手动将 inputs/targets 转换为 cuda。

请注意,如果您有多个 GPU 并且想要使用一个,请启动任何带有 CUDA_VISIBLE_DEVICES 前缀的 python/pytorch 脚本。例如CUDA_VISIBLE_DEVICES=0 python main.py.

是的。你可以 set the default tensor type 到 cuda:

torch.set_default_tensor_type('torch.cuda.FloatTensor')

Do I have to create tensors using .cuda explicitly if I have used model.cuda()?

是的,您不仅需要将模型 [参数] 张量设置为 cuda,还需要将数据特征和目标(以及模型使用的任何其他张量)的张量设置为 cuda。