From d25af6786c0a714f2b4f099d0338dab17a5dc7e1 Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Wed, 10 Jul 2019 17:06:12 +0100 Subject: COMPMID-2456: NEDeconvolutionLayer.cpp, NHWC is not supported Support of NHWC for NEDeconvolutionLayer Bugfix for QASYMM8 in CPPUpsample when offset is different than 0 QASYMM8 tests added in NEUpsample with offset different than 0 Change-Id: I8283fa5e5e323fd4d5777136359ddb33025674bb Signed-off-by: Manuel Bottini Reviewed-on: https://review.mlplatform.org/c/1517 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Pablo Marquez --- tests/validation/reference/UpsampleLayer.cpp | 36 +++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'tests/validation/reference') diff --git a/tests/validation/reference/UpsampleLayer.cpp b/tests/validation/reference/UpsampleLayer.cpp index 876f6d794a..8e36ee857e 100644 --- a/tests/validation/reference/UpsampleLayer.cpp +++ b/tests/validation/reference/UpsampleLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 ARM Limited. + * Copyright (c) 2018-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -33,9 +33,10 @@ namespace validation { namespace reference { +namespace +{ template -SimpleTensor upsample_layer(const SimpleTensor &src, - const Size2D &info, const InterpolationPolicy policy) +SimpleTensor upsample_function(const SimpleTensor &src, const Size2D &info, const InterpolationPolicy policy) { ARM_COMPUTE_ERROR_ON(policy != InterpolationPolicy::NEAREST_NEIGHBOR); ARM_COMPUTE_UNUSED(policy); @@ -72,16 +73,39 @@ SimpleTensor upsample_layer(const SimpleTensor &src, } } } - return out; } +} // namespace + +template +SimpleTensor upsample_layer(const SimpleTensor &src, const Size2D &info, const InterpolationPolicy policy) +{ + return upsample_function(src, info, policy); +} + +template <> +SimpleTensor upsample_layer(const SimpleTensor &src, const Size2D &info, const InterpolationPolicy policy) +{ + SimpleTensor dst(src.shape(), src.data_type(), 1, src.quantization_info()); + + if(is_data_type_quantized_asymmetric(src.data_type())) + { + SimpleTensor src_tmp = convert_from_asymmetric(src); + SimpleTensor dst_tmp = upsample_function(src_tmp, info, policy); + dst = convert_to_asymmetric(dst_tmp, src.quantization_info()); + } + else + { + dst = upsample_function(src, info, policy); + } + return dst; +} + template SimpleTensor upsample_layer(const SimpleTensor &src, const Size2D &info, const InterpolationPolicy policy); template SimpleTensor upsample_layer(const SimpleTensor &src, const Size2D &info, const InterpolationPolicy policy); -template SimpleTensor upsample_layer(const SimpleTensor &src, - const Size2D &info, const InterpolationPolicy policy); } // namespace reference } // namespace validation } // namespace test -- cgit v1.2.1