34 #ifndef xmmModelSingleClass_h 35 #define xmmModelSingleClass_h 37 #include "../common/xmmCircularbuffer.hpp" 38 #include "../common/xmmEvents.hpp" 39 #include "../trainingset/xmmTrainingSet.hpp" 101 Status status_ = Status::Run)
194 Json::Value
const& root);
215 bool isTraining()
const;
236 void cancelTraining();
246 virtual void reset();
255 virtual double filter(std::vector<float>
const& observation) = 0;
266 virtual Json::Value toJson()
const;
273 virtual void fromJson(Json::Value
const& root) = 0;
303 virtual void allocate() = 0;
308 virtual void emAlgorithmInit(
TrainingSet* trainingSet) = 0;
316 virtual double emAlgorithmUpdate(
TrainingSet* trainingSet) = 0;
321 virtual void emAlgorithmTerminate();
331 bool emAlgorithmHasConverged(
int step,
double log_prob,
332 double old_log_prob)
const;
339 bool cancelTrainingIfRequested();
346 if (this->isTraining())
347 throw std::runtime_error(
"The model is training");
TrainingEvent(TrainingEvent const &src)
Copy constructor.
Definition: xmmModelSingleClass.hpp:113
CircularBuffer< double > likelihood_buffer_
Likelihood buffer used for smoothing.
Definition: xmmModelSingleClass.hpp:353
std::string label
Label of the source model, if any.
Definition: xmmModelSingleClass.hpp:145
bool is_training_
defines if the model is being trained.
Definition: xmmModelSingleClass.hpp:363
float progression
progression within the training algorithm
Definition: xmmModelSingleClass.hpp:155
void * model
Source Model.
Definition: xmmModelSingleClass.hpp:140
std::mutex training_mutex_
Mutex used in Concurrent Mode.
Definition: xmmModelSingleClass.hpp:358
Status
Status of the training process.
Definition: xmmModelSingleClass.hpp:54
bool cancel_training_
defines if the model received a request to cancel training
Definition: xmmModelSingleClass.hpp:368
ErrorType
Type of Training Error.
Definition: xmmModelSingleClass.hpp:84
EventGenerator< TrainingEvent > training_events
Generator for events monitoring the training process.
Definition: xmmModelSingleClass.hpp:290
Generic Template for Machine Learning Probabilistic models based on the EM algorithm.
Definition: xmmModelSingleClass.hpp:174
TrainingEvent training_status
Event containing information on the current status of the training process.
Definition: xmmModelSingleClass.hpp:296
Status status
Status of the training process.
Definition: xmmModelSingleClass.hpp:150
Base class for the definition of training sets.
Definition: xmmTrainingSet.hpp:46
Generator class for a specific type of events.
Definition: xmmEvents.hpp:47
std::string label
label associated with the given model
Definition: xmmModelSingleClass.hpp:280
Abstract class for handling JSON + File I/O.
Definition: xmmJson.hpp:50
An error occured during training.
Definition: xmmModelSingleClass.hpp:63
double iterations
Number of EM iterations.
Definition: xmmModelSingleClass.hpp:166
The training of all classes has finished.
Definition: xmmModelSingleClass.hpp:78
TrainingEvent(void *model_, std::string label_, Status status_=Status::Run)
Constructor.
Definition: xmmModelSingleClass.hpp:100
Event for monitoring the training process.
Definition: xmmModelSingleClass.hpp:49
Definition: xmmAttribute.hpp:42
TrainingEvent & operator=(TrainingEvent const &src)
Assignment operator.
Definition: xmmModelSingleClass.hpp:125
Training is done without error.
Definition: xmmModelSingleClass.hpp:73
Training is still running.
Definition: xmmModelSingleClass.hpp:58
std::shared_ptr< SharedParameters > shared_parameters
Pointer to the shared parameters owned by a multi-class model.
Definition: xmmModelSingleClass.hpp:285
void check_training() const
Checks if the model is still training.
Definition: xmmModelSingleClass.hpp:345
The training has been cancelled.
Definition: xmmModelSingleClass.hpp:68
Convergence Errors (numerical errors in the training process).
double log_likelihood
Log-likelihood of the data given the model's parameters at the en of training.
Definition: xmmModelSingleClass.hpp:161