OpenANN  1.1.0
An open source library for artificial neural networks.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BCIDataSet.h
Go to the documentation of this file.
1 #ifndef BCIDATASET_H_
2 #define BCIDATASET_H_
3 
4 #include <OpenANN/Compressor.h>
5 #include <OpenANN/io/DataSet.h>
6 #include <OpenANN/io/Logger.h>
7 #include <OpenANN/Learner.h>
8 #include <string>
9 #include <vector>
10 #include <map>
11 
13 {
14 public:
16  {
17  public:
19  size_t size;
20  int D;
21  std::map<std::pair<int, int>, Eigen::VectorXd> cache;
22 
28  BCIDataCache(int size, int D);
29  bool hasInstance(int epoch, int offset);
30  Eigen::VectorXd& getInstance(int epoch, int offset);
31  bool hasSpace();
32  void cacheInstance(int epoch, int offset, const Eigen::VectorXd& instance);
33  void clear();
34  };
35 
36  std::string directory;
37  std::string subject;
38  enum DataType
39  {
41  } dataType;
42 
43  Eigen::MatrixXd flashing;
44  Eigen::MatrixXd stimulusCode;
45  Eigen::MatrixXd stimulusType;
46  std::vector<char> targetChar;
47  std::vector<Eigen::MatrixXd> signal;
48 
49  int sampling;
50  int channels;
51  int epochs;
53  int maxT;
54  int N;
55  int D;
56  int F;
57  std::vector<std::vector<int> > instanceStart;
58  std::vector<std::vector<Eigen::VectorXd> > instanceLabel;
59 
61 
62  Eigen::VectorXd tempInstance;
63 
64  int iteration;
65 
66  bool comp;
68  bool decimated;
70 
72 
73  BCIDataSet(const std::string& directory, const std::string& subject,
74  const std::string& dataType, bool loadNow = true);
75  virtual ~BCIDataSet() {}
76  void load();
77  void determineDimension();
78  void loadFlashing();
79  void loadStimulusCode();
80  void loadStimulusType();
81  void loadTargetChar();
82  void loadSignal();
83  void setupInterface();
84  void clear();
85  std::string fileName(const std::string& type);
86  void decimate(int factor = 1);
88  void reset();
89  virtual int samples() { return N; }
90  virtual int inputs() { return D; }
91  virtual int outputs() { return F; }
92  virtual Eigen::VectorXd& getInstance(int i);
93  void getOffsets(int i, int& epoch, int& t0);
94  void buildInstance(int epoch, int t0);
95  Eigen::MatrixXd extractInstance(int epoch, int t0);
96  Eigen::VectorXd toVector(const Eigen::MatrixXd& matrix);
97  virtual Eigen::VectorXd& getTarget(int i);
98  char getTargetChar(int i);
99  virtual void finishIteration(OpenANN::Learner& mlp);
100  int evaluate(OpenANN::Learner& mlp, int trials);
101 };
102 
103 #endif // BCIDATASET_H_