创建衡量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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...