From 2a640484783de87a484cf313da51da9633c72fe5 Mon Sep 17 00:00:00 2001 From: Tiago Freitas Pereira <tiagofrepereira@gmail.com> Date: Wed, 18 Feb 2015 12:38:06 +0100 Subject: [PATCH] Fixed the KMEANS PLUS PLUS bindings --- bob/learn/em/include/bob.learn.em/KMeansTrainer.h | 6 ------ bob/learn/em/kmeans_trainer.cpp | 8 +++++++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h index e3d53a5..de59020 100644 --- a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h +++ b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h @@ -42,12 +42,6 @@ class KMeansTrainer */ KMeansTrainer(InitializationMethod=RANDOM); - /* - KMeansTrainer(double convergence_threshold=0.001, - size_t max_iterations=10, bool compute_likelihood=true, - InitializationMethod=RANDOM);*/ - - /** * @brief Virtualize destructor */ diff --git a/bob/learn/em/kmeans_trainer.cpp b/bob/learn/em/kmeans_trainer.cpp index d346272..92da9c1 100644 --- a/bob/learn/em/kmeans_trainer.cpp +++ b/bob/learn/em/kmeans_trainer.cpp @@ -14,7 +14,13 @@ /******************************************************************/ // InitializationMethod type conversion -static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::em::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}}; + +#if BOOST_VERSION >= 104700 + static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::em::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}}; +#else + static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}}; +#endif + static inline bob::learn::em::KMeansTrainer::InitializationMethod string2IM(const std::string& o){ /* converts string to InitializationMethod type */ auto it = IM.find(o); if (it == IM.end()) throw std::runtime_error("The given InitializationMethod '" + o + "' is not known; choose one of ('RANDOM', 'RANDOM_NO_DUPLICATE', 'KMEANS_PLUS_PLUS')"); -- GitLab