diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2017-11-16 14:37:08 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:35:24 +0000 |
commit | 41caa625231c24533a514606bbf2683f7d4964ad (patch) | |
tree | 4e897dfbcc77d57c996f15bab014b20e4cb4868d /src | |
parent | 181e65145d153210ec5587a42d2938e27e1d5b01 (diff) | |
download | ComputeLibrary-41caa625231c24533a514606bbf2683f7d4964ad.tar.gz |
COMPMID-683: Normalization layer API clarification.
Adds a is_scaled parameter in the NormalizationLayerInfo that flags if
the alpha parameter should be scaled by the normalization size of not.
Unscaled parameter is used by [Krichevksy 2012] which is used in
AndroidNN and TensorFlow LRN layer.
Change-Id: Iad2aa5e688cf4dcd6cc77a6e28c0663764f34ccb
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/96102
Reviewed-by: Diego Lopez Recas <diego.lopezrecas@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/CL/kernels/CLNormalizationLayerKernel.cpp | 2 | ||||
-rw-r--r-- | src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp | 2 | ||||
-rw-r--r-- | src/core/NEON/kernels/NENormalizationLayerKernel.cpp | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/core/CL/kernels/CLNormalizationLayerKernel.cpp b/src/core/CL/kernels/CLNormalizationLayerKernel.cpp index 1a7e38fab4..5d91065783 100644 --- a/src/core/CL/kernels/CLNormalizationLayerKernel.cpp +++ b/src/core/CL/kernels/CLNormalizationLayerKernel.cpp @@ -68,7 +68,7 @@ void CLNormalizationLayerKernel::configure(const ICLTensor *input, ICLTensor *ou _input = input; _output = output; - _is_in_map = (norm_info.type() != NormType::CROSS_MAP); + _is_in_map = norm_info.is_in_map(); const unsigned int border_width = _is_in_map ? std::min(norm_info.norm_size() / 2, 3U) : 0; _border_size = BorderSize(0, border_width); diff --git a/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp index c0c2445c6f..5dad767d3e 100644 --- a/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp @@ -60,7 +60,7 @@ void GCNormalizationLayerKernel::configure(const IGCTensor *input, const IGCTens _squared_input = squared_input; _output = output; - const bool is_in_map = (norm_info.type() == NormType::IN_MAP_1D); + const bool is_in_map = norm_info.is_in_map(); const unsigned int border_width = is_in_map ? std::min(norm_info.norm_size() / 2, 3U) : 0; _border_size = BorderSize(0, border_width); diff --git a/src/core/NEON/kernels/NENormalizationLayerKernel.cpp b/src/core/NEON/kernels/NENormalizationLayerKernel.cpp index a409519114..b983609e49 100644 --- a/src/core/NEON/kernels/NENormalizationLayerKernel.cpp +++ b/src/core/NEON/kernels/NENormalizationLayerKernel.cpp @@ -61,7 +61,7 @@ void NENormalizationLayerKernel::configure(const ITensor *input, const ITensor * ARM_COMPUTE_ERROR_ON_VALUE_NOT_REPRESENTABLE_IN_FIXED_POINT(norm_info.scale_coeff(), input); } - const unsigned int border_width = (norm_info.type() == NormType::CROSS_MAP) ? 0 : std::min<unsigned int>(norm_info.norm_size() / 2, 3U); + const unsigned int border_width = (norm_info.is_cross_map()) ? 0 : std::min<unsigned int>(norm_info.norm_size() / 2, 3U); _input = input; _input_squared = input_squared; |