//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(); }
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; }
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; }
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(); }