SCRN中的损失函数torch.nn.BCEWithLogitsLoss详解
https://blog.csdn.net/qq_22210253/article/details/85222093
这个老哥写的是真的好
要理解BCEWithLogitsLoss就要理解BCELoss
我的理解: BCEWithLogitsLoss = nn.Sigmoid() + nn.BCELoss()
BCEWithLogitsLoss就是把Sigmoid-BCELoss合成一步
1. nn.BCELoss()
1 在图片多标签分类时,如果3张图片分3类,会输出一个3*3的矩阵。
2 先用Sigmoid给这些值都搞到0~1之间:
sigmoid函数科普,把(-1, 1)的输入变为(0, 1)
3 假设Target是:
4 计算过程如下:
我转载的博主说:应该是我上面每次都保留4位小数,算到最后误差越来越大差了0.0001。不过也很厉害啦哈哈哈哈哈!
2. BCEWithLogitsLoss
BCEWithLogitsLoss就是把Sigmoid-BCELoss合成一步。
我们直接用刚刚的input验证一下是不是0.7193: