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] =