(C++) Neural network

January 7, 2018 · View on GitHub

 

 

 

 

 

(C++) Neural network

 

A neural network is a connected collection of neurons (that is, a class that simulates a biological neuron) that can be trained for certain purposes.

 

 

 

 

 

Freely downloadable C++ neural networks

 

From my favorite (top) to my least favorite. This list is incomplete and will remain incomplete.

 

 

Untested:

 

 

 

 

 

 

Proposed neural network architecture

 


template <class Neuron> struct NeuralNetwork {   NeuralNetwork(     const int nInputs  = 0,     const int nHidden  = 0,     const int nOutputs = 0);   //If the propagation of a neuron does not change its state,   //NeuralNet::Propagate is a const method   //Note: this constness must be determined by templates   const std::vector<double> Propagate(const std::vector<double>& inputs);   const std::vector<double> Propagate(const std::vector<double>& inputs) const;   //When a desired input is known, let this backpropagate   void BackPropagate(const std::vector<double>& desiredOutputs)   private:   //The NeuralNetwork is implemented as a boost::graph of Neurons   boost::graph<Neuron> m_n; }; //Neuron is an abstract base class struct Neuron {   //Note: this constness must be determined by templates   double Propagate(const double input) = 0;   double Propagate(const double input) const = 0; };