Esempio n. 1
0
        //static bool startFromZero = true;
        static void Main(string[] args)
        {
            Stopwatch watch   = new Stopwatch();
            INetwork  network = null;

            try
            {
                network = AutoEncoderNetwork.GetAutoEncoder($"autoencoder_{nbInputOutput}_{nbHidden}_{bootleNeck}");
            }
            catch
            {
                network = new AutoEncoderNetwork(nbInputOutput, bootleNeck, nbHidden);
            }
            //if(startFromZero)

            //else


            var ds = GenerateRandomDataset(nbInputOutput, nbRow).ToArray();

            watch.Start();
            for (int i = 1; i <= nbIteration; i++)
            {
                Console.WriteLine($"iteration : {i}");
                foreach (var(prediction, label) in network.Learning(ds, ds))
                {
                    Console.WriteLine(
                        $"prediction : [{String.Join(", ", prediction.Select(x => Math.Round(x, 2)))}]" +
                        $"\nlabel : [{String.Join(", ", label.Select(x => Math.Round(x, 2)))}]\n");
                }
                Console.WriteLine();
                if (i % sauvegarRate == 0)
                {
                    new Thread(network.Sauvegarde).Start();
                }
            }
            watch.Stop();

            Console.WriteLine(watch.Elapsed);
            if (nbIteration % sauvegarRate != 0)
            {
                network.Sauvegarde();
            }
            Console.Read();
        }
Esempio n. 2
0
        private void button2_Click(object sender, EventArgs e)
        {
            this.Enabled = false;

            int nbEntree     = Convert.ToInt32(this.numericUpDown2.Value);
            int nbBottleNeck = Convert.ToInt32(numericUpDown3.Value);
            int nbHidden     = Convert.ToInt32(numericUpDown4.Value);

            Bitmap imgToDenoise = (Bitmap)Bitmap.FromFile(fileArrayPred[Convert.ToInt32(numericUpDown7.Value)]);

            var bytes = Functions.GetAllPixelGrey(imgToDenoise).ToArray();
            var img   = Functions.NormalizeRow(bytes, 255, true);

            INetwork network = null;

            try
            {
                string reseauxName = textBox6.Text == "" ?
                                     $"autoencoder_{nbEntree}_{nbHidden}_{nbBottleNeck}"
                    : textBox6.Text;
                network = AutoEncoderNetwork.GetAutoEncoder(reseauxName);
            }
            catch
            {
                Console.WriteLine("error network doesn't exist");
            }

            var imgOut = network.Predict(img);

            Functions.SaveImgGrey(Functions.UnNormalizeRow(img), @"output\displayedIn.jpg");
            Functions.SaveImgGrey(bytes, @"output\displayedInOrigin.jpg");
            Functions.SaveImgGrey(Functions.UnNormalizeRow(imgOut), @"output\displayedOut.jpg");

            SetPictureBox(pictureBox1, @"output\displayedIn.jpg");
            SetPictureBox(pictureBox2, @"output\displayedOut.jpg");

            this.Enabled = true;
        }
