每一次訓練疊代,都會向前傳播,産生loss值。
Loss部分在solver檔案中,有兩個參數:
1. average_loss
預設值是1,Loss為單個iteration對應的loss;
當設定average_loss = n , 則Loss為n個Loss的均值,相當于做個均值濾波。
2. weight_decay
為正則項在Loss函數中的系數。如果過拟合,調大這個參數;如果欠拟合,調小這個參數;
(代碼可以在solver.cpp檔案中檢視)
最終正則項的懲罰 是solver.prtotxt中設定的懲罰項weight_decay與layer中的decay_mult的乘積。若不想讓某一些參數加入正則項中,則将layer中的對應param中的參數decay_mult設定為0。例如,一般把bias的decay_mult設定為0,代表bias不加入到正則項的優化中。
layer中有非零的loss_weight,這層的最後blob乘上對應的loss_weight累加到Loss中。
在顯示過程中,顯示的Loss為n(average_loss的值)個Loss平均後的值,且顯式的loss并沒有加入正則項的懲罰:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9QzVhNnVyoVNS1mYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zROBlL2QTNwETMxITMwIzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)