1.batchnorm2d
深刻理解
对一批数据,计算各个维度上的均值和标准差,一批数据有几个维度,就有几个均值,下面代码加红部分,一批数据(2,3,64,64),均值有3个
m = nn.BatchNorm2d(3,affine=True)
input = torch.randn(2, 3, 64, 64)
output = m(input)
print(m)
print(output)
2.numpy数据归一化
1)最值归一化: 把所有的数据映射到0-1之间
适用:有明显边界的情况
x为m行n列的数据
x[:, 0] = (x[:, 0] - np.min(x[:, 0]))/(np.max(x[:, 0]) - np.min(x[:,0])) # 对第0列(第一个特征)进行最值归一化
2)均值方差归一化(Standardization):
把所有数据归一到均值为0方差为1的数据中
既适用于数据没有明显的边界,有可能存在极端数据值的情况。也适用于数据有明显边界的情况
x为m行n列的数据,对第0列进行均值方差归一化代码如下
import numpy as np
x[:, 0] = (x[:, 0] - np.mean(x[:, 0])) / np.std(x[:, 0])