[DL]pytorch中部分損失函數粗解:NLLLoss與CrossEntropyLoss,BCELoss與CrossEntropyLoss,BCELoss與BCEWithLosgitsLoss之間的

一、NLLLoss與CrossEntropy之間的區別:git

NLLLoss中是先作log-softmax處理後,再取負便可。函數

CrossEntropyLoss則直接計算損失,內部會自動進行softmax處理。.net

二、BCELoss與CrossEntropyLoss之間的區別:(交叉熵的計算公式不同)3d

BCELoss的計算公式:blog

 

CrossEntropyLoss的計算公式:get

 

 

三、BCELoss與BCEWithLogitsLoss之間的區別:it

BCELoss:先作sigmoid再作交叉熵,而後先對行求均值,再對全部的均值求一個均值。bfc

BCEWithLogitsLoss:直接作交叉熵和均值處理(函數內部會自動作sigmoid處理)im

 

參考網址:d3

[1]https://blog.csdn.net/qq_22210253/article/details/85229988

[2]https://zhuanlan.zhihu.com/p/98785902

[3]https://www.jianshu.com/p/0062d04a2782

相關文章
相關標籤/搜索