Add 'do-not-print-output' option to ExNet

Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: I10fb010ee8d3f813d2264cefb526f352e30d7046
diff --git a/tests/NetworkExecutionUtils/NetworkExecutionUtils.cpp b/tests/NetworkExecutionUtils/NetworkExecutionUtils.cpp
index 0906c1c..da3188c 100644
--- a/tests/NetworkExecutionUtils/NetworkExecutionUtils.cpp
+++ b/tests/NetworkExecutionUtils/NetworkExecutionUtils.cpp
@@ -116,19 +116,26 @@
 TensorPrinter::TensorPrinter(const std::string& binding,
                              const armnn::TensorInfo& info,
                              const std::string& outputTensorFile,
-                             bool dequantizeOutput)
+                             bool dequantizeOutput,
+                             const bool printToConsole)
                              : m_OutputBinding(binding)
                              , m_Scale(info.GetQuantizationScale())
                              , m_Offset(info.GetQuantizationOffset())
                              , m_OutputTensorFile(outputTensorFile)
-                             , m_DequantizeOutput(dequantizeOutput) {}
+                             , m_DequantizeOutput(dequantizeOutput)
+                             , m_PrintToConsole(printToConsole) {}
 
 void TensorPrinter::operator()(const std::vector<float>& values)
 {
-    ForEachValue(values, [](float value)
+    if (m_PrintToConsole)
     {
-        printf("%f ", value);
-    });
+        std::cout << m_OutputBinding << ": ";
+        ForEachValue(values, [](float value)
+        {
+            printf("%f ", value);
+        });
+        printf("\n");
+    }
     WriteToFile(values);
 }
 
@@ -142,9 +149,19 @@
         ForEachValue(values, [&scale, &offset, &dequantizedValues](uint8_t value)
         {
             auto dequantizedValue = armnn::Dequantize(value, scale, offset);
-            printf("%f ", dequantizedValue);
             dequantizedValues.push_back(dequantizedValue);
         });
+
+        if (m_PrintToConsole)
+        {
+            std::cout << m_OutputBinding << ": ";
+            ForEachValue(dequantizedValues, [](float value)
+            {
+                printf("%f ", value);
+            });
+            printf("\n");
+        }
+
         WriteToFile(dequantizedValues);
     }
     else
@@ -156,31 +173,47 @@
 
 void TensorPrinter::operator()(const std::vector<int8_t>& values)
 {
-    ForEachValue(values, [](int8_t value)
+    if (m_PrintToConsole)
     {
-        printf("%d ", value);
-    });
+        std::cout << m_OutputBinding << ": ";
+        ForEachValue(values, [](int8_t value)
+        {
+            printf("%d ", value);
+        });
+        printf("\n");
+    }
     WriteToFile(values);
 }
 
 void TensorPrinter::operator()(const std::vector<int>& values)
 {
-    ForEachValue(values, [](int value)
+    if (m_PrintToConsole)
     {
-        printf("%d ", value);
-    });
+        std::cout << m_OutputBinding << ": ";
+        ForEachValue(values, [](int value)
+        {
+            printf("%d ", value);
+        });
+        printf("\n");
+    }
     WriteToFile(values);
 }
 
 template<typename Container, typename Delegate>
 void TensorPrinter::ForEachValue(const Container& c, Delegate delegate)
 {
-    std::cout << m_OutputBinding << ": ";
+    if (m_PrintToConsole)
+    {
+        std::cout << m_OutputBinding << ": ";
+    }
     for (const auto& value : c)
     {
         delegate(value);
     }
-    printf("\n");
+    if (m_PrintToConsole)
+    {
+        printf("\n");
+    }
 }
 
 template<typename T>
diff --git a/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp b/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp
index d92c17c..0abda4f 100644
--- a/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp
+++ b/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp
@@ -26,7 +26,8 @@
     TensorPrinter(const std::string& binding,
                   const armnn::TensorInfo& info,
                   const std::string& outputTensorFile,
-                  bool dequantizeOutput);
+                  bool dequantizeOutput,
+                  bool printToConsole = true);
 
     void operator()(const std::vector<float>& values);
 
@@ -48,6 +49,7 @@
     int m_Offset;
     std::string m_OutputTensorFile;
     bool m_DequantizeOutput;
+    bool m_PrintToConsole;
 };
 
 using TContainer =