diff --git a/source/Rbm.cpp b/source/Rbm.cpp index b620b8a..63447f3 100644 --- a/source/Rbm.cpp +++ b/source/Rbm.cpp @@ -240,7 +240,8 @@ arma::mat Rbm::sample(const arma::mat &src) { arma::mat dst = src; uniform(dst); - + +#if 0 for (size_t i=0; i < src.n_rows; i++) { for (size_t j=0; j < src.n_cols; j++) @@ -249,6 +250,11 @@ arma::mat Rbm::sample(const arma::mat &src) } } return dst; +#else + arma::umat res = (dst < src); + return arma::conv_to::from(res); + +#endif } arma::mat Rbm::v_to_h(const arma::mat &visible) const @@ -275,7 +281,7 @@ arma::mat Rbm::normalize(const arma::mat& src) void Rbm::uniform(arma::mat& srcDst, double stdDev, double mu) { -#if 1 +#if 0 for (size_t i=0; i < srcDst.n_rows; i++) { for (size_t j=0; j < srcDst.n_cols; j++) @@ -284,7 +290,7 @@ void Rbm::uniform(arma::mat& srcDst, double stdDev, double mu) } } #else - srcDst = stdDev*(arma::randu(srcDst.n_rows, srcDst.n_cols) + mu - 0.5); + srcDst = stdDev*(arma::randu(arma::size(srcDst)) + mu - 0.5); #endif }