RapidLib  v2.2.0
A simple library for interactive machine learning
modelSet.h
Go to the documentation of this file.
1 
11 #ifndef MODELSET_H
12 #define MODELSET_H
13 
14 #include <vector>
15 #include "trainingExample.h"
16 #include "baseModel.h"
17 #include "neuralNetwork.h"
18 #include "knnClassification.h"
19 #include "svmClassification.h"
20 #ifndef EMSCRIPTEN
21 #include "../dependencies/json/json.h"
22 #endif
23 
25 template<typename T>
26 class modelSet {
27 public:
28  modelSet();
29  virtual ~modelSet();
31  virtual bool train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
33  bool reset();
34 
42  std::vector<T> run(const std::vector<T> &inputVector);
43 
44 protected:
45  std::vector<baseModel<T>*> models {};
46  int numInputs {};
47  std::vector<std::string> inputNames {};
48  int numOutputs {};
49  bool isTraining {}; //This is true while the models are training, and will block running
50  bool isTrained {};
51 
52  void threadTrain(std::size_t i, const std::vector<trainingExampleTemplate<T> >& training_set);
53 
54 #ifndef EMSCRIPTEN //The javascript code will do its own JSON parsing
55 public:
56 
61  std::string getJSON();
62 
68  void writeJSON(const std::string &filepath);
69 
71  bool putJSON(const std::string &jsonMessage);
73  bool readJSON(const std::string &filepath);
74 
75 private:
76  Json::Value parse2json();
77  void json2modelSet(const Json::Value &root);
78 #endif
79 };
80 
81 #endif
Definition: modelSet.h:26
bool readJSON(const std::string &filepath)
Definition: modelSet.cpp:289
bool reset()
Definition: modelSet.cpp:89
bool putJSON(const std::string &jsonMessage)
Definition: modelSet.cpp:182
std::vector< baseModel< T > * > models
Definition: modelSet.h:45
std::string getJSON()
Definition: modelSet.cpp:164
bool isTrained
Definition: modelSet.h:50
void writeJSON(const std::string &filepath)
Definition: modelSet.cpp:171
virtual ~modelSet()
Definition: modelSet.cpp:35
int numOutputs
Definition: modelSet.h:48
virtual bool train(const std::vector< trainingExampleTemplate< T > > &trainingSet)
Definition: modelSet.cpp:41
void threadTrain(std::size_t i, const std::vector< trainingExampleTemplate< T > > &training_set)
Definition: modelSet.cpp:83
std::vector< std::string > inputNames
Definition: modelSet.h:47
std::vector< T > run(const std::vector< T > &inputVector)
Definition: modelSet.cpp:101
int numInputs
Definition: modelSet.h:46
modelSet()
Definition: modelSet.cpp:26
bool isTraining
Definition: modelSet.h:49
Definition: trainingExample.h:19