incremental_neurons.h
1 // OpenNN: Open Neural Networks Library
2 // www.opennn.net
3 //
4 // I N C R E M E N T A L N E U R O N S C L A S S H E A D E R
5 //
6 // Artificial Intelligence Techniques SL
7 // artelnics@artelnics.com
8 
9 #ifndef INCREMENTALNEURONS_H
10 #define INCREMENTALNEURONS_H
11 
12 // System includes
13 
14 #include <iostream>
15 #include <fstream>
16 #include <algorithm>
17 #include <functional>
18 #include <limits>
19 #include <cmath>
20 #include <ctime>
21 
22 // OpenNN includes
23 
24 #include "vector.h"
25 #include "matrix.h"
26 #include "training_strategy.h"
27 #include "neurons_selection.h"
28 #include "tinyxml2.h"
29 
30 namespace OpenNN
31 {
32 
34 
36 
38 {
39 
40 public:
41 
42  // Constructors
43 
44  explicit IncrementalNeurons();
45 
47 
49 
50  explicit IncrementalNeurons(const string&);
51 
52  // Destructor
53 
54  virtual ~IncrementalNeurons();
55 
57 
59  {
61 
63  {
64  }
65 
67 
69  {
70  }
71  };
72 
73  // Get methods
74 
75  const size_t& get_step() const;
76 
77  const size_t& get_maximum_selection_failures() const;
78 
79  // Set methods
80 
81  void set_default();
82 
83  void set_step(const size_t&);
84 
85  void set_maximum_selection_failures(const size_t&);
86 
87  // Order selection methods
88 
89  IncrementalNeuronsResults* perform_neurons_selection();
90 
91  // Serialization methods
92 
94 
96  void from_XML(const tinyxml2::XMLDocument&);
97 
98  void write_XML(tinyxml2::XMLPrinter&) const;
99 
100  void save(const string&) const;
101  void load(const string&);
102 
103 private:
104 
106 
107  size_t step;
108 
110 
112 
113 };
114 
115 }
116 
117 #endif
118 
119 // OpenNN: Open Neural Networks Library.
120 // Copyright(C) 2005-2019 Artificial Intelligence Techniques, SL.
121 //
122 // This library is free software; you can redistribute it and/or
123 // modify it under the terms of the GNU Lesser General Public
124 // License as published by the Free Software Foundation; either
125 // version 2.1 of the License, or any later version.
126 //
127 // This library is distributed in the hope that it will be useful,
128 // but WITHOUT ANY WARRANTY; without even the implied warranty of
129 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
130 // Lesser General Public License for more details.
131 
132 // You should have received a copy of the GNU Lesser General Public
133 // License along with this library; if not, write to the Free Software
134 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
OpenNN::IncrementalNeurons::IncrementalNeuronsResults::IncrementalNeuronsResults
IncrementalNeuronsResults()
Default constructor.
Definition: incremental_neurons.h:62
OpenNN::IncrementalNeurons::IncrementalNeuronsResults
This structure contains the training results for the incremental order method.
Definition: incremental_neurons.h:58
OpenNN::IncrementalNeurons::step
size_t step
Number of neurons added at each iteration.
Definition: incremental_neurons.h:107
OpenNN::IncrementalNeurons::set_step
void set_step(const size_t &)
Definition: incremental_neurons.cpp:89
OpenNN::IncrementalNeurons::perform_neurons_selection
IncrementalNeuronsResults * perform_neurons_selection()
Perform the neurons selection with the Incremental method.
Definition: incremental_neurons.cpp:147
tinyxml2::XMLDocument
Definition: tinyxml2.h:1649
OpenNN::Matrix
This template class defines a matrix for general purpose use.
Definition: matrix.h:42
OpenNN::IncrementalNeurons::get_step
const size_t & get_step() const
Returns the number of the hidden perceptrons pointed in each iteration of the Incremental algorithm.
Definition: incremental_neurons.cpp:62
OpenNN::IncrementalNeurons::IncrementalNeurons
IncrementalNeurons()
Default constructor.
Definition: incremental_neurons.cpp:16
OpenNN::IncrementalNeurons::from_XML
void from_XML(const tinyxml2::XMLDocument &)
Definition: incremental_neurons.cpp:805
OpenNN::TrainingStrategy
This class represents the concept of training strategy for a neural network in OpenNN.
Definition: training_strategy.h:56
OpenNN::IncrementalNeurons::IncrementalNeuronsResults::~IncrementalNeuronsResults
virtual ~IncrementalNeuronsResults()
Destructor.
Definition: incremental_neurons.h:68
OpenNN::IncrementalNeurons
This concrete class represents an incremental algorithm for the NeuronsSelection as part of the Model...
Definition: incremental_neurons.h:37
OpenNN::NeuronsSelection
This abstract class represents the concept of neurons selection algorithm for a ModelSelection[1].
Definition: neurons_selection.h:40
tinyxml2::XMLPrinter
Definition: tinyxml2.h:2150
OpenNN::IncrementalNeurons::load
void load(const string &)
Definition: incremental_neurons.cpp:1104
OpenNN::IncrementalNeurons::save
void save(const string &) const
Definition: incremental_neurons.cpp:1091
OpenNN::IncrementalNeurons::~IncrementalNeurons
virtual ~IncrementalNeurons()
Destructor.
Definition: incremental_neurons.cpp:55
OpenNN::NeuronsSelection::Results
This structure contains the results from the order selection.
Definition: neurons_selection.h:68
OpenNN::IncrementalNeurons::to_string_matrix
Matrix< string > to_string_matrix() const
Writes as matrix of strings the most representative atributes.
Definition: incremental_neurons.cpp:366
OpenNN::IncrementalNeurons::set_maximum_selection_failures
void set_maximum_selection_failures(const size_t &)
Definition: incremental_neurons.cpp:124
OpenNN::IncrementalNeurons::maximum_selection_failures
size_t maximum_selection_failures
Maximum number of iterations at which the selection error increases.
Definition: incremental_neurons.h:111
OpenNN::IncrementalNeurons::to_XML
tinyxml2::XMLDocument * to_XML() const
Definition: incremental_neurons.cpp:503
OpenNN::IncrementalNeurons::set_default
void set_default()
Sets the members of the model selection object to their default values:
Definition: incremental_neurons.cpp:78
OpenNN::IncrementalNeurons::get_maximum_selection_failures
const size_t & get_maximum_selection_failures() const
Returns the maximum number of selection failures in the model order selection algorithm.
Definition: incremental_neurons.cpp:70
OpenNN::IncrementalNeurons::write_XML
void write_XML(tinyxml2::XMLPrinter &) const
Definition: incremental_neurons.cpp:681