Neuron change
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user