diff options
Diffstat (limited to 'ModelToINetworkConverter.hpp')
-rw-r--r-- | ModelToINetworkConverter.hpp | 29 |
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; |