BCE_loss的理解

  1. ###### LossFounction definition
  2. def BCE_loss(y_hat, y):
  3.     return -(torch.mean(y * torch.log(y_hat) + (1-y) * torch.log(1-y_hat)))
  4. 原因:损失函数的计算,如交叉熵损失函数的计算可能出现log(0),所以就会出现lossNan的情况  症状: 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) ))

你可能感兴趣的:(python)