logo
Loading...

Normalize的作法 - Cupoy

請專家解釋一下以下HW的normalize function(請見以下程式)## Normalize...

cvdl-1,cvdl-1-d15

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