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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > Caffe >内容正文

Caffe

Caffe 训练时loss等于87.3365且保持不变的原因及解决方法

發布時間:2025/3/15 Caffe 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Caffe 训练时loss等于87.3365且保持不变的原因及解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如題,在caffe訓練時,遇到這個特殊的數字之后,loss會一直就是這個數字。
網上雖然有很多針對這個問題調參的trick,但少有詳細的分析,因此,有必要研究一下caffe的源代碼。
softmax的公式為

pk=exp(xk)iexp(xi)pk=exp(xk)∑iexp(xi)
其中x為softmax前一層的輸出

softmax的loss計算公式也很簡單,就是對softmax之后預測的概率做對數似然函數

loss=?kyklog(pk)loss=?∑kyklog(pk)
其中y是label,若類別數為N,則y為N維。對于單label情況,N維中只有一維為1,其他為零,計算loss時僅需考慮label中非零那一維即可(實際使用中單label用一個數字記錄)
此時
loss=?log(P{k==label})loss=?log(P{k==label})
在softmax_loss_layer.cpp的原碼中,就是由label的非零維直接計算loss的

loss -= log(std::max(prob_data[i * dim + label_value * inner_num_ + j],Dtype(FLT_MIN)));

loss的最大值由FLT_MIN得到,FLT_MIN定義為1.17549435E-38F,這個數字的自然對數正好就是
-87.3356,算loss時需要取負值,結果就能了87.3356。

**這說明softmax計算得到概率值出現了零(由于float類型所能表示的最小數值是10?3810?38,比這個值還小的無法表示,只能是零)
而softmax是用指數函數計算的,指數函數的值都是大于零的。因此,我們有理由相信,計算過程中出現了float溢出等異常,出現了inf,nan等異常數值導致softmax輸出為零
最后我們發現,當softmax之前的feature值過大時,由于softmax先求指數,會超出float數據范圍,成為inf。inf與其他任何數值的和都是inf,softmax在做除法時任何正常范圍的數值除以inf都會變為0。然后求loss時log一下就出現了87.3356這樣的值。**

以下是模擬訓練的loss代碼,觀察feature數值范圍對loss的影響:

#include <iostream> #include <math.h> #include <float.h>using namespace std;int main() {float f[] = {100, 20};cout << "feature: " << f[0] << ", " << f[1] << endl;float f_exp[] = {expf(f[0]), expf(f[1])};cout << "exp: " << f_exp[0] << ", " << f_exp[1] << endl;float sum = f_exp[0] + f_exp[1];cout << "sum: " << sum << endl;float softmax[] = {f_exp[0]/sum, f_exp[1]/sum};cout << "softmax: " << softmax[0] << ", " << softmax[1] << endl;float loss[] = {-log(max(softmax[0], FLT_MIN)), -log(max(softmax[1], FLT_MIN))};cout << "loss: " << loss[0] << ", " << loss[1] << endl;return 0; }

解決方法:
知道了原因,解決時就能對癥下藥。總體上看,softmax輸入的feature由兩部分計算得到:一部分是輸入數據,另部分是各層權重參數。
1、觀察數據中是否有異常樣本或異常label導致數據讀取異常
2、調小初始化權重,以便使softmax輸入的feature盡可能變小
3、降低學習率,這樣就能減小權重參數的波動范圍,從而減小權重變大的可能性。這條也是網上出現較多的方法。
4、如果有BN(batch normalization)層,finetune時最好不要凍結BN的參數,否則數據分布不一致時很容易使輸出值變的很大。

總結

以上是生活随笔為你收集整理的Caffe 训练时loss等于87.3365且保持不变的原因及解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品香蕉在线观看 | 国产真实交换夫妇视频 | 亚洲av无一区二区三区 | 色爽影院| 欧美黑人性xxx | 九七av | 成人国产免费 | 欧美自拍偷拍第一页 | 毛片内射久久久一区 | 亚洲精品国产欧美 | 久久免费看毛片 | 巨乳中文字幕 | 国产精品国产精品国产专区不片 | 婷婷丁香一区二区三区 | 制服丝袜一区二区三区 | 爱如潮水3免费观看日本高清 | 国产欧美日韩一区 | 国产综合亚洲精品一区二 | 亚洲精品一线 | 毛片一二三区 | 国产精品一区二区三区高潮 | 免费成人在线电影 | 日韩人妻精品一区二区三区 | 337p亚洲精品色噜噜噜 | 中文字幕人妻一区二区在线视频 | 成年人在线免费 | 欧美大片大全 | 新呦u视频一区二区 | 91成人天堂久久成人 | 波多野结衣一二三区 | 亚洲一级影片 | 日韩中文字幕一区 | 亚洲免费一区二区 | 亚洲三级一区 | 最新中文字幕免费 | 日韩有码av | 国产欧美视频一区二区三区 | 中文字幕精品一区二区精 | 国产精品一二三四 | 一级做a爰片 | 99干99| 欧美一区三区 | 日韩av电影网址 | 播放灌醉水嫩大学生国内精品 | 国产午夜无码视频在线观看 | 欧美激情一区二区三区四区 | 亚洲精品在线观 | 欧美yyy| 日韩乱码一区二区三区 | 天堂久久精品忘忧草 | 国产欧美一区在线观看 | 日韩精品欧美激情 | 国产一区二区高清视频 | 天干夜天干天天天爽视频 | 亚洲美女网站 | 爱av导航| 欧美1区2区| 成年人在线视频免费观看 | 国产大学生自拍视频 | 九九热在线免费视频 | 久久人妻免费视频 | 狠狠操在线视频 | 日本一区二区三区免费观看 | 青青国产在线视频 | av成人精品 | 欧美r级在线观看 | 亚洲福利在线视频 | 精品成人无码久久久久久 | 深夜福利一区二区 | 日韩欧美黄色网址 | 手机在线永久免费观看av片 | 婷婷日 | 做暧暧视频在线观看 | 一级做a免费 | 日本一本在线观看 | 精品一区二区久久久 | 久久伊人在 | 久久国产精品视频 | 老公吃小头头视频免费观看 | 亚洲色图图| 久久久精品视频免费 | 理论片午午伦夜理片影院99 | 97超碰人人爱 | 久久久激情 | 在线免费看av片 | 久久国产精彩视频 | 久久久久国产精品一区 | 久久国内视频 | 亚洲熟妇av日韩熟妇在线 | 欧美人与牲动xxxx | 亚洲网址在线 | 亚洲精品视频在线观看视频 | 欧美在线你懂的 | 57pao国产成永久免费视频 | 久草视频免费在线 | 日本3级网站 | 向日葵视频在线 | 友田真希一区二区 | 欧洲av在线 |