BCELoss和BCEWithLogitsLoss

計算多標(biāo)簽分類時候的損失函數(shù)一般選擇BCELoss和BCEWithLogitsLoss,這兩者的區(qū)別在于:

  • BCELoss 是處理經(jīng)過Sigmoid之后輸出的概率值
  • BCEWithLogitsLoss是把兩者合到一起Sigmoid-BCELoss
    具體計算例子:
  1. 準(zhǔn)備輸入input:
import torch
import torch.nn as nn
input = torch.tensor([[-0.4089,-1.2471,0.5907],
                      [-0.4897,-0.8267,-0.7349],
                      [0.5241,-0.1246,-0.4751]])
print(input)
tensor([[-0.4089, -1.2471,  0.5907],
        [-0.4897, -0.8267, -0.7349],
        [ 0.5241, -0.1246, -0.4751]])
  1. sigmoid 將輸出值約束到0-1之間:
m=nn.Sigmoid()
S_input=m(input)
print(S_input)
tensor([[0.3992, 0.2232, 0.6435],
        [0.3800, 0.3043, 0.3241],
        [0.6281, 0.4689, 0.3834]])
  1. 準(zhǔn)備目標(biāo)值target:
target=torch.FloatTensor([[0,1,1],[0,0,1],[1,0,1]])
print(target)
tensor([[0., 1., 1.],
        [0., 0., 1.],
        [1., 0., 1.]])
  1. 接著使用BCELoss計算損失值:
BCELoss=nn.BCELoss()
loss=BCELoss(S_input,target)
print(loss)
tensor(0.7193)
  1. 如下圖看BCELoss如何計算多標(biāo)簽分類的損失简珠,驗證計算結(jié)果一致:


  • 下面通過具體實(shí)現(xiàn)驗證圖示的計算過程:
loss = 0.0
for i in range(S_input.shape[0]):
    for j in range(S_input.shape[1]):
        loss += -(target[i][j] * torch.log(S_input[i][j]) + (1 - target[i][j]) * torch.log(1 - S_input[i][j]))
print(loss/(S_input.shape[0]*S_input.shape[1])) # 默認(rèn)取均值
tensor(0.7193)
  1. BCEWithLogitsLoss 就是把求Sigmoid 和上圖的取log等計算loss合到一起:
BCEWithLogitsLoss=nn.BCEWithLogitsLoss()
loss=BCEWithLogitsLoss(input,target)
print(loss)
tensor(0.7193)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摘盆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饱苟,老刑警劉巖孩擂,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箱熬,居然都是意外死亡类垦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門城须,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚤认,“玉大人,你說我怎么就攤上這事糕伐∨樽粒” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵良瞧,是天一觀的道長陪汽。 經(jīng)常有香客問我,道長莺褒,這世上最難降的妖魔是什么掩缓? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮遵岩,結(jié)果婚禮上你辣,老公的妹妹穿的比我還像新娘。我一直安慰自己尘执,他們只是感情好舍哄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著誊锭,像睡著了一般表悬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丧靡,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天蟆沫,我揣著相機(jī)與錄音,去河邊找鬼温治。 笑死饭庞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的熬荆。 我是一名探鬼主播舟山,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了累盗?” 一聲冷哼從身側(cè)響起寒矿,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎若债,沒想到半個月后符相,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拆座,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年主巍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挪凑。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡孕索,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出躏碳,到底是詐尸還是另有隱情搞旭,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布菇绵,位于F島的核電站肄渗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏咬最。R本人自食惡果不足惜翎嫡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望永乌。 院中可真熱鬧惑申,春花似錦、人聲如沸翅雏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽望几。三九已至绩脆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橄抹,已是汗流浹背靴迫。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留楼誓,地道東北人矢劲。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像慌随,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容