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