42、经典面试题:训练和推理中的BN有什么不一样

参加过深度学习面试的同学,大部分可能都会刷过一些面试经验贴,其中也会有不少关于 BN 的面试贴。

对于这个算法,一个经典的问法并不是让你手写算法,而是会问你在训练过程中和推理过程中,批归一化算法相同吗?如果你回答相同,那基本就没戏了。

既然这么问,那肯定就是不同的,具体怎么个不同法呢?

均值和方差的处理不一样

一个完整的训练过程是需要经过很多轮次的迭代。对于 BN 算法,在训练过程大概是要经过以下这么几步的:

  1. 对每一样本计算均值和方差

  2. 使用计算的均值和方差对输入数据进行标准化

  3. 对标准化后的数据进行缩放和平移,通过可学习的参数进行调整

  4. 在下一轮反向传播中计算梯度并再一次更新参数

其他的我们暂时先不管,先看第 1 条和第 2 条。

每个小批次都会计算一次均值和方差,也就是说如果我分了 10 个批次来训练模型,那岂不是要计算出 10 批均值和方差吗?计算出来的这 10 个均值和方差都是局部均值和局部方差。

而在推理过程,我们需要的是所有训练数据训练出来的一个全局均值和全局方差,那怎么办呢?

这就需要对训练的局部均值和方差做一个处理,下面看一些在推理过程中 BN 要经过哪些过程。

针对 BN 算法,在推理过程大概要经过以下几步:

  1. 使用训练过程中累积的均值和标准差对输入数据进行标准化。

  2. 对标准化后的数据进行缩放和平移,使用训练过程中学到的参数。

  3. 不再更新参数,因为推理阶段不进行反向传播。

  4. <
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值