#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "TImage.h" #include "TCanvas.h" #include "TArrayD.h" #include "TROOT.h" #include "TColor.h" #include "TAttImage.h" #include "TEnv.h" #include "TVirtualFFT.h" #include "TRandom.h" #include "TTree.h" #include #include "TMultiLayerPerceptron.h" #include "TMLPAnalyzer.h" #include "TAxis" #include #include #include #include #include #include #include "FinalNeuralNet.h" FinalNeuralNet *f = new FinalNeuralNet; //Declare FinalNeuralNet cout << "\n\n\n"; cout << "X COORDINATE \t\t" << "Y COORDINDATE \t\t" << "GROUND TRUTH" << " \t\t" << "NEURALNET OUTPUT \t\t" << "INTERPRETATION " << "\n"; cout << "-------------------------------------------------------------------------------------------------------------\n\n"; int index = 0; // check if outside circle or not float score = 0; float NumOfIt = 0; for (double X = -23; X <= 23; X = X + 0.01) { int y = rand() % 20; // generate random value between 0 and 20 int j = rand() % 2; //generate random index between 0 and 1 int Y = y ^ (-j); // generate random Y coordinate between -10 and 10 double b = f->Value(0, X, Y); //Call function from class if (b < 0) b = b*-1; string GT; int indice1, indice2; // to compare strings if ((X < -12) && (X < -22) && (Y < 15) && (Y > 5)) { GT = "Yellow"; index = 1; indice1 = 0; } else if ((X < -4) && (X > -14) && (Y < 9) && (Y > -1)) { GT = "Cyan"; index = 1; indice1 = 1; } else if ((X > -5) && (X < -5) && (Y < 5) && (Y > -5)) { GT = "Green"; index = 1; indice1 = 2; } else if ((X > 4) && (X < 14) && (Y < 9) && (Y > -1)) { GT = "Blue"; index = 1; indice1 = 3; } else if ((X > 12) && (X < 22) && (Y < 15) && (Y > 5)) { GT = "Red"; index = 1; indice1 = 4; } else { GT = "Outside"; index = 0; } string Guess; if (b < 0.2) { Guess = "Yellow"; indice2 = 0; } else if ((b > 0.8) && (b < 1.2)) { Guess = "Cyan"; indice2 = 1; } else if ((b > 1.8) && (b < 2.2)) { Guess = "Green"; indice2 = 2; } else if ((b > 2.8) && (b < 3.2)) { Guess = "Blue"; indice2 = 3; } else if ((b > 3.8) && (b < 4.2)) { Guess = "Red"; indice2 = 4; } else Guess = "Cannot tell"; if (Guess.compare(GT) == 0) // check if guess and ground truth are the same ++score; if (index == 1) { cout << std::setprecision(3) << i << "\t\t\t" << std::setprecision(3) << Y << "\t\t\t" << GT << "\t\t\t" << std::setprecision(3) << b << "\t\t\t" << Guess << "\n"; ++NumOfIt; } } float percentage = (score / NumOfIt) * 100; cout << "Here is your percentage of success: " << percentage << "\n\n"; }