private void deserializeNetwork_Click(object sender, EventArgs e) { switch (KlasyfikatorComboBox.SelectedIndex) { case 1: ENNetwork = EncogNeuralNetwork.DeSerialize(); break; case 3: ENNetworkQ = EncogNeuralNetworkQuick.DeSerialize(OpenGlController.divisionCountX, OpenGlController.divisionCountY); break; case 4: ENNetworkS = EncogNeuralNetworkSlow.DeSerialize(); break; } }
public string Teach(AlgorithmDataModel teachingData) { DataSet dataSet; var files = teachingData.Files.Select(i => teachingData.Directory + i).ToArray(); var forgeries = teachingData.Forgeries?.Select(i => teachingData.ForgeriesDirectory + i).ToArray(); switch (teachingData.FeatureAlgorithmName) { case "RadonTransformFeatureExtractor": _extractor = new RadonTransformFeatureExtractor(int.Parse(teachingData.FeatureAlgorithmParameters[0])); dataSet = _extractor.GetTeachingDataset(files, forgeries); break; default: throw new ArgumentException("FeatureAlgorithmName"); } switch (teachingData.ComputingAlgorithmName) { case "NeuralNetworkBp": _engine = new NeuralNetworkBp(double.Parse(teachingData.ComputingAlgorithmParameters[0].Replace(".", ",")), double.Parse(teachingData.ComputingAlgorithmParameters[1].Replace(".", ","))); _engine.Train(dataSet); break; case "EncogNeuralNetwork": _engine = new EncogNeuralNetwork(double.Parse(teachingData.ComputingAlgorithmParameters[0].Replace(".", ",")), double.Parse(teachingData.ComputingAlgorithmParameters[1].Replace(".", ","))); _engine.Train(dataSet); break; default: throw new ArgumentException("ComputingAlgorithmName"); } return("OK"); }
private async void TrainButtonClick(object sender, EventArgs e) { if (Controller.File == null) { BrakPlikuMessageBox(); return; } switch (KlasyfikatorComboBox.SelectedIndex) { //2plik = 0.056 4plik = 0.066 [300k points] case 0: DisableChangeButtons(); await Task.Run(() => { KNNClassifier = new KnnAccordClassifier(3); if (!KNNClassifier.CanClassify) { var pointsToTrain = Utills.GenerateClassArray(Controller.File.LasPointDataRecords, 0.066); var inputOutputArrays = KnnAccordClassifier.MakeInputOutputs(pointsToTrain, Controller.File); KNNClassifier.Teach(inputOutputArrays.Item1, inputOutputArrays.Item2); } }); EnableChangeButtons(); break; case 1: DisableChangeButtons(); await Task.Run(() => { ENNetwork = new EncogNeuralNetwork(Controller.File); }); EnableChangeButtons(); break; case 2: DisableChangeButtons(); await Task.Run(() => { KNNClassifierQuick = new KnnAccordClassifierQuick(3); if (!KNNClassifierQuick.CanClassify) { var inputOutputArrays = KnnAccordClassifierQuick.MakeInputOutputs(Utills.GroupPointsList( Controller.File, OpenGlController.divisionCountX, OpenGlController.divisionCountY)); KNNClassifierQuick.TeachGroups(inputOutputArrays.Item1, inputOutputArrays.Item2); } }); EnableChangeButtons(); break; case 3: DisableChangeButtons(); await Task.Run(() => { ENNetworkQ = new EncogNeuralNetworkQuick(Controller.File, OpenGlController.divisionCountX, OpenGlController.divisionCountY); }); EnableChangeButtons(); break; case 4: DisableChangeButtons(); await Task.Run(() => { KNNClassifierSlow = new KnnAccordClassifierSlow(3); if (!KNNClassifierSlow.CanClassify) { var pointsToTrain = Utills.GenerateClassArray(Controller.File.LasPointDataRecords, 0.10); var inputOutputArrays = KnnAccordClassifierSlow.MakeInputOutputs(pointsToTrain, Controller.File); KNNClassifierSlow.Teach(inputOutputArrays.Item1, inputOutputArrays.Item2); } }); EnableChangeButtons(); break; case 5: DisableChangeButtons(); await Task.Run(() => { ENNetworkS = new EncogNeuralNetworkSlow(Controller.File); }); EnableChangeButtons(); break; } KoniecTreninguMessageBox(); }