diff --git a/include/NeuralNetwork/Cascade/Network.h b/include/NeuralNetwork/Cascade/Network.h index bfd8177..d5f4d97 100644 --- a/include/NeuralNetwork/Cascade/Network.h +++ b/include/NeuralNetwork/Cascade/Network.h @@ -58,6 +58,18 @@ namespace NeuralNetwork { return std::vector>(_neurons.end()-_outputs,_neurons.end()); } + void removeLastHiddenNeuron() { + _neurons.erase(_neurons.begin()+_neurons.size()-outputs()-1); + + std::size_t maxIndexOfHiddenNeuron = _neurons.size() - outputs(); + + std::size_t maxIndexOfNeuron = _neurons.size() - 1; + + for(std::size_t i = 0; i < _outputs; i++) { + _neurons[maxIndexOfNeuron-i]->setInputSize(maxIndexOfHiddenNeuron); + } + } + std::shared_ptr addNeuron() { _neurons.push_back(std::make_shared()); auto neuron = _neurons.back();