国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

YOLOV5中損失函數(shù)即代碼講解

這篇具有很好參考價值的文章主要介紹了YOLOV5中損失函數(shù)即代碼講解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

YOLOV5中損失函數(shù)即代碼講解
YOLOV5中l(wèi)oss.py文件代碼講解:https://blog.csdn.net/weixin_42716570/article/details/116759811
yolov5中一共存在三種損失函數(shù):
分類損失cls_loss:計算錨框與對應(yīng)的標定分類是否正確
定位損失box_loss:預測框與標定框之間的誤差(CIoU)
置信度損失obj_loss:計算網(wǎng)絡(luò)的置信度
通過交叉熵損失函數(shù)與對數(shù)損失的結(jié)合來計算定位損失以及分類損失。

class BCEBlurWithLogitsLoss(nn.Module):#二元交叉熵損失函數(shù),blur 意為模糊 據(jù)下行原版注釋是減少了錯失標簽帶來的影響
    # BCEwithLogitLoss() with reduced missing label effects.
    def __init__(self, alpha=0.05):
        super(BCEBlurWithLogitsLoss, self).__init__()
        # 這里BCEWithLogitsLoss 是輸入的每一個元素帶入sigmoid函數(shù)之后 再同標簽計算BCE loss
        self.loss_fcn = nn.BCEWithLogitsLoss(reduction='none')  # must be nn.BCEWithLogitsLoss()
        self.alpha = alpha#這個應(yīng)該算是一個模糊系數(shù)吧 默認為0.05

    def forward(self, pred, true):
        # 得到了預測值和標簽值的BCE loss 注:預測值是經(jīng)過sigmoid函數(shù)處理再計算BCE的
        loss = self.loss_fcn(pred, true)
        pred = torch.sigmoid(pred)  # prob from logits  # 將預測值進行sigmoid處理 數(shù)學意義為每一位對應(yīng)類別出現(xiàn)的概率
        # 假定missing的標簽用一行0進行補齊,則相減之后missing的樣本概率不受影響,正常樣本樣本概率為絕對值較小的負數(shù)
        dx = pred - true  # reduce only missing label effects
        # dx = (pred - true).abs()  # reduce missing label and false label effects
        """
                torch.exp()函數(shù)就是求e的多少次方  輸入tensor每一個元素經(jīng)過計算之后返回對應(yīng)的tensor
                根據(jù)下式 對于正常的較大概率的樣本 dx對應(yīng)值為絕對值較小一個負數(shù) 假設(shè)為-0.12,則-1為-1.12除0.05 為-22.4,
                -22.4 指數(shù)化之后為一個很小很小的正數(shù),1-該正數(shù)之后得到的值較大 再在loss中乘上之后影響微乎其微
                而對于missing的樣本 dx對應(yīng)為一個稍大的正數(shù) 如0.3 減去1之后為-0.7 除以0.05 為 -14
                -14相比-22.4值為指數(shù)級增大,因此對應(yīng)的alpha_factor相比正常樣本顯著減小 在loss中較小考慮
                """
        # Q:有一個問題,為什么yolov5要對missing的樣本有這樣的容忍度,而不是選擇直接屏蔽掉對應(yīng)樣本呢?

        alpha_factor = 1 - torch.exp((dx - 1) / (self.alpha + 1e-4))
        loss *= alpha_factor
        return loss.mean() # 這個mean的意義應(yīng)該為對一批batch中的每一個樣本得到的BCE loss求均值作為返回值

二分類交叉熵損失函數(shù)
之前的分類損失是各個訓練樣本交叉熵的直接求和,也就是各個樣本的權(quán)重是一樣的,計算公式如下:
YOLOV5中損失函數(shù)即代碼講解
因為是二分類,p表示預測樣本屬于1時的概率,y表示標簽,y的取值范圍為{+1,-1}
YOLOV5中損失函數(shù)即代碼講解
對于正樣本的預測,預測輸出越接近真實樣本標簽y=1, 損失函數(shù)L越??;預測輸出越接近0,L越大。
YOLOV5中損失函數(shù)即代碼講解
Focal Loss損失函數(shù)講解
focal loss,這個損失函數(shù)是在標準交叉熵損失基礎(chǔ)上修改得到的
YOLOV5中損失函數(shù)即代碼講解文章來源地址http://www.zghlxwxcb.cn/news/detail-436950.html

到了這里,關(guān)于YOLOV5中損失函數(shù)即代碼講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包