diff --git a/source/matutils.hpp b/source/matutils.hpp index 730a432..6e34494 100644 --- a/source/matutils.hpp +++ b/source/matutils.hpp @@ -59,20 +59,29 @@ namespace Matutils inline arma::mat normalize(const arma::mat& src) { 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 + + // Dim = 0: Normalize over training all training pattern + // Dim = 1: Normalize over single training pattern + double k = 1; + size_t dim = 0; + arma::mat xn = arma::normalise(src, 2, dim); + arma::mat mean = arma::mean(xn, dim); + arma::mat stddev = arma::stddev(xn, 0, dim); + arma::mat stddev_m; + + if (dim==0) + { + stddev_m = arma::repmat(stddev, xn.n_rows, 1); + } + else + { + stddev_m = arma::repmat(stddev, 1, xn.n_cols); + } + + arma::mat y = 1/(1+arma::exp(-k*xn/stddev_m)); std::cout << "mean" << " : " << std::endl << mean << std::endl; std::cout << "stddev" << ": " << std::endl << stddev << std::endl; - return xn; + return y; } inline arma::mat char2vec(char c, size_t len)