我目前正在使用以下方法创建衡量MSE损失函数的标准:
loss_fcn = torch.nn.MSELoss()
loss = loss_fcn(logits[getMaskForBatch(subgraph)], labels.float())
现在我需要将其更改为F1分数,但似乎找不到一个可以用于它的库
答案 0 :(得分:0)
为什么需要这么做?
F1分数通常是评估指标,而不是损失函数。此外,要将F1得分用作损失函数,必须确保它具有可微性和凸性(我认为可能不是这样,否则在文献中就已经存在)。有很多损失函数可以解决您的问题,例如交叉熵,对数可能性为负,CTC损失等。
答案 1 :(得分:0)
特别是根据您需要具有特定损失函数的任务。 损失函数也称为目标函数,成本函数或误差函数在某种程度上与优化函数相反。损失函数产生损失,优化函数减少损失。 :)。这两个函数应该处于平衡状态,这样我们就不会过拟合。
PyTorch 回归损失:
nn.L1Loss
L1 损失 (MAE)nn.MSELoss
L2 损失 (MSE)nn.SmoothL1Loss
胡贝尔PyTorch 分类损失:
nn.CrossEntropyLoss
nn.KLDivLoss
nn.NLLLoss
PyTorch GAN 训练
nn.MarginRankingLoss
因此,如果您使用 nn.MSELoss
,您可能需要继续使用回归,因为 F1 是分类指标。
如果由于其他原因确实需要 F1 分数,则可以使用 scikit learn。