Neuron change

This commit is contained in:
2016-02-01 23:43:13 +01:00
parent 3e383e9add
commit ea4ce22867
8 changed files with 147 additions and 13 deletions

View File

@@ -4,7 +4,7 @@ void NeuralNetwork::FeedForward::Layer::solve(const std::vector<float> &input, s
output.resize(neurons.size());
for(auto &neuron:neurons) {
output[neuron.id()]=neuron(input);
output[neuron->id()]=neuron->operator()(input);
}
}

View File

@@ -2,15 +2,27 @@
std::vector<float> NeuralNetwork::FeedForward::Network::computeOutput(const std::vector<float>& input) {
// this is here for simple swapping between input and output
std::vector<float> partial1=input;
std::vector<float> partial1=std::vector<float>(input.size()+1);
std::vector<float> partial2;
std::vector<float> *partialInputPtr = &partial1;
std::vector<float> *partialOutputPtr = &partial2;
for(int i=1;i<layers.size();i++) {
// 0 is bias
partial1[0]=1.0;
for(int i=0;i<input.size();i++) {
partial1[i+1]=input[i];
}
for(std::size_t i=1;i<layers.size();i++) {
layers[i].solve(*partialInputPtr,*partialOutputPtr);
std::swap(partialInputPtr,partialOutputPtr);
}
for(int i=0;i<partialInputPtr->size()-1;i++) {
partialInputPtr->operator[](i)=partialInputPtr->operator[](i+1);
}
partialInputPtr->resize(partialInputPtr->size()-1);
return std::vector<float>(*partialInputPtr);
}