From 4c5469b192665c94118a8a558787cb9cec2d0765 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Tue, 21 May 2019 13:32:43 +0100 Subject: COMPMID-2225: Add interface support for new quantized data types. Add support for: -QSYMM8, 8-bit quantized symmetric -QSYMM8_PER_CHANNEL, 8-bit quantized symmetric with per channel quantization Change-Id: I00c4ff98e44af37419470af61419ee95d0de2463 Signed-off-by: Georgios Pinitas Reviewed-on: https://review.mlplatform.org/c/1236 Tested-by: Arm Jenkins Reviewed-by: Gian Marco Iodice Comments-Addressed: Arm Jenkins --- .../reference/DepthwiseConvolutionLayer.cpp | 27 ++++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'tests/validation/reference/DepthwiseConvolutionLayer.cpp') diff --git a/tests/validation/reference/DepthwiseConvolutionLayer.cpp b/tests/validation/reference/DepthwiseConvolutionLayer.cpp index 90ecffbbca..2192d681b6 100644 --- a/tests/validation/reference/DepthwiseConvolutionLayer.cpp +++ b/tests/validation/reference/DepthwiseConvolutionLayer.cpp @@ -50,7 +50,7 @@ namespace reference */ template SimpleTensor depthwise_convolution(const SimpleTensor &src, const SimpleTensor &weights, const SimpleTensor &biases, const TensorShape &dst_shape, const PadStrideInfo &conv_info, - unsigned int depth_multiplier, const Size2D &dilation, QuantizationInfo out_quant_info) + unsigned int depth_multiplier, const Size2D &dilation, const QuantizationInfo &out_quant_info) { ARM_COMPUTE_UNUSED(out_quant_info); @@ -126,22 +126,19 @@ SimpleTensor depthwise_convolution(const SimpleTensor &src, const SimpleTe template <> SimpleTensor depthwise_convolution(const SimpleTensor &src, const SimpleTensor &weights, const SimpleTensor &biases, const TensorShape &dst_shape, - const PadStrideInfo &conv_info, unsigned int depth_multiplier, const Size2D &dilation, QuantizationInfo out_quant_info) + const PadStrideInfo &conv_info, unsigned int depth_multiplier, const Size2D &dilation, const QuantizationInfo &out_quant_info) { // if no explicit quantization has been set you the same as src - if(out_quant_info == QuantizationInfo(0.0f, 0)) - { - out_quant_info = src.quantization_info(); - } - SimpleTensor dst{ dst_shape, src.data_type(), 1, out_quant_info }; + const QuantizationInfo &dst_qinfo = out_quant_info.uniform().empty() ? src.quantization_info() : out_quant_info; + SimpleTensor dst{ dst_shape, src.data_type(), 1, dst_qinfo }; // Create reference - const int input_offset = -src.quantization_info().offset; - const float input_scale = src.quantization_info().scale; - const int weights_offset = -weights.quantization_info().offset; - const float weights_scale = weights.quantization_info().scale; - const int output_offset = dst.quantization_info().offset; - const float output_scale = dst.quantization_info().scale; + const int input_offset = -src.quantization_info().uniform().offset; + const float input_scale = src.quantization_info().uniform().scale; + const int weights_offset = -weights.quantization_info().uniform().offset; + const float weights_scale = weights.quantization_info().uniform().scale; + const int output_offset = dst.quantization_info().uniform().offset; + const float output_scale = dst.quantization_info().uniform().scale; int output_multiplier; int output_shift; @@ -224,10 +221,10 @@ SimpleTensor depthwise_convolution(const SimpleTensor &src, co } template SimpleTensor depthwise_convolution(const SimpleTensor &src, const SimpleTensor &weights, const SimpleTensor &biases, const TensorShape &dst_shape, - const PadStrideInfo &conv_info, unsigned int depth_multiplier, const Size2D &dilation, QuantizationInfo out_quant_info); + const PadStrideInfo &conv_info, unsigned int depth_multiplier, const Size2D &dilation, const QuantizationInfo &out_quant_info); template SimpleTensor depthwise_convolution(const SimpleTensor &src, const SimpleTensor &weights, const SimpleTensor &biases, const TensorShape &dst_shape, - const PadStrideInfo &conv_info, unsigned int depth_multiplier, const Size2D &dilation, QuantizationInfo out_quant_info); + const PadStrideInfo &conv_info, unsigned int depth_multiplier, const Size2D &dilation, const QuantizationInfo &out_quant_info); } // namespace reference } // namespace validation } // namespace test -- cgit v1.2.1