[DL]pytorch中部分损失函数粗解:NLLLoss与CrossEntropyLoss,BCELoss与CrossEntropyLoss,BCELoss与BCEWithLosgitsLoss之间的区别
1、NLLLoss与CrossEntropy之间的区别:
NLLLoss中是先做log-softmax处理后,再取负即可。
CrossEntropyLoss则直接计算损失,内部会自动进行softmax处理。
2、BCELoss与CrossEntropyLoss之间的区别:(交叉熵的计算公式不一样)
BCELoss的计算公式:
CrossEntropyLoss的计算公式:
3、BCELoss与BCEWithLogitsLoss之间的区别:
BCELoss:先做sigmoid再做交叉熵,然后先对行求均值,再对所有的均值求一个均值。
BCEWithLogitsLoss:直接做交叉熵和均值处理(函数内部会自动做sigmoid处理)
参考网址:
[1]https://blog.csdn.net/qq_22210253/article/details/85229988