如何在cuda中默认运行pytorch计算

时间:2017-05-05 13:32:00

标签: pytorch

现在,我想使用cuda运行pytorch,然后我使用model.cuda()torch.cuda.LongTensor()来表示所有张量。如果我使用.cuda.,是否必须使用model.cuda()明确创建张量?是否有一种方法可以使所有计算在GPU中运行为默认值?

2 个答案:

答案 0 :(得分:3)

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

在imagenet培训/测试脚本中,他们在名为DataParallel的模型上使用包装器。 这个包装器有两个优点:

  • 它处理多个GPU上的数据并行性
  • 它处理cpu张量到cuda张量的演员

正如您在L164中所看到的,您不必手动将输入/目标投射到cuda。

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

答案 1 :(得分:1)

是的。您可以通过以下方式set the default tensor type到 cuda:

torch.set_default_tensor_type('torch.cuda.FloatTensor')
<块引用>

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

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