def bn_forward(X, gamma, beta, cache, momentum=.9, train=True):
running_mean, running_var = cache
if train:
mu = np.mean(X, axis=0)
var = np.var(X, axis=0)
X_norm = (X - mu) / np.sqrt(var + c.eps)
out = gamma * X_norm + beta
cache = (X, X_norm, mu, var, gamma, beta)
running_mean = util.exp_running_avg(running_mean, mu, momentum)
running_var = util.exp_running_avg(running_var, var, momentum)
else:
X_norm = (X - running_mean) / np.sqrt(running_var + c.eps)
out = gamma * X_norm + beta
cache = None
return out, cache, running_mean, running_var
评论列表
文章目录