Я использую ZCA Отбеливание как шаг предварительной обработки для 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), чтобы получить беленную версию входного изображения? Мне кажется, что я неправильно понимаю какой-то важный шаг в этом процессе.
Спасибо!