作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谷歌告诉我的是:
对于keras
,ImageDataGenerator
函数似乎有一个可以开箱即用的zca_whitening。但如果设置了此选项,则需要在整个数据集 X 上调用 ImageDataGenerator.fit
。所以这不是一个选项。
对于sklearn
,IncrementalPCA
似乎可以处理巨大的数据集,但我不知道如何以生成器样式将PCA旋转为ZCA。
感谢您的帮助!
最佳答案
我定义了一个可能对 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-learn,我能够生成 Iris 数据集的 ZCA,如下所示:
关于machine-learning - 如何在内存有限的巨大图像数据集上应用zca?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47106943/
我正在训练 1000 张 28x28 大小的图像。但在训练之前,我引用How to implement ZCA Whitening? Python对我的数据进行ZCA白化。 . 由于我有1000张尺寸
我是一名优秀的程序员,十分优秀!