如何解决创建衡量F1损失的标准
我目前正在使用以下方法创建衡量MSE损失函数的标准:
loss_fcn = torch.nn.MSELoss()
loss = loss_fcn(logits[getMaskForBatch(subgraph)],labels.float())
现在我需要将其更改为F1分数,但似乎找不到一个可以用于它的库
解决方法
为什么需要这么做?
F1分数通常是评估指标,而不是损失函数。此外,要将F1得分用作损失函数,必须确保它具有可微性和凸性(我认为可能不是这样,否则在文献中就已经存在)。有很多损失函数可以解决您的问题,例如交叉熵,对数可能性为负,CTC损失等。
,特别是根据您需要具有特定损失函数的任务。 损失函数也称为目标函数,成本函数或误差函数在某种程度上与优化函数相反。损失函数产生损失,优化函数减少损失。 :)。这两个函数应该处于平衡状态,这样我们就不会过拟合。
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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。