我正在嘗試構建一個損失函數,它將計算兩個相同大小的期限的均方誤差。換句話說,我需要一個函數來計算矩陣 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
提交
取消