Pytorch BatchNorm

Pytorch BatchNormal

文章目录

  • Pytorch BatchNormal
    • BatchNormal使用原理
    • 代码实现
      • Image Normalization
      • Batch Normalization
    • eg:
      • Batch Norm
      • Layer Norm
      • Insatnce Norm
    • 处理过程
    • 代码实现
      • 正式写法
      • BatchNorm2d
        • 全局打印
    • 处理结果

BatchNormal使用原理

Pytorch BatchNorm_第1张图片
sigmoid函数一般会在(-4-4)的范围内,有较大变动,当超出了以后就不能很好显示,这是使用BatchNorm,将数据映射以0为均值,到(-1,1)范围内,以便于计算

Pytorch BatchNorm_第2张图片
当采用梯度下降时,如果由w2方向下降,很容易进行变换,但是当w1方向时,很难变换,此时可以使用batchnormal达到右图效果,这样任何方向内,梯度下降的效果都相同
Pytorch BatchNorm_第3张图片

代码实现

Image Normalization

Pytorch BatchNorm_第4张图片
eg:
Pytorch BatchNorm_第5张图片
将R,G,B三个求出均值std,然后使用noralization,使数据分布更加均匀,以便于找到最优解

Batch Normalization

四种Batch Normalization
Pytorch BatchNorm_第6张图片

eg:

Batch Norm

Pytorch BatchNorm_第7张图片
数据的结构:[N,C,HW]

N:图片数量 C:RGB,三种色彩 HW:像素点

对N方向(eg:6张图片),采集6张图片的784个图片像素点,求一个均值,生成维度为3的一个batch

Layer Norm

统计当前图片的数据的C和HW整体均值

Insatnce Norm

统计当前图片,当前色彩RGB下的一个像素点HW均值

处理过程

Pytorch BatchNorm_第8张图片
Pytorch BatchNorm_第9张图片
方差
在这里插入图片描述
统计数据
在这里插入图片描述
处理结果会更加接近N(0,1)的正态分布

Pytorch BatchNorm_第10张图片
这两个参数需要学习得到

代码实现

Pytorch BatchNorm_第11张图片
数据集为[100,16,784] 100个图片,16个经历过池化层的数据,784的像素

统计16个batch的batchnormal

正式写法

Pytorch BatchNorm_第12张图片

BatchNorm2d

Pytorch BatchNorm_第13张图片

全局打印

Pytorch BatchNorm_第14张图片

处理结果

Pytorch BatchNorm_第15张图片

更加便于训练,拟合训练曲线效果更好,拟合速度更快

更加容易搜索到最优解,梯度信息更加明显,参数调整更加方便

你可能感兴趣的:(pytorch)