我正在尝试构建一个损失函数,该函数将计算相同大小的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]))
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, :])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句