GPUMLib  0.2.2
GPU Machine Learning Library
MultipleBackPropagation.h
1 /*
2  Noel Lopes is an Assistant Professor at the Polytechnic Institute of Guarda, Portugal
3  Copyright (C) 2009, 2010, 2011, 2012 Noel de Jesus Mendonša Lopes
4 
5  This file is part of GPUMLib.
6 
7  GPUMLib is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef GPUMLib_MultipleBackPropagation_h
22 #define GPUMLib_MultipleBackPropagation_h
23 
24 #include "BackPropagation.h"
25 
26 namespace GPUMLib {
27 
30 
33  private:
34  HostArray<bool> layerHasSelectiveNeurons;
35 
36  public:
45  MultipleBackPropagation(HostArray<int> & sizeLayers, HostArray<bool> & selectiveNeurons, HostArray<int> & sizeAdditionalSpaceLayers, HostMatrix<cudafloat> & trainInputPatterns, HostMatrix<cudafloat> & trainDesiredOutputPatterns, cudafloat initialLearningRate = INITIAL_LEARNING_RATE);
46 
49  bool HasSelectiveNeurons(int layer) const;
50 
53  int GetNumberLayersSpaceNetwork() const;
54 
58  int GetNumberNeuronsSpaceNetwork(int layer) const;
59 
64 
68  void SetLayerWeightsSpaceNetwork(int layer, HostArray<cudafloat> & weights);
69 
73 
77 
81 
85 };
86 
91 
93 
94 }
95 
96 #endif
void SetLayerWeightsSpaceNetwork(int layer, HostArray< cudafloat > &weights)
Represents a feed-forward network that can be trained using the CUDA implementation of the Back-Propa...
int GetNumberNeuronsSpaceNetwork(int layer) const
MultipleBackPropagation(HostArray< int > &sizeLayers, HostArray< bool > &selectiveNeurons, HostArray< int > &sizeAdditionalSpaceLayers, HostMatrix< cudafloat > &trainInputPatterns, HostMatrix< cudafloat > &trainDesiredOutputPatterns, cudafloat initialLearningRate=INITIAL_LEARNING_RATE)
void SetSelectiveInputBiasSpaceNetwork(HostArray< cudafloat > &bias)
HostArray< cudafloat > GetSelectiveInputWeightsSpaceNetwork()
HostArray< cudafloat > GetLayerWeightsSpaceNetwork(int layer)
Represents a multiple feed-forward network that can be trained using the CUDA implementation of the M...
void SetSelectiveInputWeightsSpaceNetwork(HostArray< cudafloat > &weights)
float cudafloat
HostArray< cudafloat > GetSelectiveInputBiasSpaceNetwork()