1.当损失函数中出现log(0)*0的情况,就会出现nan:
log(0)=-inf本身没有问题,可以安全参与多数计算,但是当-inf*0就会出现问题,所以为了避免这种情况,变为
y_true*log(y_pred+1e-10)
一般y_pred是经过sigmoid函数处理的结果。
或者可以将y_pred 限制在合理范围内,如下:
eps = 1e-9
y_pred = torch.clamp(y_pred, eps, 1.0 - eps)
1.当损失函数中出现log(0)*0的情况,就会出现nan:
log(0)=-inf本身没有问题,可以安全参与多数计算,但是当-inf*0就会出现问题,所以为了避免这种情况,变为
y_true*log(y_pred+1e-10)
一般y_pred是经过sigmoid函数处理的结果。
或者可以将y_pred 限制在合理范围内,如下:
eps = 1e-9
y_pred = torch.clamp(y_pred, eps, 1.0 - eps)