aboutsummaryrefslogtreecommitdiff
path: root/ModelToINetworkConverter.hpp
diff options
context:
space:
mode:
authorkevmay01 <kevin.may@arm.com>2018-08-30 12:34:39 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-09-18 12:40:38 +0100
commitbc5f784d34a5315748b56cecb4674f4e546da2cd (patch)
tree70f300c7932301802cc8937531b5cf189e3bd536 /ModelToINetworkConverter.hpp
parent69558df6f149647888267caabf72de6b05fb6d53 (diff)
downloadandroid-nn-driver-bc5f784d34a5315748b56cecb4674f4e546da2cd.tar.gz
IVGCVSW-1770: Refactor ModelToINetworkConverter to allow conversion of HAL1.1 operators
Change-Id: I9b10f0a9c88344df108b2325c0233f9660fa6b7c
Diffstat (limited to 'ModelToINetworkConverter.hpp')
-rw-r--r--ModelToINetworkConverter.hpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/ModelToINetworkConverter.hpp b/ModelToINetworkConverter.hpp
index f0e28970..6fdcf6bd 100644
--- a/ModelToINetworkConverter.hpp
+++ b/ModelToINetworkConverter.hpp
@@ -33,13 +33,28 @@ enum class ConversionResult
UnsupportedFeature
};
+struct HalVersion_1_0
+{
+ using Model = ::android::hardware::neuralnetworks::V1_0::Model;
+};
+
+#if defined(ARMNN_ANDROID_NN_V1_1)
+struct HalVersion_1_1
+{
+ using Model = ::android::hardware::neuralnetworks::V1_1::Model;
+};
+#endif
+
// A helper performing the conversion from an AndroidNN driver Model representation,
// to an armnn::INetwork object
+template <typename HalVersion>
class ModelToINetworkConverter
{
public:
+ using HalModel = typename HalVersion::Model;
+
ModelToINetworkConverter(armnn::Compute compute,
- const ::android::hardware::neuralnetworks::V1_0::Model& model,
+ const HalModel& model,
const std::set<unsigned int>& forcedUnsupportedOperations);
ConversionResult GetConversionResult() const { return m_ConversionResult; }
@@ -52,6 +67,10 @@ public:
private:
void Convert();
+#if defined(ARMNN_ANDROID_NN_V1_1)
+ bool ConvertOperation(const ::android::hardware::neuralnetworks::V1_1::Operation& operation);
+#endif
+
bool ConvertOperation(const ::android::hardware::neuralnetworks::V1_0::Operation& operation);
bool ConvertAdd(const ::android::hardware::neuralnetworks::V1_0::Operation& operation);
@@ -112,7 +131,7 @@ private:
const Operand* GetOutputOperand(const ::android::hardware::neuralnetworks::V1_0::Operation& operation,
uint32_t outputIndex) const;
- template<typename T>
+ template <typename T>
bool GetInputScalar(const ::android::hardware::neuralnetworks::V1_0::Operation& operation, uint32_t inputIndex,
OperandType type, T& outValue) const;
@@ -172,9 +191,9 @@ private:
// Input data
- armnn::Compute m_Compute;
- const ::android::hardware::neuralnetworks::V1_0::Model& m_Model;
- const std::set<unsigned int>& m_ForcedUnsupportedOperations;
+ armnn::Compute m_Compute;
+ const HalModel& m_Model;
+ const std::set<unsigned int>& m_ForcedUnsupportedOperations;
// Output data
armnn::INetworkPtr m_Network;