[Hai Users, Can anyone explain me the function of training error log as in the picture below. Kindly need your helps. Thank You.

Recommended Answers

All 4 Replies

**Hai Users, Can anyone explain me the function of training error log as in the picture below. Kindly need your helps. Thank You.

**

shepri, your question doesnot seem to be understandable, please be more clear on your requirements, thanks, and also show what have you done.

arunkumar thanks for your reply. the training error log contain this codes. I can't understdn this code

private void Train(object sender, EventArgs e)
{
btnTrain.Enabled = false;

        int cycles = 200;
        if (!int.TryParse(txtCycles.Text, out cycles)) { cycles = 200; }
        txtCycles.Text = cycles.ToString();

        int currentCombination = 0;
        int totalCombinations = Alphabet.LetterCount * (Alphabet.LetterCount - 1) / 2;

        for (int i = 0; i < Alphabet.LetterCount; i++)
        {
            for (int j = i + 1; j < Alphabet.LetterCount; j++)
            {
                ActivationLayer inputLayer = new LinearLayer(400);
                ActivationLayer hiddenLayer = new SigmoidLayer(4);
                ActivationLayer outputLayer = new SigmoidLayer(2);
                new BackpropagationConnector(inputLayer, hiddenLayer);
                new BackpropagationConnector(hiddenLayer, outputLayer);
                BackpropagationNetwork network = new BackpropagationNetwork(inputLayer, outputLayer);

                TrainingSet trainingSet = new TrainingSet(400, 2);
                Alphabet ithLetter = Alphabet.GetLetter(i);
                Alphabet jthLetter = Alphabet.GetLetter(j);
                foreach (Letter instance in ithLetter.Instances)
                {
                    trainingSet.Add(new TrainingSample(instance.GetEquivalentVector(20, 20), new double[] { 1d, 0d }));
                }
                foreach (Letter instance in jthLetter.Instances)
                {
                    trainingSet.Add(new TrainingSample(instance.GetEquivalentVector(20, 20), new double[] { 0d, 1d }));
                }

                progressTraining.Value = 100 * currentCombination / totalCombinations;

                Application.DoEvents();

                bool correct = false;

                int currentCycles = 35;
                int count = trainingSet.TrainingSampleCount;

                while (correct == false & currentCycles <= cycles)
                {
                    network.Initialize();
                    network.Learn(trainingSet, currentCycles);
                    correct = true;
                    for (int sampleIndex = 0; sampleIndex < count; sampleIndex++)
                    {
                        double[] op = network.Run(trainingSet[sampleIndex].InputVector);
                        if (((trainingSet[sampleIndex].OutputVector[0] > trainingSet[sampleIndex].OutputVector[1]) && op[0] - op[1] < 0.4) || ((trainingSet[sampleIndex].OutputVector[0] < trainingSet[sampleIndex].OutputVector[1]) && op[1] - op[0] < 0.4))
                        {
                            correct = false;
                            trainingSet.Add(trainingSet[sampleIndex]);
                        }
                    }
                    currentCycles *= 2;
                }

                lstLog.Items.Add(cboAplhabet.Items[i] + " & " + cboAplhabet.Items[j] + " = " + network.MeanSquaredError.ToString("0.0000"));
                lstLog.TopIndex = lstLog.Items.Count - (int)(lstLog.Height / lstLog.ItemHeight);
                try
                {
                    using (Stream stream = File.Open(Application.StartupPath + @"\Networks\" + i.ToString("00") + j.ToString("00") + ".ndn", FileMode.Create))
                    {
                        IFormatter formatter = new BinaryFormatter();
                        formatter.Serialize(stream, network);
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Failed to save trained neural networks", "Critical Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                currentCombination++;
            }
        }
        progressTraining.Value = 0;
        btnTrain.Enabled = false;
    }

It looks as if it is a visible representation of the similarity of the a suspected letter against other letters of the alphabet -- where the higher number represents a greater similarity.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.