使用PyTorch
CUDA处理损失值的正确方法是什么?例如:
1.我应该将损失值存储在GPU中吗?
1.如何将损失值移动到GPU?
1.如何更新GPU上的损失值?
内部__初始化__():
self.device = torch.device('cuda')
self.model = self.model.to(device)
self.total_loss = torch.Tensor([0]).to(device)
对于每个批次:
self.loss1 = torch.Tensor(y_true - y_pred)
self.loss2 = 0.5 # some other loss
self.total_loss = self.loss1 + self.loss2
self.total_loss.backward()
1条答案
按热度按时间b4wnujal1#
TL;DR无论如何,您的损失可能是GPU。
你需要把所有用来计算损失的数据手动放到GPU上,主要包括模型输入和地面真实数据输出,通常你使用数据加载器加载这些数据,然后把它们移到GPU上,就像本PyTorch教程中演示的那样。
现在,对于您的情况,让我们看看当不将Tensor移动到GPU时会发生什么,还让我们看看哪些Tensor已经在GPU上。
回到你的例子
所以没有必要把你的损失转移到GPU上,如果你处理得当,它已经放在GPU上了。