为什么我收到错误:“具有多个值的张量的布尔值不明确”

use*_*129 2 pytorch

我正在尝试运行以下代码:

l = torch.tensor([0, 1, 1, 1], requires_grad=False)
r = torch.rand(4, 2)

torch.nn.CrossEntropyLoss(r, l)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

RuntimeError: Boolean value of Tensor with more than one value is ambiguous
Run Code Online (Sandbox Code Playgroud)

我在这里查看:Bool value of Tensor with more than one value is ambigacy in Pytorch但不明白答案。

我需要更改什么才能运行代码?

Iva*_*van 5

您正在操作的对象torch.nn.CrossEntropyLoss是 PyTorch 模块类,而不是函数。

因此,您应该提前初始化它:

>>> ce_loss = nn.CrossEntropyLoss()
>>> cel_loss(r, l)
Run Code Online (Sandbox Code Playgroud)

或者使用函数式接口, torch.nn.functional.cross_entropy

>>> F.cross_entropy(r, l)
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

4727 次

最近记录:

3 年,7 月 前