Esempio n. 1
0
    public float TestAll()
    {
        int correct = 0;

        for (int i = 0; i < testing.Length; i++)
        {
            DoodleData   data   = testing[i];
            List <float> inputs = new List <float>();
            for (int j = 0; j < data.val.Length; j++)
            {
                inputs.Add(data.val[j] / 255.0f);
            }

            eDoodleCategory label          = data.label;
            float[]         guess          = nn.predict(inputs).ToArray();
            float           m              = Mathf.Max(guess);
            int             classification = System.Array.IndexOf(guess, m);
            if (classification == (int)label)
            {
                correct++;
            }
        }

        float percent = 100f * (float)correct / testing.Length;

        return(percent);
    }
Esempio n. 2
0
    public void TrainEpoch()
    {
        classifierState = eClassifierState.TRAIN;
        training        = NNUtils.Shuffle(training);
        for (int i = 0; i < training.Length; i++)
        {
            DoodleData   data   = training[i];
            List <float> inputs = new List <float>();
            for (int j = 0; j < data.val.Length; j++)
            {
                inputs.Add(data.val[j] / 255.0f);
            }

            eDoodleCategory label   = data.label;
            List <float>    targets = new List <float>()
            {
                0f, 0f, 0f
            };
            targets[(int)label] = 1;

            nn.train(inputs, targets);
        }
        classifierState = eClassifierState.NONE;
    }