现在,我想使用cuda运行pytorch,然后我使用model.cuda()
和torch.cuda.LongTensor()
来表示所有张量。如果我使用.cuda.
,是否必须使用model.cuda()
明确创建张量?是否有一种方法可以使所有计算在GPU中运行为默认值?
答案 0 :(得分:3)
我认为您不能指定默认使用cuda张量。 但是你应该看看pytorch的官方例子。
在imagenet培训/测试脚本中,他们在名为DataParallel的模型上使用包装器。 这个包装器有两个优点:
正如您在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。