如何将 torch.device('cuda' if torch.cuda.is_available() else 'cpu') 编写为完整的 if else 语句?

Posted

技术标签:

【中文标题】如何将 torch.device(\'cuda\' if torch.cuda.is_available() else \'cpu\') 编写为完整的 if else 语句?【英文标题】:How to write torch.device('cuda' if torch.cuda.is_available() else 'cpu') as a full if else statement?如何将 torch.device('cuda' if torch.cuda.is_available() else 'cpu') 编写为完整的 if else 语句? 【发布时间】:2020-11-27 20:02:11 【问题描述】:

我是 Pytorch 的初学者,想把这个语句作为一个整体输入 if else 语句:-

torch.device('cuda' if torch.cuda.is_available() else 'cpu')

有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

这里是整个if-else语句的代码:

torch.device('cuda' if torch.cuda.is_available() else 'cpu')
if torch.cuda.is_available():
    torch.device('cuda')
else:
    torch.device('cpu')

由于您可能想要存储设备以备后用,您可能需要这样的东西:

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
if torch.cuda.is_available():
    device = torch.device('cuda')
else:
    device = torch.device('cpu')

这是一篇关于 Python 中三元运算符的帖子和讨论:https://***.com/a/2802748/13985765

来自那个帖子:

value_when_true if condition else value_when_false

【讨论】:

以上是关于如何将 torch.device('cuda' if torch.cuda.is_available() else 'cpu') 编写为完整的 if else 语句?的主要内容,如果未能解决你的问题,请参考以下文章

torch.device(‘cuda‘) 与 torch.device(‘cuda:0‘) 的区别简析

torch.device(‘cuda‘) 与 torch.device(‘cuda:0‘) 的区别简析

torch.device(‘cuda‘) 与 torch.device(‘cuda:0‘) 的区别简析

PyTorch:tensor.cuda() 和 tensor.to(torch.device("cuda:0")) 有啥区别?

Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same

RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is Fal