Normalize的作法
2019/12/13 下午 03:14
電腦視覺深度學習討論版
周乃森
觀看數:36
回答數:2
收藏數:2
cvdl-1
cvdl-1-d15
請專家解釋一下以下HW的normalize function(請見以下程式)
## Normalize Data
def normalize(X_train,X_test):
mean = np.mean(X_train,axis=(0,1,2,3))
std = np.std(X_train, axis=(0, 1, 2, 3))
X_train = (X_train-mean)/(std+1e-7)
X_test = (X_test-mean)/(std+1e-7)
return X_train, X_test,mean,std
## Normalize Training and Testset
x_train, x_test,mean_train,std_train = normalize(x_train, x_test)
因為之前常常看到的是以下做法
x_train_nor = np.array([xt for xt in x_train]) / 255
print(x_train_nor.shape)
x_test_nor = np.array([xt for xt in x_test]) / 255
print(x_test_nor.shape)
回答列表
-
2019/12/13 下午 05:52張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
嗨,這是兩種不同的 Normalize 作法,以下:
1. min max normalization:會將特徵數據按比例縮放到0到1的區間,(或是-1到1)。
2. standard deviation normalization:會將所有特徵數據縮放成平均為0、平方差為1。
-
2019/12/13 下午 05:54楊哲寧贊同數:3不贊同數:0留言數:1
您好,我們常見的前處理包含Normalization 和 Standardization,狹義的Normalization 指的是將所有資料rescale到0-1之間,在影像中/255就是其中一種,上方程式部分比較正確的名稱是Standardization,也就是將所有的資料-平均值/STD,之所以會加上一個很小的值是為了避免分母為0,算是廣義的Normalization ,這種方式結果有正有負。兩者使用情境主要是看訓練任務與資料型態,而在圖像的問題上並沒有明顯差異,詳細可參考:https://towardsdatascience.com/normalization-vs-standardization-quantitative-analysis-a91e8a79cebf