From 4a16926030e6d11fb92f5bfc8c8eff59df55e650 Mon Sep 17 00:00:00 2001 From: jens Date: Mon, 22 Jan 2024 19:53:12 +0100 Subject: [PATCH] - improved training data normalization --- source/matutils.hpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/source/matutils.hpp b/source/matutils.hpp index 4a8692d..730a432 100644 --- a/source/matutils.hpp +++ b/source/matutils.hpp @@ -55,17 +55,24 @@ namespace Matutils #endif } - + inline arma::mat normalize(const arma::mat& src) { - double mean = arma::accu(src)/src.n_elem; - arma::mat x = src - mean; - arma::mat x2 = x % x; - double stddev = sqrt(arma::accu(x2)/x2.n_elem); - + std::cout << "Normalizing Training Data ..." << std::endl; +#if 0 + // Normalize over training all training pattern + arma::mat xn = arma::normalise(src, 2, 0); + arma::mat mean = arma::mean(src, 0); + arma::mat stddev = arma::stddev(src, 0); +#else + // Normalize over single training pattern + arma::mat xn = arma::normalise(src, 2, 1); + arma::mat mean = arma::mean(src, 1); + arma::mat stddev = arma::stddev(src, 1); +#endif std::cout << "mean" << " : " << std::endl << mean << std::endl; std::cout << "stddev" << ": " << std::endl << stddev << std::endl; - return x/stddev; + return xn; } inline arma::mat char2vec(char c, size_t len)