private void LoadSavedNetwork() { var fileDialog = new OpenFileDialog { InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), Title = "Load network from selected save file", Multiselect = false, RestoreDirectory = true, DefaultExt = SavedNetworkFileExtension, AddExtension = true, Filter = $"Deep network file (*.{SavedNetworkFileExtension})|*.{SavedNetworkFileExtension}", }; if (fileDialog.ShowDialog() != DialogResult.OK) { return; } var fileName = fileDialog.FileName; try { _classifierFacade = new ClassifierFacade( savedModelPath: fileName, guiLogger: this); var loadedModel = _classifierFacade.GetCurrentModel(); DataProviderConfiguration = loadedModel.DataProviderConfiguration; AvailableCategories = new ObservableCollection <Category>(loadedModel.ClassifierConfiguration.Categories); LogWriteLine($"Successfully loaded saved network from file '{fileName}'."); ProgramState = ProgramState.ClassifierReady; } catch (Exception e) { const string errorMessage = "Problems with loading saved network."; 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(); } }