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])