pytorch中的BatchNorm和LayerNorm
程序员文章站
2022-07-13 11:38:18
...
参考文章
https://blog.csdn.net/weixin_39228381/article/details/107896863
https://blog.csdn.net/weixin_39228381/article/details/107939602
-
BatchNorm是在batch方向(每个batch的列方向)进行归一化:
import torch.nn as nn import torch if __name__ == '__main__': norm = nn.BatchNorm1d(4, affine=False) inputs = torch.FloatTensor([[1,2,3,4], [5,6,7,8]]) print(inputs) output = norm(inputs) print(output) ''' tensor([[-1.0000, -1.0000, -1.0000, -1.0000], [ 1.0000, 1.0000, 1.0000, 1.0000]]) '''
-
LayerNorm是在每个batct的行方向上进行归一化:
import torch.nn as nn import torch if __name__ == '__main__': norm = nn.LayerNorm(4) inputs = torch.FloatTensor([[1,2,3,4], [5,6,7,8]]) output = norm(inputs) print(output) ''' tensor([[-1.3416, -0.4472, 0.4472, 1.3416], [-1.3416, -0.4472, 0.4472, 1.3416]], grad_fn=<NativeLayerNormBackward>) '''
- 详细计算过程可参考上方链接,在计算过程中,需要注意样本方差的无偏估计和有偏估计
有偏和无偏的区别在于无偏的分母是N-1,有偏的分母是N。
- 详细计算过程可参考上方链接,在计算过程中,需要注意样本方差的无偏估计和有偏估计
推荐阅读
-
Linux中df命令查询磁盘信息和fdisk命令分区的用法
-
Linux系统中列出PCI设备和USB设备的命令详解
-
设计一个算法:用不多于3n/2的平均比较次数,在数组A[1,...,n]中找出最大值和最小值的元素
-
设计一个最优算法来查找一n个元素数组中的最大值和最小值
-
JavaScript中的apply()方法和call()方法使用介绍_javascript技巧
-
详解PHP中cookie和session的区别及cookie和session用法小结,cookiesession
-
详解Vue中数组和对象更改后视图不刷新的问题
-
php中cookie跨域的解决方案以及IE和safari浏览器中的坑
-
在Windows中安装Apache2和PHP4的权威指南_php基础
-
Javascript-Mozilla和IE中的一个函数直接量的问题分析_javascript技巧