RapidLib  v2.1.0
A simple library for interactive machine learning
baseModel.h
Go to the documentation of this file.
1 
11 #ifndef baseModel_h
12 #define baseModel_h
13 
14 #include <vector>
15 #include "trainingExample.h"
16 
17 #ifndef EMSCRIPTEN
18 #include "../dependencies/json/json.h"
19 #endif
20 
22 template<typename T>
23 class baseModel {
24 public:
25  virtual ~baseModel() {};
26  virtual T run(const std::vector<T> &inputVector) = 0;
27  virtual void train(const std::vector<trainingExampleTemplate<T> > &trainingSet) = 0;
28  virtual void reset() = 0;;
29  virtual int getNumInputs() const = 0;
30  virtual std::vector<int> getWhichInputs() const = 0;
31 
32 #ifndef EMSCRIPTEN
33  virtual void getJSONDescription(Json::Value &currentModel) = 0;
34 
35 protected:
36  template<typename TT>
37  Json::Value vector2json(TT vec) {
38  Json::Value toReturn;
39  for (int i = 0; i < vec.size(); ++i) {
40  toReturn.append(vec[i]);
41  }
42  return toReturn;
43  }
44 #endif
45 
46 };
47 #endif
Definition: trainingExample.h:18
virtual void reset()=0
virtual int getNumInputs() const =0
virtual void train(const std::vector< trainingExampleTemplate< T > > &trainingSet)=0
virtual ~baseModel()
Definition: baseModel.h:25
virtual void getJSONDescription(Json::Value &currentModel)=0
Definition: baseModel.h:23
Json::Value vector2json(TT vec)
Definition: baseModel.h:37
virtual std::vector< int > getWhichInputs() const =0
virtual T run(const std::vector< T > &inputVector)=0