首页 > 解决方案 > 如何将 ZCA Whitening 的主成分应用于深度学习推理

问题描述

我正在实施 ZCA Whitening 作为 CNN 的预处理步骤。在这篇博文和其他几个来源之后,我已经能够获得 ZCA 矩阵并将其应用于训练数据集(由 5000 张尺寸为 64x200 的图像组成):

# Covariance matrix
cov = np.cov(X, rowvar=True)
# Single Value Decomposition
U,S,V = np.linalg.svd(cov)
# Epsilon value
epsilon = 0.1
# ZCA Matrix principal_components. 
tmp = np.dot(U, np.diag(1/np.sqrt(S+epsilon)))
principal_components = np.dot(tmp, U.T)
principal_components.shape
> (5000,5000)

给定匹配数量的示例,将此矩阵应用于训练集是微不足道的。我的问题是,如何在训练后的推理时间内将其应​​用于测试示例?

鉴于我有一个 (64x200) 形状的图像,我应该如何乘以 (5000,5000) 矩阵以获得输入图像的白化版本?我觉得我误解了这个过程中的一些关键步骤。

谢谢!

标签: pythonnumpyimage-processingdeep-learningcomputer-vision

解决方案


推荐阅读