如何默认在 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。
我想 运行 使用 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。