1

我正在經歷the MNIST tensorflow tutorial,並想知道,該數據集是如何進行預處理。特別是,我認爲圖像通常具有整數值來表示像素的強度。例如,在0到255範圍內是我的想法。但是,當我檢查其中一個像素值時,我獲得了浮點值,這與我所期望的不同。檢查矢量的末端:在MNIST教程中如何預處理MNIST數據集?

0.80784321,0.96470594,0.6156863,0。,0,0 ,0.1,0.1,0.1,0.1, 0。,0,0,0 。,0,0 ,0.1,0.1,0.1,0.1, 0。,0,0,0,0,0 ,0.1,0.01568628,0.45882356,0.27058825, 0。,0,0,0,0,0 ,0.1,0.1,0.1,0.1, 0。,0,0,0,0,0 。,0。,0,0,0,0 ,0.1,0.1,0.1,0.1, 0。,0,0,0,0,0 , 0.,0,0,0,0。 0。,0,0,0])

要檢查是否也許就是進行標準化,使得每個矢量是單位範數我所做的:

from numpy import linalg as LA 
LA.norm(X_train[0,:]) 
10.20854430695328 

但可以看出,範數向量大於1.

因此,我認爲可能它們沒有按照我的想法縮放,也許它們是使用統計規範化進行縮放的,如Z = X - mu/ std。爲了檢查這個假設,我通過the scipy tutorial來縮放圖像。爲此,我查了數據的平均值,並使用該命令的標準偏差:

X_train.mean(axis=0) 

X_train.std(axis=0) 

當我這樣做,我得到了什麼人是不規範的載體,即他們沒有沒有平均0也不標準dev的1的平均一個所述:

 1.48377906e-04, 3.16577558e-04, 4.71443878e-04, 
    7.53226424e-04, 1.28991095e-03, 1.64713022e-03, 
    1.94303042e-03, 2.20263827e-03, 2.67707680e-03, 
    2.33504470e-03, 1.88178264e-03, 1.35629241e-03, 
    7.74688105e-04, 3.29839591e-04, 1.72834236e-04, 
    6.32442098e-05, 5.16221064e-05, 8.55615031e-06, 
    0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 
    0.00000000e+00]) 

和STD一個所述:

 9.73316794e-03, 1.48564994e-02, 1.79109386e-02, 
    2.39294057e-02, 2.96610268e-02, 3.52616872e-02, 
    3.74964883e-02, 3.94864147e-02, 4.46018863e-02, 
    4.14498684e-02, 3.67526868e-02, 3.19768868e-02, 
    2.35492900e-02, 1.51583259e-02, 1.10631365e-02, 
    6.06049238e-03, 6.49226612e-03, 1.41963927e-03, 
    0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 
    0.00000000e+00]) 

因此,我想知道,如何在tensorflow教程預處理,因爲我用盡了所有我有可能性MNIST數據集。

回答

0

如果你有一個矢量數據,讓我們MNIST調用它,你可以檢查什麼是最大值。

numpy.amax(mnist) 

應該產生1,因此意味着向量中的所有值都在0和1之間,因此標準化。