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