python - 如何将 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) 矩阵以获得输入图像的白化版本?我觉得我误解了这个过程中的一些关键步骤。
谢谢!
解决方案
推荐阅读
- haskell - 用 Haskell 的 Parsec 解析浮点数
- wordpress - Wordpress 生成链接标签
- go - 无法生成覆盖
- linux - 如何将字符串中的转义字符变成更多的转义字符?
- encoding - 一个时钟中的两个比特,
- html - 从 a 的其余悬停效果中避免对 img 和标题超链接的悬停效果
- c# - 使用 C# 控制台应用程序运行时 FetchXML 返回 0 条记录
- opencv - 使用 opencv 为图像添加光泽度/光泽度
- jquery - 如何从其他输入的一个div中获取可见行并删除由css隐藏的所有其他行
- node.js - 如何从express js中的api路由定义或获取变量的值