Python 创建衡量F1损失的标准

Python 创建衡量F1损失的标准,python,pytorch,Python,Pytorch,我目前正在使用以下方法创建衡量MSE损失函数的标准: loss_fcn = torch.nn.MSELoss() loss = loss_fcn(logits[getMaskForBatch(subgraph)], labels.float()) 现在我需要将它更改为F1成绩,但我似乎找不到一个库可以用于它为什么需要这样做 F1分数通常是一个评估指标,而不是损失函数。此外,要使用F1分数作为损失函数,你必须确保它是可微的和凸的(我认为可能不是这种情况,否则它在文献中已经存在) 有许多损失函

我目前正在使用以下方法创建衡量MSE损失函数的标准:

loss_fcn = torch.nn.MSELoss() 

loss = loss_fcn(logits[getMaskForBatch(subgraph)], labels.float())

现在我需要将它更改为F1成绩,但我似乎找不到一个库可以用于它

为什么需要这样做

F1分数通常是一个评估指标,而不是损失函数。此外,要使用F1分数作为损失函数,你必须确保它是可微的和凸的(我认为可能不是这种情况,否则它在文献中已经存在)


有许多损失函数可以解决您的问题,如交叉熵、负对数可能性、CTC损失等。

为什么需要这样做

F1分数通常是一个评估指标,而不是损失函数。此外,要使用F1分数作为损失函数,你必须确保它是可微的和凸的(我认为可能不是这种情况,否则它在文献中已经存在)


有许多损失函数可以解决您的问题,如交叉熵、负对数概率、CTC损失等。

具体取决于任务,您需要有特定的损失函数。 损失函数也称为目标函数、成本函数或误差函数,它在某种程度上与优化函数相反。损耗函数产生损耗,优化函数减少损耗。:)。这两个函数应该处于平衡状态,这样我们就不会过度拟合

Pyrotch回归损失:

  • nn.L1损耗
    L1损耗(MAE)
  • nn.MSE损耗
    L2损耗(MSE)
  • nn.SmoothL1Loss
    Huber
Pyrotch分类损失:

  • nn.CrossEntropyLoss
  • nn.KLDivLoss
  • nn.NLLLoss
皮根训练

  • nn.MarginRankingLoss
因此,如果您使用了
nn.MSELoss
,您可能需要继续使用回归,因为F1是分类度量


如果您确实因为其他原因需要F1分数,您可以使用。

特别是根据您需要具有特定损失功能的任务。 损失函数也称为目标函数、成本函数或误差函数,它在某种程度上与优化函数相反。损耗函数产生损耗,优化函数减少损耗。:)。这两个函数应该处于平衡状态,这样我们就不会过度拟合

Pyrotch回归损失:

  • nn.L1损耗
    L1损耗(MAE)
  • nn.MSE损耗
    L2损耗(MSE)
  • nn.SmoothL1Loss
    Huber
Pyrotch分类损失:

  • nn.CrossEntropyLoss
  • nn.KLDivLoss
  • nn.NLLLoss
皮根训练

  • nn.MarginRankingLoss
因此,如果您使用了
nn.MSELoss
,您可能需要继续使用回归,因为F1是分类度量


如果您出于其他原因确实需要F1分数,您可以使用。

为什么需要使用F1分数?我正在计算F1分数,以了解我的应用程序在@prostiuse或scikit learn的此F1分数函数中对人脸进行分类的能力,但为什么要使用F1分数?为什么不准确?为什么需要使用F1分数?我正在计算F1分数,以确定我的应用程序在@prostiuse或scikit learn的F1score函数中对人脸进行分类的效果,但为什么要使用F1分数?为什么不准确?因为我的讲师告诉我要实施我已经完成的F1分数评估,我只需要使用F1分数优化我的模型,而不是MSE损失,正如你所说,F1分数用于评估。如果你的问题是一个分类问题,你不必使用MSE损失;不妨试试上面列出的其中一种。如果您的问题是回归问题,则无法使用F1分数评估模型。你应该使用R2或MAPE。因为我的讲师告诉我要实施我已经完成的F1分数评估,我只需要使用F1分数而不是MSE损失优化我的模型。正如你所说,F1分数用于评估。如果你的问题是一个分类问题,你不必使用MSE损失;不妨试试上面列出的其中一种。如果您的问题是回归问题,则无法使用F1分数评估模型。您应该使用R2或MAPE。