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