From 0779fecbf897fe85c5e13da52b129e439c4cc75d Mon Sep 17 00:00:00 2001 From: Sang-Hoon Park Date: Wed, 13 Nov 2019 17:08:12 +0000 Subject: COMPMID-2763 [CL] add support for QASYMM8_SIGNED to SoftmaxLayer Change-Id: I4556bde3aa51eb874a4e674dbbd575fa4491c088 Signed-off-by: Sang-Hoon Park Reviewed-on: https://review.mlplatform.org/c/2375 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio Reviewed-by: Georgios Pinitas --- tests/validation/reference/LogSoftmaxLayer.cpp | 8 ++++---- tests/validation/reference/LogSoftmaxLayer.h | 2 +- tests/validation/reference/SoftmaxLayer.cpp | 8 ++++---- tests/validation/reference/SoftmaxLayer.h | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) (limited to 'tests/validation/reference') diff --git a/tests/validation/reference/LogSoftmaxLayer.cpp b/tests/validation/reference/LogSoftmaxLayer.cpp index 3f21d85dd0..e4403956ab 100644 --- a/tests/validation/reference/LogSoftmaxLayer.cpp +++ b/tests/validation/reference/LogSoftmaxLayer.cpp @@ -40,21 +40,21 @@ SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t return softmax_layer_generic(src, beta, axis, true); } -template ::value, int>::type> +template ::value || std::is_same::value, int>::type> SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis) { - // Note: Output quantization info should always have scale = 1/256 and offset = 0 - const QuantizationInfo output_quantization_info = QuantizationInfo(1.f / 256, 0); + const QuantizationInfo output_quantization_info = arm_compute::get_softmax_output_quantization_info(src.data_type(), true); SimpleTensor src_tmp = convert_from_asymmetric(src); SimpleTensor dst_tmp = log_softmax_layer(src_tmp, beta, axis); - SimpleTensor dst = convert_to_asymmetric(dst_tmp, output_quantization_info); + SimpleTensor dst = convert_to_asymmetric(dst_tmp, output_quantization_info); return dst; } template SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis); template SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis); template SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis); +template SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis); } // namespace reference } // namespace validation } // namespace test diff --git a/tests/validation/reference/LogSoftmaxLayer.h b/tests/validation/reference/LogSoftmaxLayer.h index 065315ff2c..c2e3f5974e 100644 --- a/tests/validation/reference/LogSoftmaxLayer.h +++ b/tests/validation/reference/LogSoftmaxLayer.h @@ -38,7 +38,7 @@ namespace reference template ::value, int>::type = 0> SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis = 1); -template ::value, int>::type = 0> +template ::value || std::is_same::value, int>::type = 0> SimpleTensor log_softmax_layer(const SimpleTensor &src, float beta, size_t axis = 1); } // namespace reference } // namespace validation diff --git a/tests/validation/reference/SoftmaxLayer.cpp b/tests/validation/reference/SoftmaxLayer.cpp index ef2468df59..0e470260a9 100644 --- a/tests/validation/reference/SoftmaxLayer.cpp +++ b/tests/validation/reference/SoftmaxLayer.cpp @@ -107,21 +107,21 @@ SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axi return softmax_layer_generic(src, beta, axis, false); } -template ::value, int>::type> +template ::value || std::is_same::value, int>::type> SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis) { - // Note: Output quantization info should always have scale = 1/256 and offset = 0 - const QuantizationInfo output_quantization_info = QuantizationInfo(1.f / 256, 0); + const QuantizationInfo output_quantization_info = arm_compute::get_softmax_output_quantization_info(src.data_type(), false); SimpleTensor src_tmp = convert_from_asymmetric(src); SimpleTensor dst_tmp = softmax_layer(src_tmp, beta, axis); - SimpleTensor dst = convert_to_asymmetric(dst_tmp, output_quantization_info); + SimpleTensor dst = convert_to_asymmetric(dst_tmp, output_quantization_info); return dst; } template SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis); template SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis); template SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis); +template SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis); } // namespace reference } // namespace validation } // namespace test diff --git a/tests/validation/reference/SoftmaxLayer.h b/tests/validation/reference/SoftmaxLayer.h index 2708c807f2..2be575c2af 100644 --- a/tests/validation/reference/SoftmaxLayer.h +++ b/tests/validation/reference/SoftmaxLayer.h @@ -41,7 +41,7 @@ SimpleTensor softmax_layer_generic(const SimpleTensor &src, float beta, si template ::value, int>::type = 0> SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis = 1); -template ::value, int>::type = 0> +template ::value || std::is_same::value, int>::type = 0> SimpleTensor softmax_layer(const SimpleTensor &src, float beta, size_t axis = 1); } // namespace reference } // namespace validation -- cgit v1.2.1