From fb2fa29e83e5ed7cd8ddf90ffb95946e7498f365 Mon Sep 17 00:00:00 2001 From: Aron Virginas-Tar Date: Thu, 4 Jul 2019 11:59:48 +0100 Subject: IVGCVSW-3402 Support HAL 1.2 version of ResizeBilinear Signed-off-by: Aron Virginas-Tar Change-Id: Ide4754ccfd905b85afafd0eb626973f0745fe6ec --- 1.2/HalPolicy.cpp | 12 ++++++++---- 1.2/HalPolicy.hpp | 10 +++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp index 99cc9802..1c6159ef 100644 --- a/1.2/HalPolicy.cpp +++ b/1.2/HalPolicy.cpp @@ -42,7 +42,6 @@ bool HandledByV1_0(V1_2::OperationType operationType) case V1_0::OperationType::RELU1: case V1_0::OperationType::RELU6: case V1_0::OperationType::RESHAPE: - case V1_0::OperationType::RESIZE_BILINEAR: case V1_0::OperationType::RNN: case V1_0::OperationType::SOFTMAX: case V1_0::OperationType::SPACE_TO_DEPTH: @@ -142,8 +141,10 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model, return ConvertDepthwiseConv2d(operation, model, data); case V1_2::OperationType::PRELU: return ConvertPrelu(operation, model, data); + case V1_2::OperationType::RESIZE_BILINEAR: + return ConvertResize(operation, model, data, armnn::ResizeMethod::Bilinear); case V1_2::OperationType::RESIZE_NEAREST_NEIGHBOR: - return ConvertResizeNearestNeighbor(operation, model, data); + return ConvertResize(operation, model, data, armnn::ResizeMethod::NearestNeighbor); default: return Fail("%s: Operation type %s not supported in ArmnnDriver", __func__, toString(operation.type).c_str()); @@ -472,7 +473,10 @@ bool HalPolicy::ConvertPrelu(const Operation& operation, const Model& model, Con return SetupAndTrackLayerOutputSlot(operation, 0, *layer, model, data); } -bool HalPolicy::ConvertResizeNearestNeighbor(const Operation& operation, const Model& model, ConversionData& data) +bool HalPolicy::ConvertResize(const Operation& operation, + const Model& model, + ConversionData& data, + armnn::ResizeMethod resizeMethod) { LayerInputHandle input = ConvertToLayerInputHandle(operation, 0, model, data); if (!input.IsValid()) @@ -490,7 +494,7 @@ bool HalPolicy::ConvertResizeNearestNeighbor(const Operation& operation, const M const armnn::TensorInfo& outputInfo = GetTensorInfoForOperand(*output); armnn::ResizeDescriptor descriptor; - descriptor.m_Method = armnn::ResizeMethod::NearestNeighbor; + descriptor.m_Method = resizeMethod; descriptor.m_DataLayout = OptionalDataLayout(operation, 3, model, data); OperandType operandType1; diff --git a/1.2/HalPolicy.hpp b/1.2/HalPolicy.hpp index 762b1064..a7bef247 100644 --- a/1.2/HalPolicy.hpp +++ b/1.2/HalPolicy.hpp @@ -9,6 +9,8 @@ #include +#include + namespace armnn_driver { namespace hal_1_2 @@ -30,9 +32,15 @@ public: private: static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertPrelu(const Operation& operation, const Model& model, ConversionData& data); - static bool ConvertResizeNearestNeighbor(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertResize(const Operation& operation, + const Model& model, + ConversionData& data, + armnn::ResizeMethod resizeMethod); }; } // namespace hal_1_2 -- cgit v1.2.1