caffe 更新权重的理解

来源:互联网 发布:linux 内核参数 编辑:程序博客网 时间:2024/05/26 09:56
1.caffe 在做train时,每一步Step当中,要做iter_size次forward_backward迭代计算,其中每一次foward_backward计算都会产生权重的残差diff,那么做iter_size次forward_backward计算就会产生iter_size次diff残差,SGDSolver会把这iter_size个diff残差做一个平均计算,取其平均值作为本次Step的权值diff,计算均值的过程是在函数Normalize(int   param_id) 函数中进行的,在Normalize(int   param_id) 函数之后,紧接着时Regularize(int   param_id )函数,该函数的作用是根据求解器描述文件中事先指定的weight_decay参数,以及net网路描述文件中每层layer中指定的weight_decay参数(可选,默认不指定)对  均值diff进行微调,当net中的某一层没有指定weight_decay参数时,其weight_decay默认值会为0, 结果是该层的均值diff不会被进行任何微调。微调(可选)后的diff再乘以本层的lr学习率,得到的diff就是本次Step最终用来更新本层weight的值。
原创粉丝点击