From 581f178b67a74060fc8a5272c5a6c9571d855131 Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Wed, 13 Nov 2019 17:24:43 +0000 Subject: COMPMID-2920: NEInstanceNormalization fails on NHWC validations Improved TensorInfo to accept DataLayout, useful to test the validate functions Removing nighlies tests Moving all vpadds instructions in add.h Change-Id: I96290a6f26272eae865dba48bbc3c6aee4bc0214 Signed-off-by: Manuel Bottini Reviewed-on: https://review.mlplatform.org/c/2287 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio Reviewed-by: Georgios Pinitas --- src/core/CL/kernels/CLInstanceNormalizationLayerKernel.cpp | 3 ++- src/core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp | 4 ++-- src/core/TensorInfo.cpp | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'src/core') diff --git a/src/core/CL/kernels/CLInstanceNormalizationLayerKernel.cpp b/src/core/CL/kernels/CLInstanceNormalizationLayerKernel.cpp index a03322b61d..0f208573a1 100644 --- a/src/core/CL/kernels/CLInstanceNormalizationLayerKernel.cpp +++ b/src/core/CL/kernels/CLInstanceNormalizationLayerKernel.cpp @@ -44,13 +44,14 @@ Status validate_arguments(const ITensorInfo *input, const ITensorInfo *output, f ARM_COMPUTE_UNUSED(beta); ARM_COMPUTE_RETURN_ERROR_ON_MSG(epsilon == 0.f, "Epsilon must be different than 0"); - ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::F16, DataType::F32); + ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_NOT_IN(input, DataType::F16, DataType::F32); if(output != nullptr && output->total_size() != 0) { ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_SHAPES(input, output); ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(input, output); ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_LAYOUT(input, output); + ARM_COMPUTE_RETURN_ERROR_ON_MSG(input->num_channels() != output->num_channels(), "Input and output have different number of channels"); } return Status{}; diff --git a/src/core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp b/src/core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp index 31d982c4e3..7fc93617b2 100644 --- a/src/core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NEInstanceNormalizationLayerKernel.cpp @@ -145,7 +145,7 @@ Status validate_arguments(const ITensorInfo *input, const ITensorInfo *output, f ARM_COMPUTE_UNUSED(beta); ARM_COMPUTE_RETURN_ERROR_ON_MSG(epsilon == 0.f, "Epsilon must be different than 0"); - ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::F16, DataType::F32); + ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_NOT_IN(input, DataType::F16, DataType::F32); ARM_COMPUTE_RETURN_ERROR_ON_MSG(input->data_layout() == DataLayout::NHWC, "NHWC data layout is not supported by the kernel directly"); if(output != nullptr && output->total_size() != 0) @@ -153,8 +153,8 @@ Status validate_arguments(const ITensorInfo *input, const ITensorInfo *output, f ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_SHAPES(input, output); ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(input, output); ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_LAYOUT(input, output); + ARM_COMPUTE_RETURN_ERROR_ON_MSG(input->num_channels() != output->num_channels(), "Input and output have different number of channels"); } - return Status{}; } diff --git a/src/core/TensorInfo.cpp b/src/core/TensorInfo.cpp index cd36e8be2c..cc13b39a24 100644 --- a/src/core/TensorInfo.cpp +++ b/src/core/TensorInfo.cpp @@ -91,6 +91,13 @@ TensorInfo::TensorInfo(const TensorShape &tensor_shape, size_t num_channels, Dat _quantization_info = std::move(quantization_info); } +TensorInfo::TensorInfo(const TensorShape &tensor_shape, size_t num_channels, DataType data_type, DataLayout data_layout) + : TensorInfo() +{ + init(tensor_shape, num_channels, data_type); + _data_layout = data_layout; +} + TensorInfo::TensorInfo(const HOGInfo &hog_info, unsigned int width, unsigned int height) : TensorInfo() { -- cgit v1.2.1