BCELoss BCEWithLogitsLoss 多标签损失函数

BCELoss
在图片多标签分类时,如果3张图片分3类,会输出一个3*3的矩阵。

BCELoss BCEWithLogitsLoss 多标签损失函数_第1张图片
先用Sigmoid给这些值都搞到0~1之间:

BCELoss BCEWithLogitsLoss 多标签损失函数_第2张图片
假设Target是:

BCELoss BCEWithLogitsLoss 多标签损失函数_第3张图片

BCELoss BCEWithLogitsLoss 多标签损失函数_第4张图片

BCELoss BCEWithLogitsLoss 多标签损失函数_第5张图片
emmm应该是我上面每次都保留4位小数,算到最后误差越来越大差了0.0001。不过也很厉害啦哈哈哈哈哈!
BCEWithLogitsLoss
BCEWithLogitsLoss就是把Sigmoid-BCELoss合成一步。我们直接用刚刚的input验证一下是不是0.7193:

20201230

对每一张图片 每一条记录
1.每一行对应每个标签的概率
2.对每一行的每个标签求交叉熵损失
3.对每一行的3个标签的交叉熵损失求平均
4.对所有图片 所有记录的平均交叉熵 再求平均
总的编码信息长度

input 输入还需要通过sigmoid 处理 只有 input输入值接近6 sigmoid 之后得到
1,再经过ln之后得到零 这样loss 才会接近于零

https://blog.csdn.net/mr_health/article/details/108665421
tf.nn.sigmoid_cross_entropy_with_logits BCEloss
https://www.cnblogs.com/hellcat/p/7039482.html
https://blog.csdn.net/qq_35203425/article/details/79773459?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control
tensorflow 对应这个
https://www.w3cschool.cn/tensorflow_python/tf_nn_sigmoid_cross_entropy_with_logits.html
https://www.cnblogs.com/smallredness/p/11199541.html

你可能感兴趣的:(BCELoss BCEWithLogitsLoss 多标签损失函数)