-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNeuronlayer.cpp
More file actions
57 lines (50 loc) · 1.22 KB
/
Neuronlayer.cpp
File metadata and controls
57 lines (50 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "Neuronlayer.h"
NeuronLayer::NeuronLayer(int neuronNum, int inputsPerNeuronNum) :
m_neuronNum(neuronNum)
{
for(int i=0; i<m_neuronNum; i++)
{
m_neurons.push_back(inputsPerNeuronNum);
}
}
NeuronLayer::NeuronLayer(const std::vector<std::vector<double>>& neuronWeights) : m_neuronNum(neuronWeights.size())
{
for(unsigned int i=0; i< neuronWeights.size(); i++)
{
m_neurons.push_back(neuronWeights.at(i));
}
}
NeuronLayer::NeuronLayer(const std::vector<Neuron>& neurons)
{
m_neuronNum = neurons.size();
m_neurons.clear();
for(const auto & neuron : neurons)
{
m_neurons.push_back(neuron);
}
}
std::vector<double> NeuronLayer::run(std::vector<double> inputs)
{
std::vector<double> outputs;
for(int i=0; i<m_neuronNum; i++)
{
outputs.push_back(m_neurons[i].run(inputs));
}
return outputs;
}
void NeuronLayer::printLayer() const
{
for(unsigned int i = 0; i < m_neurons.size(); i++)
{
std::cout << "Neuron " << i << " : ";
m_neurons[i].printNeuron();
std::cout << std::endl;
}
}
void NeuronLayer::randomise()
{
for(unsigned i=0 ; i<m_neurons.size() ; i++)
{
m_neurons[i].randomise();
}
}