2017-11-04 55 views
0

是谷歌告訴我的是:如何將ZCA應用於內存有限的大型圖像數據集?

  1. 對於kerasImageDataGenerator功能似乎已經可以開箱即用的zca_whitening。但是如果設置了該選項,則需要在整個數據集X上調用ImageDataGenerator.fit。所以這不是一個選項。

  2. 對於sklearnIncrementalPCA似乎與一個巨大的數據集一起工作,但我不知道如何將PCA旋轉到ZCA的發生器風格。

感謝您的幫助!

回答

0

我已經定義可能會有所幫助繼ZCA transformation功能:

def ZCAtransform(X,IPCA_model): 
     # get the Eigenvectors and Eigenvalues 
     U = IPCA_model.components_.transpose() 
     S = np.sqrt(IPCA_model.explained_variance_) 
     Xdemeand = (X-np.mean(X,0)).transpose() 

     #get the transformed data 
     # Xproj' = U * diag(1/(S+I*epsilon)) * U' * X_data 
     return (U.dot(np.diag(1/(S+IPCA_model.noise_variance_))).dot(U.transpose()).dot(Xdemeand)).transpose() 

Xproj = ZCAtransform(X, ipca) 

繼在給定的example Scikit學習,我能夠生成虹膜數據集的ZCA如下圖所示:

ZCAWhitened PCA

相關問題