private void guardarSalida(PerceptronMulticapa neuronas)
        {
            try
            {
                StreamWriter archivo = new StreamWriter("Entrenamiento.txt");

                string temp = "";
                for (int i = 1; i < neuronas.n.Length; i++)
                {
                    temp += " " + neuronas.n[i];
                }

                archivo.WriteLine(neuronas.n.Length - 1 + temp);
                archivo.WriteLine(neuronas.alfa);
                archivo.WriteLine(errorMinimo);

                for (int c = 1; c <= neuronas.C - 1; c++)
                {
                    for (int i = 1; i <= neuronas.n[c + 1]; i++)
                    {
                        for (int j = 1; j <= neuronas.n[c]; j++)
                        {
                            archivo.WriteLine(neuronas.w[c, j, i]);
                        }
                    }
                }

                archivo.WriteLine("\n");

                for (int c = 2; c <= neuronas.C; c++)
                {
                    for (int i = 1; i <= neuronas.n[c]; i++)
                    {
                        archivo.WriteLine(neuronas.u[c, i]);
                    }
                }

                archivo.WriteLine("\n");

                for (int i = 0; i < neuronas.numeroPatrones; i++)
                {
                    for (int j = 0; j < neuronas.n[1]; j++)
                    {
                        archivo.WriteLine(neuronas.s[i, j] + "\t" + neuronas.y[i, j]);
                    }
                }

                archivo.WriteLine("\n");
                archivo.WriteLine(neuronas.errorEntrenamiento);
                archivo.Close();
                MessageBox.Show("Archivo creado");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex);
            }
        }
        private void btnEmpezar_Click(object sender, EventArgs e)
        {
            leerTXT();

            try
            {
                int[] temp = new int[numeroCapas + 1];
                Array.Copy(arquitecturaRed, temp, arquitecturaRed.Length);
                Array.Sort(temp);

                neuronasMaximas = temp[temp.Length - 1];

                PerceptronMulticapa neurona = new PerceptronMulticapa();
                neurona.numeroPatrones = nPatrones;
                neurona.n = n;
                neurona.x = patronesEntrada;
                neurona.s = patronesSalida;
                neurona.errorEntrenamiento = 1;
                neurona.C               = numeroCapas;
                neurona.a               = new double[neurona.C + 1, (int)neuronasMaximas + 1];
                neurona.y               = new double[neurona.numeroPatrones + 1, n[neurona.C] + 1];
                neurona.delta           = new double[neurona.C + 1, (int)neuronasMaximas + 1];
                neurona.s               = new double[neurona.numeroPatrones + 1, n[neurona.C] + 1];
                neurona.errorCuadratico = 0;
                neurona.alfa            = alfa;
                neurona.s               = patronesSalida;
                neurona.crearPesos();
                neurona.crearUmbrales();
                neurona.encuentraMaxMinEntradas();
                neurona.encuentraMaxMinSalidas();
                neurona.normalizarEntradas();
                neurona.normalizarSalidas();

                while (neurona.errorEntrenamiento >= errorMinimo && iteracionesMaximas >= 0)
                {
                    neurona.errorCuadratico = 0;
                    for (int i = 0; i < nPatrones; i++)
                    {
                        neurona.activacionEntrada(i);
                        neurona.propafacionNeuronas();
                        neurona.errorCuadraticos(i);
                        neurona.retroPorpagacion(i);
                    }
                    neurona.errorAprendizaje();
                    iteracionesMaximas--;
                }

                guardarSalida(neurona);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex);
            }
        }