IVGCVSW-4259 Add frontend and reference workload for UnaryOperationLayer
* Added new layer named ElementwiseUnary
* Deprecated existing Abs/Rsqrt layer functions
* Updated existing Abs/Rsqrt test infrastructure to use new layer
* Added boilerplate for new Exp,Neg,Sqrt elemwise op layers
* AbsQuantize test removed pending future commit
* Serialization support added
!android-nn-driver:2550
Change-Id: Ic595c645925e17b45db568187fd05646daf2e87f
Signed-off-by: josh minor <josh.minor@arm.com>
diff --git a/src/backends/backendsCommon/LayerSupportBase.cpp b/src/backends/backendsCommon/LayerSupportBase.cpp
index 8332774..b19356f 100644
--- a/src/backends/backendsCommon/LayerSupportBase.cpp
+++ b/src/backends/backendsCommon/LayerSupportBase.cpp
@@ -3,7 +3,10 @@
// SPDX-License-Identifier: MIT
//
+#include <armnn/Deprecated.hpp>
+#include <armnn/Descriptors.hpp>
#include <armnn/Exceptions.hpp>
+#include <armnn/Types.hpp>
#include <backendsCommon/LayerSupportBase.hpp>
@@ -195,6 +198,26 @@
return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
}
+bool LayerSupportBase::IsElementwiseUnarySupported(const TensorInfo& input,
+ const TensorInfo& output,
+ const ElementwiseUnaryDescriptor& descriptor,
+ Optional<std::string&> reasonIfUnsupported) const
+{
+ if (descriptor.m_Operation == UnaryOperation::Abs)
+ {
+ ARMNN_NO_DEPRECATE_WARN_BEGIN
+ return IsAbsSupported(input, output, reasonIfUnsupported);
+ ARMNN_NO_DEPRECATE_WARN_END
+ }
+ else if (descriptor.m_Operation == UnaryOperation::Rsqrt)
+ {
+ ARMNN_NO_DEPRECATE_WARN_BEGIN
+ return IsRsqrtSupported(input, output, reasonIfUnsupported);
+ ARMNN_NO_DEPRECATE_WARN_END
+ }
+ return false;
+}
+
bool LayerSupportBase::IsEqualSupported(const armnn::TensorInfo& /*input0*/,
const armnn::TensorInfo& /*input1*/,
const armnn::TensorInfo& /*output*/,