Я пытаюсь реализовать нормализатор в Eigen.
Функциональность, которую он пытается достичь, следующая:
Xnorm = (X - np.mean(X, axis=0))/(np.std(X, axis=0))
(эквивалентная цифра)
На основном этапе нормализации у меня есть функция:
typedef Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
matrix_eig;
typedef Eigen::Matrix<float, Eigen::Dynamic, Eigen::RowMajor> vector_eig;
matrix_eig Normalizer::Transform(const matrix_eig &X) {
// mean_ and std_ are vector_eig types
matrix_eig centered = X.rowwise() - mean_.transpose();
// Below line doesnt work since '/' is not allowed for matrices
return centered.rowwise()/std_;
}
У меня вопрос, как именно я могу сделать что-то вроде centered.rowwise().array()
?