如何检查张量是否在 cuda 上或将其发送到 Pytorch 中的 cuda?

问题描述 投票:0回答:3

我有一个张量

t = torch.zeros((4, 5, 6))

如何检查它是否在GPU上,并将其发送到GPU并返回?

python pytorch gpu tensor
3个回答
38
投票

来自pytorch论坛

使用

t.is_cuda
t.cuda()
t.cpu()

t = torch.randn(2,2)
t.is_cuda  # returns False
t = torch.randn(2,2).cuda()
t.is_cuda  # returns True
t = t.cpu()
t.is_cuda  # returns False

在 GPU 和 CPU 之间传递数据时,新数组会在相关设备上分配。


1
投票

@Gulzar只告诉你如何检查张量是在cpu上还是在gpu上。您可以通过以下方法计算GPU上的张量:

t = torch.rand(5, 3)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
t = t.to(device)

0
投票

老问题和正确答案,但为什么不使用

print(tensor.get_device())
,如此处所述?

如果张量在 GPU 上,则返回 0;如果在 CPU 上,则返回 -1。

© www.soinside.com 2019 - 2024. All rights reserved.