图1:图2:图3:
图4:
1、nn.BatchNorm2d()
torch.nn.BatchNorm2d(num_features,
eps=1e-05,
momentum=0.1,
affine=True,
track_running_stats=True,
device=None,
dtype=None)
参数解析:
num_features, 输入图像的通道数量;
eps, 稳定系数,防止分母出现零;
momentum, 模型均值和方差更新时的参数;
affine, 代表gamma,beta是否可学。如果设为True,代表两个参数是通过学习得到的;如果设为False,代表两个参数是固定值,默认情况下,gamma是1,beta是0。
track_running_stats, 代表训练阶段是否更新模型存储的均值和方差,即测试阶段的均值与方差的计算方法采用第一种方法还是第二种方法。如果设为True,则代表训练阶段每次迭代都会更新模型存储的均值和方差(计算全局数据),测试过程中利用存储的均值和方差对各个通道进行标准化处理;如果设为False,则模型不会存储均值和方差,训练过程中也不会更新均值和方差的数据,测试过程中只计算当前输入图像的均值和方差数据(局部数据)。
公式如下:
作用:卷积层之后添加BatchNorm2d用来进行对数据的归一化处理,使得数据在进行Relu之前不会因为数据过大而导致网络性能的不稳定。
2、降采样:downsampling,
在做降采样(downsampling)的时候通常采用“抽取”,即在多个采样点中抽取一个点来达到降采样的作用。每隔D-1个点抽取1个点,这里的D为整数,就使得采样率从f降为f/D