From 10c53f1ef317095ddcd9143bf759cc68ecb0e721 Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Wed, 17 Jul 2019 16:11:53 +0100 Subject: COMPMID-2307: QUANTIZED_16BIT_LSTM operator for CL Change-Id: I1b52df359f1a368d585fac43a08496544dd2f86f Signed-off-by: Manuel Bottini Reviewed-on: https://review.mlplatform.org/c/1568 Tested-by: Arm Jenkins Reviewed-by: Giuseppe Rossini Comments-Addressed: Arm Jenkins --- .../fixtures/DequantizationLayerFixture.h | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'tests/validation/fixtures') diff --git a/tests/validation/fixtures/DequantizationLayerFixture.h b/tests/validation/fixtures/DequantizationLayerFixture.h index 15f3711189..2c8f05746d 100644 --- a/tests/validation/fixtures/DequantizationLayerFixture.h +++ b/tests/validation/fixtures/DequantizationLayerFixture.h @@ -92,32 +92,46 @@ protected: SimpleTensor compute_reference(const TensorShape &shape, DataType src_data_type) { - if(is_data_type_quantized_asymmetric(src_data_type)) + if(src_data_type == DataType::QASYMM8) { SimpleTensor src{ shape, src_data_type, 1, _quantization_info }; fill(src); return reference::dequantization_layer(src); } - else + else if(src_data_type == DataType::QSYMM8) { SimpleTensor src{ shape, src_data_type, 1, _quantization_info }; fill(src); return reference::dequantization_layer(src); } + else if(src_data_type == DataType::QSYMM16) + { + SimpleTensor src{ shape, src_data_type, 1, _quantization_info }; + fill(src); + return reference::dequantization_layer(src); + } + else + { + ARM_COMPUTE_ERROR("Unsupported data type"); + } } protected: QuantizationInfo generate_quantization_info(DataType data_type) { - std::uniform_int_distribution<> distribution(1, 127); std::mt19937 gen(library.get()->seed()); + std::uniform_int_distribution<> distribution_scale_q8(1, 255); + std::uniform_int_distribution<> distribution_offset_q8(1, 127); + std::uniform_int_distribution<> distribution_scale_q16(1, 32768); switch(data_type) { + case DataType::QSYMM16: + return QuantizationInfo(1.f / distribution_scale_q16(gen)); case DataType::QSYMM8: - return QuantizationInfo(1.f / distribution(gen)); + return QuantizationInfo(1.f / distribution_scale_q8(gen)); case DataType::QASYMM8: - return QuantizationInfo(1.f / distribution(gen), distribution(gen)); + return QuantizationInfo(1.f / distribution_scale_q8(gen), distribution_offset_q8(gen)); default: ARM_COMPUTE_ERROR("Unsupported data type"); } -- cgit v1.2.1