示例#1
0
 public static void Train_CNN_Hyperheuristic()
 {
     #region 1. LECTURA DE DATOS DE ENTRENAMIENTO
     Console.WriteLine($"LECTURA DE DATOS DE ENTRENAMIENTO: {DateTime.Now}");
     int    mainCategorie = 0; //Buscará números 0 (clase)
     Data[] DataSetTrain  = DataHelper.ImportData_MNIST_TrainOneCat(TrainImages, TrainLabels, mainCategorie, 1500);
     //Es imprecindible que la categoría principal deba ir al inicio
     //Aquí se leerán N cantidad de imágenes del número 3 y de los que sigan
     int[]  Categories  = { mainCategorie, 3 };
     Data[] DataSetTest = DataHelper.ImportData_MNIST_TestOneCat(TestImages, TestLabels, Categories, 500);
     #endregion
     #region 2. INVOCAR AL MÉTODO DE ENTRENAMIENTO DE ARQUITECTURAS
     Console.WriteLine($"COMIENZO DEL ENTRENAMIENTO: {DateTime.Now}");
     EvoAIndividual[] BestArchs = Trainers.Hyperheuristic_Trainning(DataSetTrain, DataSetTest, Categories.Length);
     #endregion
     #region 3. MOSTRAR LOS RESULTADOS
     Console.WriteLine("RESULTADOS:");
     for (int ixR = 0; ixR < 4; ixR++)
     {
         string data = DataHelper.GetArchIndividualData(BestArchs[ixR]);
         Console.WriteLine($"{ixR + 1}° LUGAR");
         Console.WriteLine(data);
         string[] Summary = BestArchs[ixR].TrainingSummary;
         string   summ    = "";
         for (int ixS = 0; ixS < Summary.Length; ixS++)
         {
             summ += " - " + Summary[ixS];
             Console.WriteLine($"{Summary[ixS]}");
         }
         Console.WriteLine($"GUARDANDO EL MODELO COMPLETO EN UN TXT...");
         string Fecha = $"{DateTime.Now.ToString("dd-MM-yyyy_HH_mm")}";
         DataHelper.WriteConvolutionalNeuralNetworkModel(BestArchs[ixR].TrainedCNN, BestArchs[ixR].TrainedNN, CarpetaModelos, $"Hiperheuristica_{Fecha}_{ixR + 1}_Lugar", $"{data} ---- {summ}");
         Console.WriteLine("");
     }
     Console.WriteLine("LOS MODELOS FUERON GUARDADOS EN LA RUTA " + CarpetaModelos);
     Console.WriteLine("PRESIONE 'ENTER' PARA FINALIZAR EL PROGRAMA");
     Console.ReadLine();
     #endregion
 }