我正在尝试构建一个损失函数,它将计算两个相同大小的期限的均方误差。换句话说,我需要一个函数来计算矩阵 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]))
1 回答
当年话下
TA贡献1890条经验 获得超9个赞
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, :])
添加回答
举报
0/150
提交
取消