Пример #1
0
        void TeachBtnClick(object sender, EventArgs e)
        {
            string sizeStr         = teachingSetSizeTextBox.Text;
            int    teachingSetSize = 100;

            try
            {
                teachingSetSize = Convert.ToInt32(sizeStr);
                if (teachingSetSize <= 0)
                {
                    throw new FormatException();
                }
            }
            catch (FormatException)
            {
                MessageBox.Show("Teaching set size should be a positive integer", "Wrong Teaching Set Size");
                return;
            }
            oneLayerNetwork.SetRandomWeights();
            IList <NetworkTeachingPair> teachingSet = PatternDictionary.GetInstance().GenerateTeachingSetOfSize(teachingSetSize);

            oneLayerNetwork.Teach(teachingSet, Commons.TEACHING_RATIO);
            errorProbabilityTextBox.Text = oneLayerNetwork.CalculateErrorProbability(teachingSet).ToString();
            //oneLayerNetwork.TeachContinuously(teachingSet, Commons.TEACHING_RATIO);
            MessageBox.Show("Taught successfully.", "Neural Network Training Completed");
        }
Пример #2
0
        private void LoadSavedPatterns()
        {
            ICollection <string> keys = PatternDictionary.GetInstance().Entries.Keys;

            foreach (string key in keys)
            {
                patternListBox.Items.Add(key);
            }
        }
Пример #3
0
        void ShowBtnClick(object sender, EventArgs e)
        {
            object selectedItem = patternsComboBox.SelectedItem;

            if (selectedItem != null && selectedItem.ToString().Trim().Length != 0)
            {
                string patternName           = selectedItem.ToString();
                NetworkTeachingPair dictPair = PatternDictionary.GetInstance().GetTeachingPairForPattern(patternName);
                patternInput.LoadPattern(dictPair.Input);
            }
        }
Пример #4
0
        void PatternListBoxSelectedIndexChanged(object sender, EventArgs e)
        {
            object selectedItem = patternListBox.SelectedItem;

            if (selectedItem != null)
            {
                string   patternName = selectedItem.ToString();
                double[] pattern     = PatternDictionary.GetInstance().GetTeachingPairForPattern(patternName).Input;
                patternInputLabelTable.LoadPattern(pattern);
                patternNameTextBox.Text = patternName;
            }
        }
Пример #5
0
        void CorrectBtnClick(object sender, EventArgs e)
        {
            object selectedItem = patternsComboBox.SelectedItem;

            if (selectedItem != null && selectedItem.ToString().Trim().Length != 0)
            {
                string patternName                 = selectedItem.ToString();
                NetworkTeachingPair dictPair       = PatternDictionary.GetInstance().GetTeachingPairForPattern(patternName);
                double[]            currentPattern = patternInput.GetNetworkInput();
                oneLayerNetwork.Teach(new NetworkTeachingPair(currentPattern, dictPair.Output), Commons.TEACHING_RATIO);
                MessageBox.Show("Taught successfully.", "Correction Completed");
            }
        }
Пример #6
0
        void RecognizeBtnClick(object sender, EventArgs e)
        {
            PatternDictionary dict = PatternDictionary.GetInstance();

            double[] input       = patternInput.GetNetworkInput();
            double[] output      = oneLayerNetwork.FireSignal(input);
            string   patternName = dict.FindPatternName(output);

            recognizedByOneLayerTextBox.Text = patternName != null ? patternName : "Not recognized properly";
            output      = twoLayerNetwork.FireSignal(input);
            patternName = dict.FindPatternName(output);
            recognizedByTwoLayerTextBox.Text = patternName != null ? patternName : "Not recognized properly";
        }
Пример #7
0
        void PutPatternBtnClick(object sender, EventArgs e)
        {
            string patternName = patternNameTextBox.Text;

            if (patternName == null || patternName.Trim(' ').Length == 0)
            {
                MessageBox.Show("Pattern name is empty. Please fill the field.", "Can't add pattern");
            }
            else
            {
                double[] input = patternInputLabelTable.GetNetworkInput();
                PatternDictionary.GetInstance().PutPattern(patternName, input);
                if (log.IsDebugEnabled)
                {
                    log.Debug(input.GetContentsString());
                }
                if (!patternListBox.Items.Contains(patternName))
                {
                    patternListBox.Items.Add(patternName);
                }
            }
            patternNameTextBox.Text = "";
            patternInputLabelTable.SetColor(Commons.BACK_COLOR);
        }
Пример #8
0
        void RemovePatternBtnClick(object sender, EventArgs e)
        {
            object selectedItem = patternListBox.SelectedItem;

            if (selectedItem != null)
            {
                string       patternName  = selectedItem.ToString();
                DialogResult dialogResult = MessageBox.Show("Are you sure you want to remove the selected pattern?", "Remove Pattern", MessageBoxButtons.YesNoCancel);
                switch (dialogResult)
                {
                case DialogResult.Yes:
                    PatternDictionary.GetInstance().RemovePattern(patternName);
                    patternListBox.Items.Remove(patternName);
                    patternInputLabelTable.Clear();
                    break;

                default: return;
                }
            }
            else
            {
                MessageBox.Show("Please select pattern to remove first.", "Remove Pattern");
            }
        }
Пример #9
0
 private void FillPatternComboBox()
 {
     patternsComboBox.Items.Clear();
     patternsComboBox.Items.AddRange(PatternDictionary.GetInstance().Entries.Keys.ToArray());
 }