diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-07-10 13:01:41 +0100 |
---|---|---|
committer | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-07-10 13:01:41 +0100 |
commit | 366e0a66f4566cf71dff3f850556350709ee66a8 (patch) | |
tree | f85badd07900acca485b6b66c8fd4b9b59f777fd /1.0 | |
parent | f03fcf0dd180ba2c87648a524fcca9214e1f979b (diff) | |
download | android-nn-driver-366e0a66f4566cf71dff3f850556350709ee66a8.tar.gz |
IVGCVSW-3482 Report operations with dynamic output size as unsupported
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Ifafe2a6fbfd6019b3395d51ed9967db794d2b034
Diffstat (limited to '1.0')
-rw-r--r-- | 1.0/HalPolicy.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/1.0/HalPolicy.cpp b/1.0/HalPolicy.cpp index 9673a74c..2149d40f 100644 --- a/1.0/HalPolicy.cpp +++ b/1.0/HalPolicy.cpp @@ -8,6 +8,7 @@ #include <armnn/Optional.hpp> #include "FullyConnected.hpp" +#include "OutputShapeUtils.hpp" namespace armnn_driver { @@ -388,11 +389,17 @@ bool HalPolicy::ConvertDequantize(const Operation& operation, const Model& model return Fail("%s: Operation has invalid outputs", __func__); } + const armnn::TensorInfo& outputInfo = GetTensorInfoForOperand(*outputOperand); + if (IsDynamicOutput(outputInfo)) + { + return Fail("%s: Dynamic output not supported", __func__); + } + if (!IsLayerSupportedForAnyBackend(__func__, armnn::IsDequantizeSupported, data.m_Backends, input.GetTensorInfo(), - GetTensorInfoForOperand(*outputOperand))) + outputInfo)) { return false; } @@ -957,6 +964,11 @@ bool HalPolicy::ConvertL2Normalization(const Operation& operation, const Model& const armnn::TensorInfo& inputInfo = input.GetTensorInfo(); const armnn::TensorInfo& outputInfo = GetTensorInfoForOperand(*output); + if (IsDynamicOutput(outputInfo)) + { + return Fail("%s: Dynamic output not supported", __func__); + } + armnn::L2NormalizationDescriptor desc; desc.m_DataLayout = armnn::DataLayout::NHWC; @@ -1082,7 +1094,11 @@ bool HalPolicy::ConvertSoftmax(const Operation& operation, const Model& model, C return Fail("%s: Operation has no outputs", __func__); } - const armnn::TensorInfo outInfo = GetTensorInfoForOperand(*outputOperand); + const armnn::TensorInfo outputInfo = GetTensorInfoForOperand(*outputOperand); + if (IsDynamicOutput(outputInfo)) + { + return Fail("%s: Dynamic output not supported", __func__); + } armnn::SoftmaxDescriptor desc; if (!GetInputFloat32<hal_1_0::HalPolicy>(operation, 1, desc.m_Beta, model, data)) @@ -1094,7 +1110,7 @@ bool HalPolicy::ConvertSoftmax(const Operation& operation, const Model& model, C armnn::IsSoftmaxSupported, data.m_Backends, input.GetTensorInfo(), - outInfo, + outputInfo, desc)) { return false; |