Ejemplo n.º 1
0
        private async void btnEntrenar_Click(object sender, EventArgs e)
        {
            CrearNeuralNetwork();

            _cancellationTokenSource = new CancellationTokenSource();

            btnCancelar.Focus();
            txtMonitor.Text = string.Empty;
            _monitorLog     = string.Empty;

            var dataset  = new Dataset();
            var datasets = dataset.Cargar();

            _entrenando = true;
            HabilitarBotones(false);

            var algoritmo = gridParametrosAlgoritmoEntrenamiento.SelectedObject as IAlgoritmoParametros;

            await Task.Run(() =>
            {
                var resultados = NetworkManager.TrainNetwork(
                    _neuralNetwork,
                    datasets.Training,
                    algoritmo.GetTrainingAlgorithm(),
                    (int)spinIteraciones.Value,
                    (float)spinDropout.Value,
                    null,
                    MonitorearIteraciones,
                    null,
                    datasets.Test,
                    _cancellationTokenSource.Token);

                _entrenando = false;

                _cancellationTokenSource.Dispose();
                _cancellationTokenSource = null;

                EjecutarActionUI(() => MostrarLog(resultados.CompletedEpochs, resultados.TestReports.Last()));
                EjecutarActionUI(() => ActualizarNeuralNetworkVisualizerFull());
                EjecutarActionUI(() => { HabilitarBotones(true); });
                EjecutarActionUI(() => { btnPredecir.Focus(); });
            });
        }