Пример #1
0
        public void preparePointListForXor(XorTrResult xorTrResult, TrainingSetings.ActiviationFunction activationFunction)
        {
            float x1 = 0.01f;
            float x2 = 0.01f;

            for (int x = 0; x <= 100; x++)
            {
                x2 = 0.01f;
                for (int y = 0; y <= 100; y++)
                {
                    PointInfo point = preparePointForXor(xorTrResult, x1, x2, activationFunction);
                    point.color = activatonFunctions.correctionForSigmoid(point.color);

                    if (point.color == 0.00f)
                    {
                        list0.Add(point);
                    }
                    else
                    {
                        list1.Add(point);
                    }

                    x2 += 0.01f;
                }

                x1 += 0.01f;
            }
        }
Пример #2
0
        private void TrainingStartButton_Click(object sender, EventArgs e)
        {
            Debug.WriteLine("Click");
            try
            {
                trainingSetings.learningRate = float.Parse(LearningRateTB.Text, CultureInfo.InvariantCulture);
                trainingSetings.maxError     = float.Parse(MaxErrorTB.Text, CultureInfo.InvariantCulture);

                Debug.WriteLine("Jestem w try");

                if (trainingSetings.gateType == TrainingSetings.GateType.XOR)
                {
                    Debug.WriteLine("Xor training in Form1");
                    xorTrResult = trainingService.trainXOR(trainingSetings, gateTrValuesContainer);
                    showTrainingRaport(xorTrResult.raport);
                }
                else
                {
                    trainingResult = trainingService.train(trainingSetings, gateTrValuesContainer);
                    showTrainingRaport(trainingResult.raport);
                }
            }
            catch (NotImplementedException exception)
            {
                MessageBox.Show(exception.Message);
            }
            catch (ArgumentException exception)
            {
                MessageBox.Show(exception.Message);
            }
            catch (FormatException exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
Пример #3
0
        public PointInfo preparePointForXor(XorTrResult xorTrResult, float x, float y, TrainingSetings.ActiviationFunction activiationFunction)
        {
            xorTrResult.hNeuron1.inputs = new float[] { x, y };
            xorTrResult.hNeuron2.inputs = new float[] { x, y };

            xorTrResult.oNeuron.inputs = new float[] { xorTrResult.hNeuron1.output(), xorTrResult.hNeuron2.output() };

            return(new PointInfo(x, y, xorTrResult.oNeuron.output()));
        }
Пример #4
0
        public XorTrResult trainXOR(TrainingSetings settings, GateTrainingValuesContainer valuesContainer)
        {
            this.trainingSetings         = settings;
            this.valuesContainer         = valuesContainer;
            activationFunctions.maxError = trainingSetings.maxError;
            firstLineBuilder             = new StringBuilder();
            firstLineBuilder.Append("Trenowanie: ");
            firstLineBuilder.Append(" bramka: " + trainingSetings.gateType.ToString() + ", ");


            XorTrResult xorTrResult = trainByTwoNeuronsBySigmoid();

            return(xorTrResult);
        }
Пример #5
0
        public void showChartForXor(XorTrResult xorTrResult, TrainingSetings trainSettings)
        {
            list0 = new List <PointInfo>();
            list1 = new List <PointInfo>();
            activatonFunctions.maxError = trainSettings.maxError;

            preparePointListForXor(xorTrResult, trainSettings.activiationFunction);

            float[,] table0 = changeListToArray(list0);
            float[,] table1 = changeListToArray(list1);

            ChartForm chartForm = new ChartForm(table0, table1);

            chartForm.Show();
        }