在以下代码(从SentEval中提取)中,定义了一个神经网络结构,它将 1024 个实数映射到 5 个输出预测。问题是评估两个句子之间的相关性(每个句子用 512 个特征表示)。相关性是 [1,5] 中的一个数字。我认为如果训练相关性数字在 {1,2,3,4,5} 中,则cross entropy
是一个更好的损失函数,但由于在训练集中我们在 [1,5] 中有真正的相关性数字,因此MSE
用作损失函数。
问题:由于对于每个输入,网络输出 5 个概率数,如何MSE
计算实数和 5 个概率数之间的 ?
from torch import nn
inputdim = 1024
nclasses = 5
model = nn.Sequential(
nn.Linear(inputdim, nclasses),
nn.Softmax(dim=-1),
)
loss_fn = nn.MSELoss()