diff options
author | Justin Worthe <justin.worthe@gmail.com> | 2015-08-02 19:01:01 +0200 |
---|---|---|
committer | Justin Worthe <justin.worthe@gmail.com> | 2015-08-02 19:01:01 +0200 |
commit | 87ef7e90829053b7bc336f7316c3facb6c51e781 (patch) | |
tree | 0dbe68a138211d0099c602a97efc53b65bf8ffc8 /src/brain/neural_network.cpp | |
parent | 2e6ecf423c8228ac8de4badf4fc2d037a876b7ff (diff) |
Reading brain in from a file
Diffstat (limited to 'src/brain/neural_network.cpp')
-rw-r--r-- | src/brain/neural_network.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/brain/neural_network.cpp b/src/brain/neural_network.cpp index 15eedca..30da46c 100644 --- a/src/brain/neural_network.cpp +++ b/src/brain/neural_network.cpp @@ -17,6 +17,24 @@ NeuralNetwork::NeuralNetwork(std::istream &&networkConfigFile, int numberOfSenso parseFile(std::move(networkConfigFile)); } +NeuralNetwork::NeuralNetwork(std::istream &&networkConfigFile, std::vector<bool> sensorInitialValues, int numberOfOutputs) +{ + _biasNode = std::make_shared<BiasNode>(); + + for (int i=0; i<sensorInitialValues.size(); ++i) + { + auto sensor = std::make_shared<Sensor>(i); + sensor->setActivation(sensorInitialValues.at(i) ? 1 : 0); + _sensors.push_back(sensor); + } + for (int i=0; i<numberOfOutputs; ++i) + { + _outputs.push_back(std::make_shared<Neuron>(i)); + } + + parseFile(std::move(networkConfigFile)); +} + void NeuralNetwork::parseFile(std::istream &&file) { double weight; @@ -123,6 +141,7 @@ void NeuralNetwork::setInput(int inputIndex, double activation) if (sensor->id() == inputIndex) { sensor->setActivation(activation); + break; } } } |