diff --git a/dependencies/jsoncpp/include/reader.h b/dependencies/jsoncpp/include/reader.h index 8bc44ce..436cefa 100755 --- a/dependencies/jsoncpp/include/reader.h +++ b/dependencies/jsoncpp/include/reader.h @@ -28,7 +28,7 @@ namespace Json { /** \brief Unserialize a JSON document into a *Value. * - * \deprecated Use CharReader and CharReaderBuilder. + * Use CharReader and CharReaderBuilder. */ class JSON_API Reader { public: @@ -111,7 +111,7 @@ class JSON_API Reader { * \deprecated Use getFormattedErrorMessages() instead (typo fix). */ JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.") - std::string getFormatedErrorMessages() const; + std::string getFormatedErrorMessages() __deprecated; //const; /** \brief Returns a user friendly string that list errors in the parsed * document. @@ -120,7 +120,7 @@ class JSON_API Reader { * in * the parsed document. An empty string is returned if no error * occurred - * during parsing. + * during parsing. */ std::string getFormattedErrorMessages() const; diff --git a/dependencies/jsoncpp/include/value.h b/dependencies/jsoncpp/include/value.h index 1cfda07..7fdde23 100755 --- a/dependencies/jsoncpp/include/value.h +++ b/dependencies/jsoncpp/include/value.h @@ -483,11 +483,11 @@ Json::Value obj_value(Json::objectValue); // {} /// \pre type() is objectValue or nullValue /// \post type() is unchanged /// \deprecated - Value removeMember(const char* key); + Value removeMember(const char* key) __deprecated; /// Same as removeMember(const char*) /// \param key may contain embedded nulls. /// \deprecated - Value removeMember(const std::string& key); + Value removeMember(const std::string& key) __deprecated; /// Same as removeMember(const char* begin, const char* end, Value* removed), /// but 'key' is null-terminated. bool removeMember(const char* key, Value* removed); @@ -535,7 +535,7 @@ Json::Value obj_value(Json::objectValue); // {} /// \deprecated Always pass len. JSONCPP_DEPRECATED("Use setComment(std::string const&) instead.") - void setComment(const char* comment, CommentPlacement placement); + void setComment(const char* comment, CommentPlacement placement) __deprecated; /// Comments must be //... or /* ... */ void setComment(const char* comment, size_t len, CommentPlacement placement); /// Comments must be //... or /* ... */ diff --git a/dependencies/jsoncpp/include/writer.h b/dependencies/jsoncpp/include/writer.h index f94aa1f..713c551 100755 --- a/dependencies/jsoncpp/include/writer.h +++ b/dependencies/jsoncpp/include/writer.h @@ -136,7 +136,7 @@ class JSON_API StreamWriterBuilder : public StreamWriter::Factory { }; /** \brief Abstract class for writers. - * \deprecated Use StreamWriter. (And really, this is an implementation detail.) + * Use StreamWriter. (And really, this is an implementation detail.) */ class JSON_API Writer { public: @@ -152,7 +152,7 @@ class JSON_API Writer { *consumption, * but may be usefull to support feature such as RPC where bandwith is limited. * \sa Reader, Value - * \deprecated Use StreamWriterBuilder. + * Use StreamWriterBuilder. */ class JSON_API FastWriter : public Writer { @@ -205,7 +205,7 @@ class JSON_API FastWriter : public Writer { *#CommentPlacement. * * \sa Reader, Value, Value::setComment() - * \deprecated Use StreamWriterBuilder. + * Use StreamWriterBuilder. */ class JSON_API StyledWriter : public Writer { public: @@ -265,9 +265,9 @@ class JSON_API StyledWriter : public Writer { * If the Value have comments then they are outputed according to their #CommentPlacement. * - * \param indentation Each level will be indented by this amount extra. + * indentation Each level will be indented by this amount extra. * \sa Reader, Value, Value::setComment() - * \deprecated Use StreamWriterBuilder. + * Use StreamWriterBuilder. */ class JSON_API StyledStreamWriter { public: diff --git a/src/core/model/xmmModel.hpp b/src/core/model/xmmModel.hpp index 815d900..c0c8430 100644 --- a/src/core/model/xmmModel.hpp +++ b/src/core/model/xmmModel.hpp @@ -251,13 +251,14 @@ class Model : public Writable { is_training_ = true; // Fetch training set parameters - shared_parameters->dimension.set(trainingSet->dimension.get()); + shared_parameters->dimension = trainingSet->dimension.get(); if (shared_parameters->bimodal.get()) { shared_parameters->dimension_input.set( trainingSet->dimension_input.get()); } + shared_parameters->column_names.resize(trainingSet->dimension.get()); shared_parameters->column_names.set(trainingSet->column_names.get()); - + // Update models bool contLoop(true); while (contLoop) { @@ -275,7 +276,6 @@ class Model : public Writable { it != trainingSet->labels().end(); ++it) { addModelForClass(*it); } - // Start class training for (auto it = this->models.begin(); it != this->models.end(); ++it) { it->second.is_training_ = true; @@ -285,9 +285,10 @@ class Model : public Writable { MultithreadingMode::Parallel) || (configuration.multithreading == MultithreadingMode::Background)) { - training_threads_[it->first] = + training_threads_.insert(std::pair( + it->first, std::thread(&SingleClassModel::train, &it->second, - trainingSet->getPhrasesOfClass(it->first)); + trainingSet->getPhrasesOfClass(it->first)))); } else { it->second.train(trainingSet->getPhrasesOfClass(it->first)); } @@ -332,13 +333,14 @@ class Model : public Writable { is_training_ = true; // Fetch training set parameters - shared_parameters->dimension.set(trainingSet->dimension.get()); + shared_parameters->dimension = trainingSet->dimension.get(); if (shared_parameters->bimodal.get()) { shared_parameters->dimension_input.set( trainingSet->dimension_input.get()); } + shared_parameters->column_names.resize(trainingSet->dimension.get()); shared_parameters->column_names.set(trainingSet->column_names.get()); - + addModelForClass(label); // Start class training @@ -346,7 +348,7 @@ class Model : public Writable { models[label].cancel_training_ = false; models_still_training_++; if (configuration.multithreading == MultithreadingMode::Sequential) { - models[label].train(trainingSet->getPhrasesOfClass(label)); + models[label].xmm::SingleClassProbabilisticModel::train(trainingSet->getPhrasesOfClass(label)); } else { training_threads_[label] = std::thread(&SingleClassModel::train, &(this->models[label]), diff --git a/src/core/model/xmmModelSingleClass.cpp b/src/core/model/xmmModelSingleClass.cpp index 28259e4..c5e7b74 100644 --- a/src/core/model/xmmModelSingleClass.cpp +++ b/src/core/model/xmmModelSingleClass.cpp @@ -90,7 +90,7 @@ operator=(SingleClassProbabilisticModel const& src) { throw std::runtime_error( "Cannot copy: source model is still training"); label = src.label; - training_status = TrainingEvent(this, label), + training_status = TrainingEvent(this, label); shared_parameters = src.shared_parameters; is_training_ = false; cancel_training_ = false; @@ -235,4 +235,4 @@ Json::Value xmm::SingleClassProbabilisticModel::toJson() const { Json::Value root; root["label"] = label; return root; -} \ No newline at end of file +} diff --git a/src/models/gmm/xmmGmmSingleClass.cpp b/src/models/gmm/xmmGmmSingleClass.cpp index 64d7bd3..1771e9f 100644 --- a/src/models/gmm/xmmGmmSingleClass.cpp +++ b/src/models/gmm/xmmGmmSingleClass.cpp @@ -224,12 +224,10 @@ void xmm::SingleClassGMM::fromJson(Json::Value const& root) { void xmm::SingleClassGMM::allocate() { mixture_coeffs.resize(parameters.gaussians.get()); beta.resize(parameters.gaussians.get()); - components.assign( - parameters.gaussians.get(), - GaussianDistribution(shared_parameters->bimodal.get(), - shared_parameters->dimension.get(), - shared_parameters->dimension_input.get(), - parameters.covariance_mode.get())); + + GaussianDistribution mgaus(shared_parameters->bimodal.get(), + shared_parameters->dimension.get()); + components.assign(parameters.gaussians.get(),mgaus); } double xmm::SingleClassGMM::obsProb(const float* observation, diff --git a/src/models/hmm/xmmHierarchicalHmm.cpp b/src/models/hmm/xmmHierarchicalHmm.cpp index 4afd41a..eda5b53 100644 --- a/src/models/hmm/xmmHierarchicalHmm.cpp +++ b/src/models/hmm/xmmHierarchicalHmm.cpp @@ -466,6 +466,12 @@ void xmm::HierarchicalHMM::updateResults() { double normconst_instant(0.0); double normconst_smoothed(0.0); int i(0); + results.instant_likelihoods.resize(shared_parameters->dimension.get()); + results.smoothed_log_likelihoods.resize(shared_parameters->dimension.get()); + results.smoothed_likelihoods.resize(shared_parameters->dimension.get()); + results.instant_normalized_likelihoods.resize(shared_parameters->dimension.get()); + results.smoothed_normalized_likelihoods.resize(shared_parameters->dimension.get()); + for (auto &model : models) { results.instant_likelihoods[i] = model.second.results.instant_likelihood; @@ -473,7 +479,7 @@ void xmm::HierarchicalHMM::updateResults() { model.second.results.log_likelihood; results.smoothed_likelihoods[i] = exp(results.smoothed_log_likelihoods[i]); - + results.instant_normalized_likelihoods[i] = results.instant_likelihoods[i]; results.smoothed_normalized_likelihoods[i] =