private void ConfigureNewTraining() { GlobalTrainerConfiguration = _configurationManager.GetGlobalTrainerConfiguration(); Training1Parameters = _configurationManager.GetTraining1Parameters(); Training2Parameters = _configurationManager.GetTraining2Parameters(); try { var learningFacade = new LearningFacade(DataProviderConfiguration, GlobalTrainerConfiguration, SkipPhaseRequest, this); AvailableCategories = new ObservableCollection <Category>(learningFacade.GetAvailableCategories()); ProgramState = ProgramState.ConfiguringTraining; } catch (Exception e) { const string errorMessage = "Problem with creating new training configuration."; LogWriteLine($"{errorMessage} Error: {e.Message}"); NLogLogger.Error(e, errorMessage); } }
private async void StartTraining() { if (IsCategoriesSelectionInvalid()) { LogWriteLine("You cannot start a training until at least 2 categories are selected."); return; } ProgramState = ProgramState.TrainingInProgress; var learningFacade = new LearningFacade(DataProviderConfiguration, GlobalTrainerConfiguration, SkipPhaseRequest, this); var categories = GetSelectedCategories(); var trainingParameters = new TrainingParameters { Training1Parameters = Training1Parameters, Training2Parameters = Training2Parameters, SelectedCategories = categories.ToList(), }; try { _cts = new CancellationTokenSource(); _classifierFacade = await learningFacade.RunTrainingForSelectedCategories(trainingParameters, _cts.Token); ProgramState = ProgramState.ClassifierReady; } catch (Exception e) { const string errorMessage = "Problems during training."; LogWriteLine($"{errorMessage} Error: {e.Message}"); NLogLogger.Error(e, errorMessage); ReturnToInitialWithSaving(); } }