https://blog.csdn.net/liuxiao214/article/details/81037416

http://www.dataguru.cn/article-13032-1.html

1. BatchNormalization

实现时,对axis = 0维度求均值和方差 -> 对一个batch求均值和方差

(Tensorflow代码)

 def Batchnorm_simple_for_train(x, gamma, beta, bn_param):
"""
param:x : 输入数据,设shape(B,L)
param:gama : 缩放因子 γ
param:beta : 平移因子 β
param:bn_param : batchnorm所需要的一些参数
eps : 接近0的数,防止分母出现0
momentum : 动量参数,一般为0.9, 0.99, 0.999
running_mean :滑动平均的方式计算新的均值,训练时计算,为测试数据做准备
running_var : 滑动平均的方式计算新的方差,训练时计算,为测试数据做准备
"""
running_mean = bn_param['running_mean'] #shape = [B]
running_var = bn_param['running_var'] #shape = [B]
results = 0. # 建立一个新的变量 x_mean=x.mean(axis=0) # 计算x的均值
x_var=x.var(axis=0) # 计算方差
x_normalized=(x-x_mean)/np.sqrt(x_var+eps) # 归一化
results = gamma * x_normalized + beta # 缩放平移 running_mean = momentum * running_mean + (1 - momentum) * x_mean
running_var = momentum * running_var + (1 - momentum) * x_var #记录新的值
bn_param['running_mean'] = running_mean
bn_param['running_var'] = running_var return results , bn_param

2. LayerNormaliztion

实现时,对axis = 1维度求均值和方差 -> 对一个样例的所有features的值求均值和方差

(Pytorch 代码,来自The Annotated Transformer)

 class LayerNorm(nn.Module):
"Construct a layernorm module (See citation for details)."
def __init__(self, features, eps=1e-6):
super(LayerNorm, self).__init__()
self.a_2 = nn.Parameter(torch.ones(features))
self.b_2 = nn.Parameter(torch.zeros(features))
self.eps = eps def forward(self, x):
mean = x.mean(-1, keepdim=True)
std = x.std(-1, keepdim=True)
return self.a_2 * (x - mean) / (std + self.eps) + self.b_2

最新文章

  1. eclipse按照svn插件
  2. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类
  3. iOS - UIColor
  4. c#和数据库技术基础之程序设计集散地-数据库
  5. Java:多个数求和
  6. Spring Autowiring by Constructor
  7. You Need This One Skill to Succeed in IT--reference
  8. ****JFinal 部署在 Tomcat 下推荐方法
  9. sql根据'/'截取最后的字符串
  10. Axure7.0.0.3155注册码
  11. NeHe OpenGL lession 4
  12. db2安装要设置tcp、ip
  13. HDU 1934 树状数组 也可以用线段树
  14. javascript的八张图
  15. Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动
  16. Java I/O---IO流的规律小结
  17. 如何解决python升级后yum报错
  18. Asp.Net Core SignalR 与微信小程序交互笔记
  19. 利用selenium爬取京东商品信息存放到mongodb
  20. spring boot1.0 集成quartz 动态配置定时任务

热门文章

  1. Fire Net(HDU-1045)(匈牙利最大匹配)(建图方式)
  2. Codeforces 1228D. Complete Tripartite
  3. 冒泡排序(java可直接跑,算法思想等小儿科不多说直接上代码)
  4. 11 Mysql之配置双主热备+keeepalived.md
  5. Nginx如何配置反向代理
  6. springboot启动出错,
  7. Mybatis实际练习
  8. mysql的导入导出操作
  9. jq选择CheckBox进行排序
  10. numpy中与金融有关的函数