private void InitializeConnections(int inputDimension)
 {
     for (var x = 0; x < _width; x++)
     {
         Parallel.For(0, _height,
                      y => { _lattice[x, y] = new Neuron.Neuron(inputDimension)
                             {
                                 X = x, Y = y
                             }; });
     }
 }
Beispiel #2
0
        public void Constructor_ActivationFunctionInputFunction_NeuronInitialized()
        {
            var activationFunction = new Mock <IActivationFunction>();
            var inputFunction      = new Mock <IInputFunction>();

            var neuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            Assert.IsNotNull(neuron);
            Assert.AreNotEqual(Guid.Empty, neuron.Id);
            Assert.IsNotNull(neuron.Inputs);
            Assert.IsNotNull(neuron.Outputs);
        }
Beispiel #3
0
        public void AddInputSynapse_SynapsePassed_ConnectionCreated()
        {
            var activationFunction = new Mock <IActivationFunction>();
            var inputFunction      = new Mock <IInputFunction>();

            var neuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            neuron.AddInputSynapse(0.11);

            Assert.AreEqual(1, neuron.Inputs.Count);
            Assert.AreEqual(1, neuron.Inputs.First().Weight);
            Assert.AreEqual(0.11, neuron.Inputs.First().GetOutput());
        }
Beispiel #4
0
        public void AddOutput_NeuronPassed_ConnectionCreated()
        {
            var activationFunction = new Mock <IActivationFunction>();
            var inputFunction      = new Mock <IInputFunction>();

            var neuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            var outputNeuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            neuron.AddOutputNeuron(outputNeuron);

            Assert.AreEqual(1, neuron.Outputs.Count);
        }
Beispiel #5
0
        public void CalculateOutput_MockingFunctions_OutputReturned()
        {
            var activationFunction = new Mock <IActivationFunction>();

            activationFunction.Setup(x => x.CalculateOutput(It.IsAny <double>())).Returns(111);

            var inputFunction = new Mock <IInputFunction>();

            inputFunction.Setup(x => x.CalculateInput(It.IsAny <List <ISynapse> >())).Returns(23);

            var neuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            Assert.AreEqual(111, neuron.CalculateOutput());
        }
Beispiel #6
0
        public void AddInputSynapse_SynapseAdded_NumberOdSynapsesIncreased()
        {
            var activationFunction = new Mock <IActivationFunction>();

            activationFunction.Setup(x => x.CalculateOutput(It.IsAny <double>())).Returns(111);

            var inputFunction = new Mock <IInputFunction>();

            inputFunction.Setup(x => x.CalculateInput(It.IsAny <List <ISynapse> >())).Returns(23);

            var neuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            neuron.AddInputSynapse(0);

            Assert.AreEqual(1, neuron.Inputs.Count);
        }
Beispiel #7
0
        public void PushInputValueToInput_SendingValueToInput_ProperValueOnInputSet()
        {
            var activationFunction = new Mock <IActivationFunction>();

            activationFunction.Setup(x => x.CalculateOutput(It.IsAny <double>())).Returns(111);

            var inputFunction = new Mock <IInputFunction>();

            inputFunction.Setup(x => x.CalculateInput(It.IsAny <List <ISynapse> >())).Returns(23);

            var neuron = new Neuron.Neuron(activationFunction.Object, inputFunction.Object);

            neuron.AddInputSynapse(0);

            neuron.PushValueOnInput(1);
            Assert.AreEqual(1, neuron.Inputs.First().GetOutput());
        }