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; } }
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); } }
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())); }
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); }
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(); }