F.binary_cross_entropy_with_logits函式與F.binary_cross_entropy函式的關係(二分類問題)

BooTurbo發表於2023-04-25

 

 

 

 

假設 1個影像樣本由神經網路處理後的輸出是 size 10×4 的tensor,隨機生成一個tensor,

使用Sigmoid對該tensor進行機率變換,tensor的每個數值的變換都是相互獨立的,下面得出預測的機率分佈,

我們在這裡隨機生成一個真值的機率分佈y,

自己定義一下BCELoss,需要輸入預測的機率分佈和真值的機率分佈,

手動計算一下,結果一致,

使用F.binary_cross_entropy 驗證一下,同樣需要輸入預測的機率分佈和真值的機率分佈,

再使用F.binary_cross_entropy_with_logits驗證一下,直接輸入神經網路的輸出和真值的機率分佈,

 

 

 

 

 

 

 

 

 

 

 

 

BCELoss與BCEWithLogitsLoss的關聯:BCEWithLogitsLoss = Sigmoid + BCELoss,

 

nn介面                                              Function介面

nn.BCELoss( )                                  F.binary_cross_entropy( )

nn.BCEWithLogitsLoss( )                 F.binary_cross_entropy_with_logits( )

 

 

Enjoy it!

 

相關文章