aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/reference/DequantizationLayer.cpp
diff options
context:
space:
mode:
authorMichalis Spyrou <michalis.spyrou@arm.com>2019-08-22 11:44:04 +0100
committerMichalis Spyrou <michalis.spyrou@arm.com>2019-08-23 13:13:08 +0000
commit29a01c90fc372d31188ab7157b45b32ce24fa9b3 (patch)
tree419b7abc22c56fde8dece4c80c328a209c041d94 /tests/validation/reference/DequantizationLayer.cpp
parentfb0fdcdaec57e6f8e1b96f924411921cc0ba6d94 (diff)
downloadComputeLibrary-29a01c90fc372d31188ab7157b45b32ce24fa9b3.tar.gz
COMPMID-2417: NEDequantizationLayer support for QASYMM8_PER_CHANNEL
Change-Id: I1ef4ce8610e11e81702b0b7f0f7c437fed49833e Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com> Reviewed-on: https://review.mlplatform.org/c/1795 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/reference/DequantizationLayer.cpp')
-rw-r--r--tests/validation/reference/DequantizationLayer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/tests/validation/reference/DequantizationLayer.cpp b/tests/validation/reference/DequantizationLayer.cpp
index cceee0421c..74686bdaaf 100644
--- a/tests/validation/reference/DequantizationLayer.cpp
+++ b/tests/validation/reference/DequantizationLayer.cpp
@@ -59,20 +59,22 @@ SimpleTensor<TOut> dequantization_layer_nchw(const SimpleTensor<TIn> &src)
SimpleTensor<TOut> dst{ src.shape(), dst_data_type };
- if(src_data_type == DataType::QSYMM8_PER_CHANNEL)
+ if(is_data_type_quantized_per_channel(src_data_type))
{
const int WH = src.shape().x() * src.shape().y();
const int C = src.shape().z();
const int N = src.shape().total_size() / (WH * C);
- const std::vector<float> qscales = src.quantization_info().scale();
+ const std::vector<float> qscales = src.quantization_info().scale();
+ const std::vector<int32_t> qoffsets = src.quantization_info().offset();
+ const bool has_offsets = src_data_type == DataType::QASYMM8_PER_CHANNEL;
for(int n = 0; n < N; ++n)
{
for(int c = 0; c < C; ++c)
{
const size_t idx = n * C * WH + c * WH;
- const UniformQuantizationInfo channel_qinfo = { qscales[c], 0 };
+ const UniformQuantizationInfo channel_qinfo = { qscales[c], has_offsets ? qoffsets[c] : 0 };
// Dequantize slice
for(int s = 0; s < WH; ++s)