diff --git a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h index e3d53a5cddf38ce06d9841d836a2bfb0030c394d..de590202458756e5877973b70bc64031832f7ec5 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 d346272623804cb13a0bc38c7581074f5e702c49..92da9c1a096bab332d68bb06163ecaab6a24d04b 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')");