Exemplo n.º 1
0
        public NeuralNetwork(IActivationFunction activationFunc, int layersQuantity, int neuronsPerLayer, Neuron bias = null)
        {
            if (ReferenceEquals(bias, null))
            {
                InputNeurons = new NeuralLayer(neuronsPerLayer, activationFunc);
                NeuralLayer prevLayer = InputNeurons;

                HiddenLayers = new List<NeuralLayer>(layersQuantity);
                for (int i = 0; i < layersQuantity; i++)
                {
                    HiddenLayers.Add(new NeuralLayer(neuronsPerLayer, activationFunc));
                    HiddenLayers[i].ConnectToMe(prevLayer);
                    prevLayer = HiddenLayers[i];
                }

                OutputNeurons = new NeuralLayer(neuronsPerLayer, activationFunc);
                OutputNeurons.ConnectToMe(prevLayer);
            }
            else
            {
                InputNeurons = new NeuralLayer(neuronsPerLayer, activationFunc);
                NeuralLayer prevLayer = InputNeurons;

                HiddenLayers = new List<NeuralLayer>(layersQuantity);
                for (int i = 0; i < layersQuantity; i++)
                {
                    HiddenLayers.Add(new NeuralLayer(neuronsPerLayer, activationFunc));
                    HiddenLayers[i].ConnectToMe(prevLayer);
                    HiddenLayers[i].ConnectToMe(bias);
                    prevLayer = HiddenLayers[i];
                }
                OutputNeurons = new NeuralLayer(neuronsPerLayer, activationFunc);
                OutputNeurons.ConnectToMe(prevLayer);
                OutputNeurons.ConnectToMe(bias);
            }

        }
Exemplo n.º 2
0
 public void ConnectToInput(Neuron input)
 {
     if (ReferenceEquals(input, null))
         throw new ArgumentNullException(nameof(input));
      In.Add(input, Helper.Rand.NextDouble);
 }
Exemplo n.º 3
0
 public void ConnectToMe(Neuron input)
 {
     if (ReferenceEquals(input, null))
         throw new ArgumentNullException(nameof(input));
     foreach (var item in Layer)
     {
         item.ConnectToInput(input);
     }
 }