计算 2 个张量之间的均方误差存在困难

我正在尝试构建一个损失函数,它将计算两个相同大小的期限的均方误差。换句话说,我需要一个函数来计算矩阵 A 和矩阵 B 上每 2 个单元格(具有相同行和列)单元格的差异,对其进行平方并计算差异的平均值。

据我了解 nn.MSELoss 应该做到这一点。

当我将 2 个张量传递给 nn.MSELoss 时,我收到以下错误消息:

RuntimeError: Boolean value of Tensor with more than one value is ambiguous

这是我的代码

nn.MSELoss(stack_3[0,:],stack_7[0,:])

张量是相同形状的浮点数。

stack_3.shape, stack_7.shape
(torch.Size([6131, 784]), torch.Size([6131, 784]))


江户川乱折腾
浏览 137回答 1
1回答

当年话下

nn.MSELoss是一个可调用的类,而不是一个函数。您需要首先定义 的实例nn.MSELoss,然后才能调用它。或者您可以直接使用torch.nn.functional.mse_loss.from torch import nn criterion = nn.MSELoss() loss = criterion(stack_3[0, :], stack_7[0, :])或者import torch.nn.functional as F loss = F.mse_loss(stack_3[0, :], stack_7[0, :])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python