diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2019-07-26 16:59:35 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2019-07-29 08:17:44 +0000 |
commit | 15d63e2ec45a244bd8c7d913d834aa5cab46a807 (patch) | |
tree | 902c5ee1f89b45eeb14240d1e460c4acffd3d5f8 /1.2 | |
parent | b7421e5b2a7cd924155b8fc7ec1fc006c0e0519d (diff) | |
download | android-nn-driver-15d63e2ec45a244bd8c7d913d834aa5cab46a807.tar.gz |
IVGCVSW-3582 Fix Skipped Pooling Hal 1.2 Tests
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I9f9d11b19de591ec8936822ca229b4090ed318fe
Diffstat (limited to '1.2')
-rw-r--r-- | 1.2/HalPolicy.cpp | 27 | ||||
-rw-r--r-- | 1.2/HalPolicy.hpp | 6 |
2 files changed, 30 insertions, 3 deletions
diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp index 7515eb3e..9cad29fa 100644 --- a/1.2/HalPolicy.cpp +++ b/1.2/HalPolicy.cpp @@ -25,7 +25,6 @@ bool HandledByV1_0(V1_2::OperationType operationType) switch (static_cast<V1_0::OperationType>(operationType)) { case V1_0::OperationType::ADD: - case V1_0::OperationType::AVERAGE_POOL_2D: case V1_0::OperationType::CONCATENATION: case V1_0::OperationType::DEPTH_TO_SPACE: case V1_0::OperationType::DEQUANTIZE: @@ -34,12 +33,10 @@ bool HandledByV1_0(V1_2::OperationType operationType) case V1_0::OperationType::FULLY_CONNECTED: case V1_0::OperationType::HASHTABLE_LOOKUP: case V1_0::OperationType::L2_NORMALIZATION: - case V1_0::OperationType::L2_POOL_2D: case V1_0::OperationType::LOCAL_RESPONSE_NORMALIZATION: case V1_0::OperationType::LOGISTIC: case V1_0::OperationType::LSH_PROJECTION: case V1_0::OperationType::LSTM: - case V1_0::OperationType::MAX_POOL_2D: case V1_0::OperationType::MUL: case V1_0::OperationType::RESHAPE: case V1_0::OperationType::RNN: @@ -131,10 +128,16 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model, switch (operation.type) { + case V1_2::OperationType::AVERAGE_POOL_2D: + return ConvertAveragePool2d(operation, model, data); case V1_2::OperationType::CONV_2D: return ConvertConv2d(operation, model, data); case V1_2::OperationType::DEPTHWISE_CONV_2D: return ConvertDepthwiseConv2d(operation, model, data); + case V1_2::OperationType::L2_POOL_2D: + return ConvertL2Pool2d(operation, model, data); + case V1_2::OperationType::MAX_POOL_2D: + return ConvertMaxPool2d(operation, model, data); case V1_2::OperationType::MAXIMUM: return ConvertMaximum(operation, model, data); case V1_2::OperationType::MINIMUM: @@ -167,6 +170,12 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model, } } +bool HalPolicy::ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data) +{ + ALOGV("hal_1_2::HalPolicy::ConvertAveragePool2d()"); + return ConvertPooling2d<hal_1_2::HalPolicy>(operation, __func__, armnn::PoolingAlgorithm::Average, model, data); +} + bool HalPolicy::ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data) { ALOGV("hal_1_2::HalPolicy::ConvertConv2d()"); @@ -485,6 +494,18 @@ bool HalPolicy::ConvertDepthwiseConv2d(const Operation& operation, const Model& return SetupAndTrackLayerOutputSlot<hal_1_2::HalPolicy>(operation, 0, *endLayer, model, data); } +bool HalPolicy::ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data) +{ + ALOGV("hal_1_2::HalPolicy::ConvertL2Pool2d()"); + return ConvertPooling2d<hal_1_2::HalPolicy>(operation, __func__, armnn::PoolingAlgorithm::L2, model, data); +} + +bool HalPolicy::ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data) +{ + ALOGV("hal_1_2::HalPolicy::ConvertMaxPool2d()"); + return ConvertPooling2d<hal_1_2::HalPolicy>(operation, __func__, armnn::PoolingAlgorithm::Max, model, data); +} + bool HalPolicy::ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data) { ALOGV("hal_1_2::HalPolicy::ConvertMaximum()"); diff --git a/1.2/HalPolicy.hpp b/1.2/HalPolicy.hpp index d11ae3ca..f689613f 100644 --- a/1.2/HalPolicy.hpp +++ b/1.2/HalPolicy.hpp @@ -31,10 +31,16 @@ public: static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data); private: + static bool ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data); static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data); + static bool ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data); static bool ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data); |