【Caffe细致入微】Solver_Step

本文详细探讨了Caffe中Solver的Step函数,该函数是优化过程的核心,涉及损失处理、平均滤波、重要变量解释、测试阶段、权重更新等关键步骤。通过对损失值的平均处理来减小噪声,以及在训练过程中调整batch_size和正则化策略,以优化模型性能。
摘要由CSDN通过智能技术生成

void Solver::Step(int iters)

【Introduction】简单的说,这个函数就是核心的优化方法,不断通过前向和反向传播来更新参数的过程。

【Loss处理——均值滤波(广泛应用)】
template <typename Dtype>
void Solver<Dtype>::UpdateSmoothedLoss(Dtype loss, int start_iter, int average_loss)

每一次训练迭代都会进行前向传播,就会得到loss值。这个函数的作用就是把几次的loss进行平均化处理。

  • 若average_loss为1:loss_容器里面只存当前获得的真实loss值,而smooth_loss_当然也是这个值

  • 若average_loss为n:loss_容器里面就会存储前n个loss的值,而smooth_loss_相当于做了一个loss平均

【你可能会问】这么做好处是什么?

当然无论average_loss为多少,最终都是为了展示训练之后的loss,但是我们当然要从loss中得到一些信息和经验,比如,这一阶段的训练的效果等。平均值会比个体值更加客观的刻画整个集合。做这样的平均其实应用有很多,主要是去除掉一些噪音,让得到的值更加可信。caffe中默认average_loss为1。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值