【深度學(xué)習(xí)】最全的損失函數(shù)匯總
共 7263字,需瀏覽 15分鐘
·
2024-06-19 12:00
編輯:深度學(xué)習(xí)自然語言處理
鏈接:https://blog.csdn.net/shanglianlm/article/details/85019768
tensorflow和pytorch很多都是相似的,這里以pytorch為例。
19種損失函數(shù)
1. L1范數(shù)損失 L1Loss
torch.nn.L1Loss(reduction='mean')
reduction-三個值,none: 不使用約簡;mean:返回loss和的平均值;sum:返回loss的和。默認:mean。
torch.nn.MSELoss(reduction='mean')
reduction-三個值,none: 不使用約簡;mean:返回loss和的平均值;sum:返回loss的和。默認:mean。
torch.nn.CrossEntropyLoss(weight=None,ignore_index=-100, reduction='mean')
weight (Tensor, optional) – 自定義的每個類別的權(quán)重. 必須是一個長度為 C 的 Tensor ignore_index (int, optional) – 設(shè)置一個目標(biāo)值, 該目標(biāo)值會被忽略, 從而不會影響到 輸入的梯度。 reduction-三個值,none: 不使用約簡;mean:返回loss和的平均值;sum:返回loss的和。默認:mean。
torch.nn.KLDivLoss(reduction='mean')
reduction-三個值,none: 不使用約簡;mean:返回loss和的平均值;sum:返回loss的和。默認:mean。
torch.nn.BCELoss(weight=None, reduction='mean')
weight (Tensor, optional) – 自定義的每個 batch 元素的 loss 的權(quán)重. 必須是一個長度為 “nbatch” 的 的 Tensor
torch.nn.BCEWithLogitsLoss(weight=None, reduction='mean', pos_weight=None)
weight (Tensor, optional) – 自定義的每個 batch 元素的 loss 的權(quán)重. 必須是一個長度 為 “nbatch” 的 Tensor
7 MarginRankingLoss
torch.nn.MarginRankingLoss(margin=0.0, reduction='mean')
參數(shù):
margin:默認值0
8 HingeEmbeddingLoss
torch.nn.HingeEmbeddingLoss(margin=1.0, reduction='mean')
參數(shù):
margin:默認值1
9 多標(biāo)簽分類損失 MultiLabelMarginLoss
torch.nn.MultiLabelMarginLoss(reduction='mean')
10 平滑版L1損失 SmoothL1Loss
torch.nn.SmoothL1Loss(reduction='mean')
其中
11 2分類的logistic損失 SoftMarginLoss
torch.nn.SoftMarginLoss(reduction='mean')
12 多標(biāo)簽 one-versus-all 損失 MultiLabelSoftMarginLoss
torch.nn.MultiLabelSoftMarginLoss(weight=None, reduction='mean')
13 cosine 損失 CosineEmbeddingLoss
torch.nn.CosineEmbeddingLoss(margin=0.0, reduction='mean')
參數(shù):
margin:默認值0
14 多類別分類的hinge損失 MultiMarginLoss
torch.nn.MultiMarginLoss(p=1, margin=1.0, weight=None, reduction='mean')
參數(shù):
p=1或者2 默認值:1
margin:默認值1
15 三元組損失 TripletMarginLoss
torch.nn.TripletMarginLoss(margin=1.0, p=2.0, eps=1e-06, swap=False, reduction='mean')
其中:
torch.nn.CTCLoss(blank=0, reduction='mean')
reduction-三個值,none: 不使用約簡;mean:返回loss和的平均值;sum:返回loss的和。默認:mean。
torch.nn.NLLLoss(weight=None, ignore_index=-100, reduction='mean')
weight (Tensor, optional) – 自定義的每個類別的權(quán)重. 必須是一個長度為 C 的 Tensor ignore_index (int, optional) – 設(shè)置一個目標(biāo)值, 該目標(biāo)值會被忽略, 從而不會影響到 輸入的梯度.
torch.nn.NLLLoss2d(weight=None, ignore_index=-100, reduction='mean')
weight (Tensor, optional) – 自定義的每個類別的權(quán)重. 必須是一個長度為 C 的 Tensor reduction-三個值,none: 不使用約簡;mean:返回loss和的平均值;sum:返回loss的和。默認:mean。
19 PoissonNLLLoss
torch.nn.PoissonNLLLoss(log_input=True, full=False, eps=1e-08, reduction='mean')
往期精彩回顧
交流群
歡迎加入機器學(xué)習(xí)愛好者微信群一起和同行交流,目前有機器學(xué)習(xí)交流群、博士群、博士申報交流、CV、NLP等微信群,請掃描下面的微信號加群,備注:”昵稱-學(xué)校/公司-研究方向“,例如:”張小明-浙大-CV“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~(也可以加入機器學(xué)習(xí)交流qq群772479961)
評論
圖片
表情
