IVGCVSW-2900 Adding the Accuracy Checker Tool and tests

Change-Id: I4ac325e45f2236b8e0757d21046f117024ce3979
Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
diff --git a/src/armnnUtils/ModelAccuracyChecker.cpp b/src/armnnUtils/ModelAccuracyChecker.cpp
new file mode 100644
index 0000000..bee5ca2
--- /dev/null
+++ b/src/armnnUtils/ModelAccuracyChecker.cpp
@@ -0,0 +1,31 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include <vector>
+#include <map>
+#include <boost/log/trivial.hpp>
+#include "ModelAccuracyChecker.hpp"
+
+namespace armnnUtils
+{
+
+armnnUtils::ModelAccuracyChecker::ModelAccuracyChecker(const std::map<std::string, int>& validationLabels)
+    : m_GroundTruthLabelSet(validationLabels){}
+
+float ModelAccuracyChecker::GetAccuracy(unsigned int k)
+{
+    if(k > 10) {
+        BOOST_LOG_TRIVIAL(info) << "Accuracy Tool only supports a maximum of Top 10 Accuracy. "
+                                   "Printing Top 10 Accuracy result!";
+        k = 10;
+    }
+    unsigned int total = 0;
+    for (unsigned int i = k; i > 0; --i)
+    {
+        total += m_TopK[i];
+    }
+    return static_cast<float>(total * 100) / static_cast<float>(m_ImagesProcessed);
+}
+}
\ No newline at end of file