Esempio n. 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            //const int sizeImage = 1024;
            this.Enabled = false;

            int nbEntree     = Convert.ToInt32(this.numericUpDown2.Value);
            int nbBottleNeck = Convert.ToInt32(numericUpDown3.Value);
            int nbHidden     = Convert.ToInt32(numericUpDown4.Value);

            var bmpEntree = new List <Bitmap>();

            foreach (var file in fileArrayTrain)
            {
                bmpEntree.Add((Bitmap)Bitmap.FromFile(file));
            }

            var bmpSortie = new List <Bitmap>();

            for (int i = 0; i < 50; i++)
            {
                foreach (var file in fileArrayReel)
                {
                    bmpSortie.Add((Bitmap)Bitmap.FromFile(file));
                }
            }

            var bytesEntree = bmpEntree.Select(x => Functions.GetAllPixelGrey(x).ToArray());
            var bytesSortie = bmpSortie.Select(x => Functions.GetAllPixelGrey(x).ToArray());

            var      dsEntree = Functions.NormalizeDS(bytesEntree, 255, true).ToArray();
            var      dsSortie = Functions.NormalizeDS(bytesSortie, 255, true).ToArray();
            INetwork network  = null;

            try
            {
                string reseauxName = textBox1.Text == "" ?
                                     $"autoencoder_{nbEntree}_{nbHidden}_{nbBottleNeck}"
                    : textBox1.Text;
                network = AutoEncoderNetwork.GetAutoEncoder(reseauxName);
            }
            catch
            {
                network = new AutoEncoderNetwork(nbEntree, nbBottleNeck, nbHidden);
            }

            //int nbRow = Convert.ToInt32(numericUpDown5.Value);
            int nbIteration    = Convert.ToInt32(numericUpDown1.Value);
            int sauvegardeRate = Convert.ToInt32(numericUpDown6.Value);

            for (int i = 1; i <= nbIteration; i++)
            {
                IEnumerable <double> meanSquareErrors = network.Learning(dsEntree, dsSortie).Select(x => Functions.MatriceSquareDifference(x.Item1, x.Item2).Average());
                double value = meanSquareErrors.Average();
                //TextBoxWriteLine(
                //    $"prediction : [{String.Join(", ", prediction.Select(x => Math.Round(x, 2)))}]" +
                //    $"\nlabel : [{String.Join(", ", label.Select(x => Math.Round(x, 2)))}]\n");
                Console.WriteLine();
                if (i % sauvegardeRate == 0)
                {
                    new Thread(network.Sauvegarde).Start();
                }
                if (i % 10 == 0)
                {
                    textBox2.Text = i.ToString();
                    textBox7.Text = value.ToString();
                    this.textBox2.Refresh();
                    this.textBox4.Refresh();
                    textBox7.Refresh();
                }
            }
            this.Enabled = true;
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            //var bytes = File.ReadAllBytes(@"data\arrow.bin");

            var bmpEntree = new List <Bitmap>();

            for (int i = 0; i < 100; i++)
            {
                bmpEntree.Add((Bitmap)Bitmap.FromFile($"trainSet_15\\random_{i}.jpg"));
            }

            var bmpSortie = new List <Bitmap>();

            for (int k = 0; k < 50; k++)
            {
                for (int i = 0; i < 1; i++)
                {
                    bmpSortie.Add((Bitmap)Bitmap.FromFile($"img\\final_left.jpg"));
                }
                for (int i = 0; i < 1; i++)
                {
                    bmpSortie.Add((Bitmap)Bitmap.FromFile($"img\\final_up.jpg"));
                }
            }

            //var colo = bmpEntree.Select(x => Functions.GetAllPixelColo(x).ToArray()).ToArray();
            //var red = colo.Select(x => toto().Concat(x.Select(y => y.R)).ToArray());
            //var green = colo.Select(x => x.Select(y => y.G).ToArray());
            //var blue = colo.Select(x => x.Select(y => y.B).ToArray());

            //var binaryFile = red.Concat(green).Concat(blue).SelectMany(x => x).ToArray();
            //File.WriteAllBytes("data\\arrow.bin", binaryFile);

            //var bmpEntree = new List<Bitmap>() {
            //    (Bitmap)Bitmap.FromFile($"img\\left0.jpg"),
            //    (Bitmap)Bitmap.FromFile($"img\\left1.jpg"),
            //    (Bitmap)Bitmap.FromFile($"img\\left2.jpg"),

            //    (Bitmap)Bitmap.FromFile($"img\\up0.jpg"),
            //    (Bitmap)Bitmap.FromFile($"img\\up1.jpg"),
            //    (Bitmap)Bitmap.FromFile($"img\\up2.jpg"),

            //};
            //var bmpSortie = new List<Bitmap>()
            //{
            //    (Bitmap) Bitmap.FromFile($"img\\final_left.jpg"),
            //    (Bitmap) Bitmap.FromFile($"img\\final_left.jpg"),
            //    (Bitmap) Bitmap.FromFile($"img\\final_left.jpg"),

            //    (Bitmap) Bitmap.FromFile($"img\\final_up.jpg"),
            //    (Bitmap) Bitmap.FromFile($"img\\final_up.jpg"),
            //    (Bitmap) Bitmap.FromFile($"img\\final_up.jpg"),
            //};

            //var bmpEntree = new List<Bitmap>() {
            //    //(Bitmap)Bitmap.FromFile($"img\\left1.jpg"),
            //    (Bitmap)Bitmap.FromFile($"img\\final_left.jpg"),

            //    (Bitmap)Bitmap.FromFile($"img\\final_up.jpg"),

            //};
            //var bmpSortie = new List<Bitmap>()
            //{
            //    (Bitmap) Bitmap.FromFile($"img\\final_left.jpg"),

            //    (Bitmap) Bitmap.FromFile($"img\\final_up.jpg"),
            //};
            var bytesEntree = bmpEntree.Select(x => Functions.GetAllPixelGrey(x).ToArray());


            //var sauvegarde = bytesEntree.Select(x => RandomBytes(x));
            //int k = 0;
            //for (int l = 0; l < 500 / 2; l++)
            //    foreach (var b in sauvegarde)
            //        Functions.SaveImgGrey(b.ToArray(), $"trainSet_15\\random_{(k++)}.jpg");

            //k = 0;
            //for (int l = 0; l < 125 / 2; l++)
            //    foreach (var b in sauvegarde)
            //        Functions.SaveImgGrey(b.ToArray(), $"testSet_15\\random_{(k++)}.jpg");

            var bytesSortie = bmpSortie.Select(x => Functions.GetAllPixelGrey(x).ToArray());

            //var bytesEntree = Functions.SplitBytes(bytes);
            // Functions.SaveImgGrey(bytesEntree.First(), $"testSet\\random_{(k++)}.jpg");
            Console.WriteLine(String.Join(", ", bytesSortie.First()));
            Console.WriteLine(String.Join(", ", bytesEntree.First()));
            var dsEntree = Functions.NormalizeDS(bytesEntree, 255, true).ToArray();
            var dsSortie = Functions.NormalizeDS(bytesSortie, 255, true).ToArray();

            //var dsEntree = GenerateRandomDataset(100, 2).ToArray();
            //var dsSortie = dsEntree;
            for (int i = 0; i < dsEntree.Length; i++)
            {
                Functions.SaveImgGrey(Functions.UnNormalizeRow(dsEntree[i]), @"output\original" + i + ".jpg");
            }

            Stopwatch watch   = new Stopwatch();
            INetwork  network = null;

            try
            {
                network = AutoEncoderNetwork.GetAutoEncoder(/*$"autoencoder_{nbInputOutput}_{nbHidden}_{bootleNeck}"*/);
            }
            catch
            {
                network = new AutoEncoderNetwork(nbInputOutput, bootleNeck, nbHidden);
            }
            watch.Start();
            for (int i = 1; i <= nbIteration; i++)
            {
                IEnumerable <double> meanSquareErrors = network.Learning(dsEntree, dsSortie).Select(x => Functions.MatriceSquareDifference(x.Item1, x.Item2).Average());

                foreach (var error in meanSquareErrors)
                {
                    if (i % 10 == 0 || i % 11 == 0)
                    {
                        Console.WriteLine(error);
                    }
                }

                if (i % 10 == 0 || i % 11 == 0)
                {
                    Console.WriteLine($"iteration : {i}");
                }
                if (i % sauvegarRate == 0)
                {
                    new Thread(network.Sauvegarde).Start();
                }
            }
            watch.Stop();

            var predict = network.Predict(dsEntree);
            int j       = 0;

            foreach (var pred in predict)
            {
                Functions.SaveImgGrey(Functions.UnNormalizeRow(pred), @"output\img" + j++ + ".jpg");
            }
            Console.WriteLine();
            Console.WriteLine(string.Join(", ", Functions.UnNormalizeRow(predict.First())));
            Console.WriteLine(string.Join(", ", predict.First().Select(x => Math.Round(x, 2))));
            Console.WriteLine("");
            Console.WriteLine(string.Join(", ", dsEntree.First().Select(x => Math.Round(x, 2))));
            //Functions.SaveImgGrey(Functions.UnNormalizeRow(predict.First()), @"output\img_.jpg");
            Console.WriteLine(watch.Elapsed);
            if (nbIteration % sauvegarRate != 0)
            {
                network.Sauvegarde();
            }
            Console.Read();
        }