From 28aba742510b6470995d1c4cd55d92e580efdb1b Mon Sep 17 00:00:00 2001 From: Manuel Guenther <manuel.guenther@idiap.ch> Date: Fri, 8 May 2015 16:12:19 +0200 Subject: [PATCH] Moved initialization of cache of KMeansTrainer to where it belongs. --- bob/learn/em/cpp/KMeansTrainer.cpp | 18 +++++++++--------- .../em/include/bob.learn.em/KMeansTrainer.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bob/learn/em/cpp/KMeansTrainer.cpp b/bob/learn/em/cpp/KMeansTrainer.cpp index 9ab18d6..0c6e3c6 100644 --- a/bob/learn/em/cpp/KMeansTrainer.cpp +++ b/bob/learn/em/cpp/KMeansTrainer.cpp @@ -24,11 +24,11 @@ m_firstOrderStats(0) bob::learn::em::KMeansTrainer::KMeansTrainer(const bob::learn::em::KMeansTrainer& other){ - - m_initialization_method = other.m_initialization_method; + + m_initialization_method = other.m_initialization_method; m_rng = other.m_rng; m_average_min_distance = other.m_average_min_distance; - m_zeroethOrderStats = bob::core::array::ccopy(other.m_zeroethOrderStats); + m_zeroethOrderStats = bob::core::array::ccopy(other.m_zeroethOrderStats); m_firstOrderStats = bob::core::array::ccopy(other.m_firstOrderStats); } @@ -160,9 +160,6 @@ void bob::learn::em::KMeansTrainer::initialize(bob::learn::em::KMeansMachine& km kmeans.setMean(m, new_mean); } } - // Resize the accumulator - m_zeroethOrderStats.resize(kmeans.getNMeans()); - m_firstOrderStats.resize(kmeans.getNMeans(), kmeans.getNInputs()); } void bob::learn::em::KMeansTrainer::eStep(bob::learn::em::KMeansMachine& kmeans, @@ -206,12 +203,16 @@ double bob::learn::em::KMeansTrainer::computeLikelihood(bob::learn::em::KMeansMa } -bool bob::learn::em::KMeansTrainer::resetAccumulators(bob::learn::em::KMeansMachine& kmeans) +void bob::learn::em::KMeansTrainer::resetAccumulators(bob::learn::em::KMeansMachine& kmeans) { + // Resize the accumulator + m_zeroethOrderStats.resize(kmeans.getNMeans()); + m_firstOrderStats.resize(kmeans.getNMeans(), kmeans.getNInputs()); + + // initialize with 0 m_average_min_distance = 0; m_zeroethOrderStats = 0; m_firstOrderStats = 0; - return true; } void bob::learn::em::KMeansTrainer::setZeroethOrderStats(const blitz::Array<double,1>& zeroethOrderStats) @@ -225,4 +226,3 @@ void bob::learn::em::KMeansTrainer::setFirstOrderStats(const blitz::Array<double bob::core::array::assertSameShape(m_firstOrderStats, firstOrderStats); m_firstOrderStats = firstOrderStats; } - diff --git a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h index de59020..8845b50 100644 --- a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h +++ b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h @@ -105,7 +105,7 @@ class KMeansTrainer * @brief Reset the statistics accumulators * to the correct size and a value of zero. */ - bool resetAccumulators(bob::learn::em::KMeansMachine& kMeansMachine); + void resetAccumulators(bob::learn::em::KMeansMachine& kMeansMachine); /** * @brief Sets the Random Number Generator @@ -144,7 +144,7 @@ class KMeansTrainer private: - + /** * @brief The initialization method * Check that there is no duplicated means during the random initialization -- GitLab