本文主要是介绍BCE_loss的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- ###### LossFounction definition
- def BCE_loss(y_hat, y):
- return -(torch.mean(y * torch.log(y_hat) + (1-y) * torch.log(1-y_hat)))
- # 原因:损失函数的计算,如交叉熵损失函数的计算可能出现log(0),所以就会出现loss为Nan的情况 症状: loss逐渐下降,突然出现Nan
如果原始的数据是 0 01
预测的结果是0.1 0.1 0.4
交叉熵=0*log0.1+0*log0.1+1*log0.4+1*log0.9+1*log0.9+0*log0.6
显然的两者的的差值越小
显然 当预测结果是 0 0 1的时候,结果是0 是最好的
且记
他不是-(torch.mean(y * torch.log(y) + (1-yhat) * torch.log(1-y_hat)))
也不是
他不是-(torch.mean( (1-yhat) * torch.log(1-y_hat)+y * torch.log(y) ))
这篇关于BCE_loss的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!