I want to run PyTorch using cuda. I set model.cuda()
and torch.cuda.LongTensor()
for all tensors.
Do I have to create tensors using .cuda
explicitly if I have used model.cuda()
?
Is there a way to make all computations run on GPU by default?
我认为您不能指定默认情况下要使用 cuda 张量。但是,您应该查看 pytorch 官方示例。
在 imagenet 训练/测试脚本中,他们在模型上使用了一个名为DataParallel的包装器。这个包装器有两个优点:
正如您在L164中看到的,您不必手动将输入/目标转换为 cuda。
请注意,如果您有多个 GPU 并且想要使用单个 GPU,请启动任何带有 CUDA_VISIBLE_DEVICES 前缀的 python/pytorch 脚本。例如CUDA_VISIBLE_DEVICES=0 python main.py
.
是的。您可以使用以下命令将默认张量类型设置为 cuda:
torch.set_default_tensor_type('torch.cuda.FloatTensor')
如果我使用了 model.cuda(),是否必须明确使用 .cuda 创建张量?
是的,您不仅需要将模型 [参数] 张量设置为 cuda,还需要将数据特征和目标(以及模型使用的任何其他张量)的张量设置为。