日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pytorch几种损失函数CrossEntropyLoss、NLLLoss、BCELoss、BCEWithLogitsLoss、focal_loss、heatmap_loss

發布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytorch几种损失函数CrossEntropyLoss、NLLLoss、BCELoss、BCEWithLogitsLoss、focal_loss、heatmap_loss 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分類問題常用的幾種損失,記錄下來備忘,后續不斷完善。

nn.CrossEntropyLoss()交叉熵損失

常用于多分類問題

CE = nn.CrossEntropyLoss() loss = CE(input,target)

Input: (N, C) , dtype: float, N是樣本數量,在批次計算時通常就是batch_size
target: (N), dtype: long,是類別號,0 ≤ targets[i] ≤ C?1
pytorch中的交叉熵損失就是softmax和NLL損失的組合,即

nn.CrossEntropyLoss()(input,target) == nn.NLLLoss()(torch.log(nn.Softmax()(input)),target)

nn.NLLLoss()

NLL = nn.NLLLoss() loss = NLL(input,target)

Input: (N, C) , dtype: float, N是樣本數量,在批次計算時通常就是batch_size
target: (N), dtype: long,是類別號,0 ≤ targets[i] ≤ C?1

nn.BCELoss() 二元交叉熵損失

常用于二分類或多標簽分類

BCE = nn.BCELoss() loss = BCE(input,target)

Input: (N, x) , dtype: float, N是樣本數量,在批次計算時通常就是batch_size,x是標簽數
target: (N, x), dtype: float,通常是標簽的獨熱碼形式,注意需改成float格式

nn.BCEWithLogitsLoss()

相當于BCE加上sigmoid

nn.BCEWithLogitsLoss()(input,target) == nn.BCELoss()(torch.sigmoid(input),target)

focal_loss

focal loss在pytorch中沒有,它常用在目標檢測問題中,公式和曲線見論文中的圖:

帶平衡參數的focal loss公式如下:

代碼:(待后補)

heatmap_loss

heatmap_loss出現在anchor-free的目標檢測網絡centernet和conernet中,它在focal loss的基礎上進一步改進,加入了對熱點區域的損失減小的措施,以使模型輸出可以較容易的收斂到檢測點附件區域。(否則,必須收斂到檢測點的話,難度太大,收斂速度慢)

注意,它只是在otherwise情況下多加了一個 (1?Yxyc)β(1-Y_{xyc})^\beta(1?Yxyc?)β 除此之外,就是focal loss

總結

以上是生活随笔為你收集整理的pytorch几种损失函数CrossEntropyLoss、NLLLoss、BCELoss、BCEWithLogitsLoss、focal_loss、heatmap_loss的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。