diff options
author | Sang-Hoon Park <sang-hoon.park@arm.com> | 2019-12-04 09:46:28 +0000 |
---|---|---|
committer | Michele Di Giorgio <michele.digiorgio@arm.com> | 2019-12-20 09:56:36 +0000 |
commit | d817647a4fabc8eccd0e64f54465e378a4239b32 (patch) | |
tree | 361ba03c78d83974cf7396510c85feb6dd3159e6 /tests/validation/reference | |
parent | e7be8a072967f9ae547468a7625e11477ea32221 (diff) | |
download | ComputeLibrary-d817647a4fabc8eccd0e64f54465e378a4239b32.tar.gz |
COMPMID-2767 [NEON] add support for QASYMM8_SIGNED to DequantizationLayer
Change-Id: If5b21d1e656b21baf39346c2fd74e8edc75007f5
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/2429
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'tests/validation/reference')
-rw-r--r-- | tests/validation/reference/DequantizationLayer.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/tests/validation/reference/DequantizationLayer.cpp b/tests/validation/reference/DequantizationLayer.cpp index 16f25c4427..7dd36402b3 100644 --- a/tests/validation/reference/DequantizationLayer.cpp +++ b/tests/validation/reference/DequantizationLayer.cpp @@ -36,18 +36,27 @@ namespace reference namespace { template <typename TOut> -TOut dequantize(int8_t val, const UniformQuantizationInfo qinfo) +TOut dequantize(int8_t val, const UniformQuantizationInfo qinfo, DataType dt) { - return static_cast<TOut>(dequantize_qsymm8(val, qinfo)); + if(dt == DataType::QSYMM8 || dt == DataType::QSYMM8_PER_CHANNEL) + { + return static_cast<TOut>(dequantize_qsymm8(val, qinfo)); + } + else + { + return static_cast<TOut>(dequantize_qasymm8_signed(val, qinfo)); + } } template <typename TOut> -TOut dequantize(uint8_t val, const UniformQuantizationInfo qinfo) +TOut dequantize(uint8_t val, const UniformQuantizationInfo qinfo, DataType dt) { + ARM_COMPUTE_UNUSED(dt); return static_cast<TOut>(dequantize_qasymm8(val, qinfo)); } template <typename TOut> -TOut dequantize(int16_t val, const UniformQuantizationInfo qinfo) +TOut dequantize(int16_t val, const UniformQuantizationInfo qinfo, DataType dt) { + ARM_COMPUTE_UNUSED(dt); return static_cast<TOut>(dequantize_qsymm16(val, qinfo)); } } // namespace @@ -77,7 +86,7 @@ SimpleTensor<TOut> dequantization_layer(const SimpleTensor<TIn> &src) // Dequantize slice for(int s = 0; s < WH; ++s) { - dst[idx + s] = dequantize<TOut>(static_cast<TIn>(src[idx + s]), channel_qinfo); + dst[idx + s] = dequantize<TOut>(static_cast<TIn>(src[idx + s]), channel_qinfo, src_data_type); } } } @@ -89,7 +98,7 @@ SimpleTensor<TOut> dequantization_layer(const SimpleTensor<TIn> &src) for(int i = 0; i < src.num_elements(); ++i) { - dst[i] = static_cast<TOut>(dequantize<TOut>(static_cast<TIn>(src[i]), quantization_info)); + dst[i] = static_cast<TOut>(dequantize<TOut>(static_cast<TIn>(src[i]), quantization_info, src_data_type)); } } |