ArmNN
 22.05
TensorPrinter Struct Reference

#include <NetworkExecutionUtils.hpp>

Public Member Functions

 TensorPrinter (const std::string &binding, const armnn::TensorInfo &info, const std::string &outputTensorFile, bool dequantizeOutput, bool printToConsole=true)
 
void operator() (const std::vector< float > &values)
 
void operator() (const std::vector< uint8_t > &values)
 
void operator() (const std::vector< int > &values)
 
void operator() (const std::vector< int8_t > &values)
 

Detailed Description

Definition at line 23 of file NetworkExecutionUtils.hpp.

Constructor & Destructor Documentation

◆ TensorPrinter()

TensorPrinter ( const std::string &  binding,
const armnn::TensorInfo info,
const std::string &  outputTensorFile,
bool  dequantizeOutput,
bool  printToConsole = true 
)

Definition at line 116 of file NetworkExecutionUtils.cpp.

121  : m_OutputBinding(binding)
122  , m_Scale(info.GetQuantizationScale())
123  , m_Offset(info.GetQuantizationOffset())
124  , m_OutputTensorFile(outputTensorFile)
125  , m_DequantizeOutput(dequantizeOutput)
126  , m_PrintToConsole(printToConsole) {}
int32_t GetQuantizationOffset() const
Definition: Tensor.cpp:478
float GetQuantizationScale() const
Definition: Tensor.cpp:461

Member Function Documentation

◆ operator()() [1/4]

void operator() ( const std::vector< float > &  values)

Definition at line 128 of file NetworkExecutionUtils.cpp.

Referenced by operator()().

129 {
130  if (m_PrintToConsole)
131  {
132  std::cout << m_OutputBinding << ": ";
133  ForEachValue(values, [](float value)
134  {
135  printf("%f ", value);
136  });
137  printf("\n");
138  }
139  WriteToFile(values);
140 }

◆ operator()() [2/4]

void operator() ( const std::vector< uint8_t > &  values)

Definition at line 142 of file NetworkExecutionUtils.cpp.

References armnn::Dequantize(), and operator()().

143 {
144  if(m_DequantizeOutput)
145  {
146  auto& scale = m_Scale;
147  auto& offset = m_Offset;
148  std::vector<float> dequantizedValues;
149  ForEachValue(values, [&scale, &offset, &dequantizedValues](uint8_t value)
150  {
151  auto dequantizedValue = armnn::Dequantize(value, scale, offset);
152  dequantizedValues.push_back(dequantizedValue);
153  });
154 
155  if (m_PrintToConsole)
156  {
157  std::cout << m_OutputBinding << ": ";
158  ForEachValue(dequantizedValues, [](float value)
159  {
160  printf("%f ", value);
161  });
162  printf("\n");
163  }
164 
165  WriteToFile(dequantizedValues);
166  }
167  else
168  {
169  const std::vector<int> intValues(values.begin(), values.end());
170  operator()(intValues);
171  }
172 }
float Dequantize(QuantizedType value, float scale, int32_t offset)
Dequantize an 8-bit data type into a floating point data type.
Definition: TypesUtils.cpp:46
void operator()(const std::vector< float > &values)

◆ operator()() [3/4]

void operator() ( const std::vector< int > &  values)

Definition at line 188 of file NetworkExecutionUtils.cpp.

References ARMNN_LOG.

189 {
190  if (m_PrintToConsole)
191  {
192  std::cout << m_OutputBinding << ": ";
193  ForEachValue(values, [](int value)
194  {
195  printf("%d ", value);
196  });
197  printf("\n");
198  }
199  WriteToFile(values);
200 }

◆ operator()() [4/4]

void operator() ( const std::vector< int8_t > &  values)

Definition at line 174 of file NetworkExecutionUtils.cpp.

175 {
176  if (m_PrintToConsole)
177  {
178  std::cout << m_OutputBinding << ": ";
179  ForEachValue(values, [](int8_t value)
180  {
181  printf("%d ", value);
182  });
183  printf("\n");
184  }
185  WriteToFile(values);
186 }

The documentation for this struct was generated from the following files: