Caffe loss 精讲

版权声明:本文为博主原创文章,如需转载请附上博文链接 https://blog.csdn.net/wendygelin/article/details/88684351

每一次训练迭代,都会向前传播,产生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并没有加入正则项的惩罚:

猜你喜欢

转载自blog.csdn.net/wendygelin/article/details/88684351