예제 #1
0
        public void Setup()
        {
            algorithm = new BSWTrainingAlgorithm();

            var trainedModel = algorithm.Train(TestEntities.GetTrainingSamples());

            bswNeuralNetwork = new BSWNeuralNetwork(trainedModel);
        }
예제 #2
0
        private void loadModelButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();

            fileDialog.Filter = "Json|*.json";
            if (fileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            initialTrainingSamples    = Persistence.ReadTrainingSamplesFromFile(fileDialog.FileName);
            additionalTrainingSamples = new List <Sample>();

            bswTrainingAlgorithm = new BSWTrainingAlgorithm();
            var initialModel = bswTrainingAlgorithm.Train(initialTrainingSamples);

            bswNeuralNetwork = new BSWNeuralNetwork(initialModel);
        }
예제 #3
0
        private void InitializedBSW()
        {
            try
            {
                initialTrainingSamples = Persistence.ReadTrainingSamplesFromFile("SavedTrainingSamples\\initialTrainingSamples.json");

                bswTrainingAlgorithm = new BSWTrainingAlgorithm();
                var initialModel = bswTrainingAlgorithm.Train(initialTrainingSamples);

                bswNeuralNetwork = new BSWNeuralNetwork(initialModel);

                ShowBSWHiddenLayerNodes();
            }
            catch (Exception)
            {
                initialTrainingSamples = new List <Sample>();
            }

            additionalTrainingSamples = new List <Sample>();
        }
예제 #4
0
        private void TrainNetworkWith2GroupsOfNumbers(string class1, string class2)
        {
            var group1 = new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 50
            };
            var group2 = new List <int> {
                60, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
            };

            var group1Samples = group1.Select(x => new Sample {
                InputVector = SerialCoding.GetSeriallyCodedValue(x, 100), OutputClass = class1
            });
            var group2Samples = group2.Select(x => new Sample {
                InputVector = SerialCoding.GetSeriallyCodedValue(x, 100), OutputClass = class2
            });

            var allSamples = group1Samples.Concat(group2Samples).ToList();

            var trainedModel = algorithm.Train(allSamples);

            bswNeuralNetwork = new BSWNeuralNetwork(trainedModel);
        }
예제 #5
0
        private void TrainCurrentShape(ShapeType shapeType)
        {
            if (!strokes.Any())
            {
                return;
            }

            var trainingSample = Preprocessing.GetTrainingSampleFromShapeFeatures(currentShapeFeatures, shapeType);

            additionalTrainingSamples.Add(trainingSample);

            var allTrainingSamples = initialTrainingSamples.Concat(additionalTrainingSamples).ToList();

            try
            {
                bswTrainingAlgorithm = new BSWTrainingAlgorithm();
                var trainedModel = bswTrainingAlgorithm.Train(allTrainingSamples);
                bswNeuralNetwork = new BSWNeuralNetwork(trainedModel);
            }
            catch (Exception e) { }

            ShowBSWHiddenLayerNodes();
        }