public override NeuronLayer CreateInputLayer(int countNeurons)
        {
            //if (inputSignal.Count == countNeurons)
            //{
                NeuronLayer layer = new NeuronLayer();

                for (int i = 0; i < countNeurons; i++)
                {
                    Synapse synapse = new Synapse();
                    Neuron neuron = new Neuron(new LinearFunction());

                    //synapse.SetSignal(inputSignal[i]);
                    synapse.SetWeight(1);
                    neuron.SetShift(0);

                    synapse.SetParentNeurons(null, neuron);

                    neuron.AddInput(synapse);

                    layer.AddNeuron(neuron);
                }

                network.SetInputLayer(layer);

                return layer;
            //}
            //else
            //{
            //    MessageBox.Show("lol ... countNeurons не равно signal.Count");
            //    return null;
            //}
        }
Example #2
0
        /// <summary>
        ///  соединяет текущий нейрон с нейроном переданным в качестве параметра
        /// </summary>
        public void ConnectNeuron(Neuron neuron)
        {
            Synapse newSynapse = new Synapse();
            newSynapse.SetParentNeurons(this, neuron);

            outputs.Add(newSynapse);
            neuron.inputs.Add(newSynapse);
        }
        public override NeuronLayer AddHiddenLayer(int countNeurons)
        {
            NeuronLayer layer = new NeuronLayer();

            for (int i=0; i<countNeurons; i++)
            {
                Neuron newNeuron = new Neuron(new SigmoidFunction());

                layer.AddNeuron(newNeuron);
            }

            network.AddHiddenLayer(layer);

            return layer;
        }
        public override NeuronLayer CreateOutputLayer(int countNeurons)
        {
            NeuronLayer layer = new NeuronLayer();

            for (int i = 0; i < countNeurons; i++)
            {
                Neuron neuron = new Neuron(new SigmoidFunction());
                Synapse synapse = new Synapse();

                synapse.SetWeight(1);

                synapse.SetParentNeurons(neuron, null);
                neuron.AddOutput(synapse);

                layer.AddNeuron(neuron);
            }

            network.SetOutputLayer(layer);

            return layer;
        }
Example #5
0
 // задать нейроны, к которым присоединяется синапс
 public void SetParentNeurons(Neuron left, Neuron right)
 {
     leftNeuron = left;
     rightNeuron = right;
 }
Example #6
0
 // добавляет в слой список нейронов
 //public void AddNeurons(List<Neuron> neurons)
 //{
 //    this.neurons = neurons;
 //}
 // добавляет в слой один нейрон
 public void AddNeuron(Neuron neuron)
 {
     neurons.Add(neuron);
 }