gpt4 book ai didi

Pytorch,无法获得 的 repr

转载 作者:行者123 更新时间:2023-12-01 17:45:27 25 4
gpt4 key购买 nike

我正在 PyTorch 中实现一些强化学习,并且必须编写自己的 mse_loss 函数(我在 Stackoverflow 上找到的;))。损失函数为:

def mse_loss(input_, target_):    
return torch.sum(
(input_ - target_) * (input_ - target_)) / input_.data.nelement()

现在,在我的训练循环中,第一个输入类似于:

tensor([-1.7610e+10]), tensor([-6.5097e+10])

Input tensor

使用此输入我会收到错误:

Unable to get repr for <class 'torch.Tensor'>

计算a = (input_ - target_)工作正常,而b = a * a分别b = torch.pow(a, 2) code> 将失败并出现上述错误。

有谁知道这个问题的解决办法吗?

非常感谢!

更新:我刚刚尝试使用 torch.nn.function.mse_loss 这将导致相同的错误..

最佳答案

当我使用下面的代码时,我遇到了同样的错误

criterion = torch.nn.CrossEntropyLoss().cuda()
output=output.cuda()
target=target.cuda()
loss=criterion(output, target)

但我终于发现我的错误:输出像tensor([[0.5746,0.4254]]),目标像tensor([2]),数字2 超出输出索引

当我不使用GPU时,此错误消息是:

RuntimeError: Assertion `cur_target >= 0 && cur_target < n_classes' failed.  at /opt/conda/conda-bld/pytorch-nightly_1547458468907/work/aten/src/THNN/generic/ClassNLLCriterion.c:93

关于Pytorch,无法获得 <class 'torch.Tensor' > 的 repr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51009687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com