计算两个张量之间的均方误差的困难
Difficulties calculating mean square error between 2 tensors
我正在尝试构建一个损失函数,它将计算 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
是可调用的 class,不是函数。你需要先定义一个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, :])
我正在尝试构建一个损失函数,它将计算 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
是可调用的 class,不是函数。你需要先定义一个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, :])