From f8e358463b4b612eb958fa2dd7588dbefe9b3e2a Mon Sep 17 00:00:00 2001 From: thecha01 Date: Tue, 28 Jul 2020 17:28:17 +0100 Subject: Add support ElementwiseMax operator in graph API Signed-off-by: thecha01 Change-Id: I764f1eabb6412350eb719cc755b8777efc7d70a1 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3736 Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio --- arm_compute/graph/Types.h | 1 + arm_compute/graph/backends/FunctionHelpers.h | 6 ++++++ arm_compute/graph/backends/ValidateHelpers.h | 4 ++++ 3 files changed, 11 insertions(+) (limited to 'arm_compute/graph') diff --git a/arm_compute/graph/Types.h b/arm_compute/graph/Types.h index 3a4d0a6070..65d737c7b2 100644 --- a/arm_compute/graph/Types.h +++ b/arm_compute/graph/Types.h @@ -104,6 +104,7 @@ enum class EltwiseOperation Add, /**< Arithmetic addition */ Sub, /**< Arithmetic subtraction */ Mul, /**< Arithmetic multiplication */ + Max, /**< Arithmetic maximum */ }; /** Supported Unary Element-wise operations */ diff --git a/arm_compute/graph/backends/FunctionHelpers.h b/arm_compute/graph/backends/FunctionHelpers.h index af748341a5..60a03e67b0 100644 --- a/arm_compute/graph/backends/FunctionHelpers.h +++ b/arm_compute/graph/backends/FunctionHelpers.h @@ -798,6 +798,12 @@ std::unique_ptr create_eltwise_layer(EltwiseLayerNode &node) std::string("PixelWiseMultiplication"), input1, input2, output, 1.f, convert_policy, node.rounding_policy(), act_info); } + else if(eltwise_op == EltwiseOperation::Max) + { + std::tie(func, func_name) = create_named_function( + std::string("ElementwiseMaximum"), + input1, input2, output, act_info); + } else { ARM_COMPUTE_ERROR("Unsupported element-wise operation!"); diff --git a/arm_compute/graph/backends/ValidateHelpers.h b/arm_compute/graph/backends/ValidateHelpers.h index c929983834..0aec2aec1c 100644 --- a/arm_compute/graph/backends/ValidateHelpers.h +++ b/arm_compute/graph/backends/ValidateHelpers.h @@ -616,6 +616,10 @@ Status validate_eltwise_Layer(EltwiseLayerNode &node) { return EltwiseLayerFunctions::PixelWiseMultiplication::validate(input1, input2, output, scale, convert_policy, round_policy, act_info); } + else if(eltwise_op == EltwiseOperation::Max) + { + return EltwiseLayerFunctions::ElementwiseMax::validate(input1, input2, output, act_info); + } else { ARM_COMPUTE_ERROR("Unsupported element-wise operation!"); -- cgit v1.2.1