IVGCVSW-1770: Refactor ModelToINetworkConverter to allow conversion of HAL1.1 operators
Change-Id: I9b10f0a9c88344df108b2325c0233f9660fa6b7c
diff --git a/Utils.hpp b/Utils.hpp
index e805f26..5d9f700 100644
--- a/Utils.hpp
+++ b/Utils.hpp
@@ -43,7 +43,38 @@
armnn::TensorInfo GetTensorInfoForOperand(const Operand& operand);
std::string GetOperandSummary(const Operand& operand);
-std::string GetModelSummary(const ::android::hardware::neuralnetworks::V1_0::Model& model);
+
+template <typename Model>
+std::string GetModelSummary(const Model& model)
+{
+ std::stringstream result;
+
+ result << model.inputIndexes.size() << " input(s), " << model.operations.size() << " operation(s), " <<
+ model.outputIndexes.size() << " output(s), " << model.operands.size() << " operand(s)" << std::endl;
+
+ result << "Inputs: ";
+ for (uint32_t i = 0; i < model.inputIndexes.size(); i++)
+ {
+ result << GetOperandSummary(model.operands[model.inputIndexes[i]]) << ", ";
+ }
+ result << std::endl;
+
+ result << "Operations: ";
+ for (uint32_t i = 0; i < model.operations.size(); i++)
+ {
+ result << toString(model.operations[i].type).c_str() << ", ";
+ }
+ result << std::endl;
+
+ result << "Outputs: ";
+ for (uint32_t i = 0; i < model.outputIndexes.size(); i++)
+ {
+ result << GetOperandSummary(model.operands[model.outputIndexes[i]]) << ", ";
+ }
+ result << std::endl;
+
+ return result.str();
+}
void DumpTensor(const std::string& dumpDir,
const std::string& requestName,
@@ -59,4 +90,4 @@
const std::string& dumpDir,
const ::android::hardware::neuralnetworks::V1_0::Model& model);
-}
+}
\ No newline at end of file