Пример #1
0
        /// <summary>
        /// Runs this sample
        /// </summary>
        public static void Main(string[] args)
        {
            // create training set (H and T letter in 3x3 grid)
            DataSet trainingSet = new DataSet(9);

            trainingSet.addRow(new DataSetRow(new double[] { 1, 0, 1, 1, 1, 1, 1, 0, 1 }));          // H letter

            trainingSet.addRow(new DataSetRow(new double[] { 1, 1, 1, 0, 1, 0, 0, 1, 0 }));          // T letter

            // create hopfield network
            Hopfield myHopfield = new Hopfield(9);

            // learn the training set
            myHopfield.learn(trainingSet);

            // test hopfield network
            Console.WriteLine("Testing network");

            // add one more 'incomplete' H pattern for testing - it will be recognized as H
            trainingSet.addRow(new DataSetRow(new double[] { 1, 0, 0, 1, 0, 1, 1, 0, 1 }));


            // print network output for the each element from the specified training set.
            foreach (DataSetRow trainingSetRow in trainingSet.Rows)
            {
                myHopfield.Input = trainingSetRow.Input;
                myHopfield.calculate();
                myHopfield.calculate();
                double[] networkOutput = myHopfield.Output;

                Console.Write("Input: " + Arrays.ToString(trainingSetRow.Input));
                Console.WriteLine(" Output: " + Arrays.ToString(networkOutput));
            }
        }
Пример #2
0
        public ActionResult TrainMany(InputOutputViewModel vm)
        {
            vm.HopfieldOutput = new MatrixViewModel(64);
            vm.ARTOutput      = new MatrixViewModel(64);
            vm.patterns       = patterns;


            // trenowanie Hopfielda
            hp = new Hopfield();

            hp.TrainByPseudoInverse(patterns);

            //trenowanie ART
            art = new ART1();
            art.Train(teachingSet);
            //art.Train(patterns);

            art2 = new ART();
            art2.Train(teachingSet);

            int[,] randomPatterns = new int[10, 64];
            int[] numbers = new int[9];
            foreach (int i in numbers)
            {
                var rnd = new Random();
                numbers[i] = rnd.Next(0, 9);
            }



            ViewBag.Message = "Neural networks were trained by patterns.";

            return(View("Index", vm));
        }
Пример #3
0
 public Form1()
 {
     InitializeComponent();
     PerceptronInputs = new List <Input>();
     myDrawing        = new MyDrawing();
     // Transfer function 0 == binary, 1 == sigmoid
     _neuralNetwork = new NeuralNetwork.NeuralNetwork(2, 2, 1);
     _perceptron    = new Perceptron(ParseData("AND.txt"));
     //_perceptron.PerceptronNeuron.TrainUntil(_perceptron.TrainingSet, 0.2);
     myDrawing.DrawPerceptron(_perceptron, perceptronPictureBox);
     InitControls();
     refreshNetwork();
     errorChart.Series.Clear();
     //Hopfield
     _hopfield = new Hopfield(5, 7, 50);
     _hopImage = new List <double>();
 }
Пример #4
0
        /// <summary>
        /// Creates and returns a new instance of Hopfield network </summary>
        /// <param name="neuronsCount"> number of neurons in Hopfield network </param>
        /// <returns> instance of Hopfield network </returns>
        public static Hopfield createHopfield(int neuronsCount)
        {
            Hopfield nnet = new Hopfield(neuronsCount);

            return(nnet);
        }