Example #1
0
        public float TestConnections(Convolution convolution, Random rnd)
        {
            float avgFitness = 0;

            for (int i = 0; i < settings.fitnessAverageIters; i++)
            {
                lastIndex   = (int)(rnd.NextDouble() * (convolution.srcImgs.Count - 1));
                avgFitness += convolution.EvaluateFitness(lastIndex, settings);
            }
            GC.Collect();

            avgFitness /= settings.fitnessAverageIters;
            return(avgFitness);
        }
Example #2
0
        /// <summary>
        /// Main logic and UI
        /// </summary>
        public void Start()
        {
            convolution = new Convolution();

            //Startup UI
            Console.Title = ("Convolutional Neural Network By Thomas");
            Console.WriteLine("### Convolutional Neural Network By Thomas ###");
            Console.WriteLine();
            Console.WriteLine("Loading Settings...");
            if (System.IO.File.Exists("settings.json"))
            {
                try
                {
                    string json = System.IO.File.ReadAllText("settings.json");
                    settings = JsonConvert.DeserializeObject <Settings>(json);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    //return;
                }
            }
            else
            {
                try
                {
                    System.IO.File.WriteAllText("settings.json", JsonConvert.SerializeObject(settings));
                } catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
            Console.WriteLine("Enter previous network path, leave bank to continue: ");
            string inPath = Console.ReadLine();

            if (inPath.Length > 0)
            {
                try
                {
                    string json = System.IO.File.ReadAllText(inPath);
                    //Use a custom json importer because JSONConvert won't work for this
                    LoadJSON(json);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            /*Console.WriteLine("Enter training data path, leave bank to continue: ");
             * string inPath = Console.ReadLine();
             * if (inPath.Length < 0)
             * {
             *  StartConvolution();
             * }
             * Console.WriteLine("Enter target training data path, leave bank to continue: ");
             * string targetPath = Console.ReadLine();
             * if (inPath.Length > 0)
             * {*/
            Console.WriteLine("Loading training data from 'TestImgs' and 'TargetImgs'...");
            convolution.LoadImages("TestImgs", "TargetImgs");//inPath, targetPath);
            //}

            Console.WriteLine("Setting up network...");
            convolution.InitialiseKernel(settings.nodesPL, settings.nodesPL, settings.nodeLayers);
            Console.WriteLine("Network set up as " + settings.nodesPL + "x" + settings.nodesPL + " kernel with " + settings.nodeLayers + " layers.");

            Console.CancelKeyPress += Console_CancelKeyPress;
            startTime = DateTime.Now;

            TrainNetwork();

            //I know I'm doing this wrong
            InterruptMenu();
            //Console.WriteLine("Press any key to exit...");
            //Console.ReadKey();
        }