BatchNormalization 代码实现

BatchNormalization是神经网络中的一种参数初始化技术,通过规范化输入层来加速训练和改进模型性能。文章详细介绍了BatchNormalization的算法流程,并以门电路的形式展开解释前向传播和后向传播过程。在前向传播中,给出了简洁的代码实现;而在反向传播时,强调了求导过程中处理多个支路的加和操作,提示在处理复杂表达式时分步求导的重要性。
摘要由CSDN通过智能技术生成

BatchNormalization是神经网络中常用的参数初始化的方法。其算法流程图如下:
这里写图片描述

我们可以把这个流程图以门电路的形式展开,方便进行前向传播和后向传播:
这里写图片描述

那么前向传播非常简单,直接给出代码:

def batchnorm_forward(x, gamma, beta, eps):

  N, D = x.shape
  #为了后向传播求导方便,这里都是分步进行的
  #step1: 计算均值
  mu = 1./N * np.sum(x, axis = 0)

  #step2: 减均值
  xmu = x - mu

  #step3: 计算方差
  sq = xmu ** 2
  var =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值