diff --git a/src/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp b/src/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp index da41bc3faa..e2b2011bcc 100644 --- a/src/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp +++ b/src/mlpack/methods/ann/dists/bernoulli_distribution_impl.hpp @@ -47,9 +47,11 @@ BernoulliDistribution::BernoulliDistribution( template DataType BernoulliDistribution::Sample() const { - DataType sample; - sample = arma::conv_to::from(arma::randu - (probability.n_rows, probability.n_cols) <= probability); + DataType sample = arma::randu + (probability.n_rows, probability.n_cols); + + for (size_t i = 0; i < sample.n_elem; i++) + sample(i) = sample(i) < probability(i); return sample; } @@ -69,7 +71,7 @@ void BernoulliDistribution::LogProbBackward( if (!applyLogistic) { output = observation / (probability + eps) - (1 - observation) / - (1 - probability); + (1 - probability + eps); } else {