我正在尝试运行以下代码:
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但不明白答案。
我需要更改什么才能运行代码?
您正在操作的对象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 次 |
| 最近记录: |