diff options
Diffstat (limited to 'tests/validation/reference')
-rw-r--r-- | tests/validation/reference/LogSoftmaxLayer.cpp | 8 | ||||
-rw-r--r-- | tests/validation/reference/LogSoftmaxLayer.h | 2 | ||||
-rw-r--r-- | tests/validation/reference/SoftmaxLayer.cpp | 8 | ||||
-rw-r--r-- | tests/validation/reference/SoftmaxLayer.h | 2 |
4 files changed, 10 insertions, 10 deletions
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<T> log_softmax_layer(const SimpleTensor<T> &src, float beta, size_t return softmax_layer_generic<T>(src, beta, axis, true); } -template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value, int>::type> +template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value || std::is_same<T, int8_t>::value, int>::type> SimpleTensor<T> log_softmax_layer(const SimpleTensor<T> &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<float> src_tmp = convert_from_asymmetric(src); SimpleTensor<float> dst_tmp = log_softmax_layer<float>(src_tmp, beta, axis); - SimpleTensor<T> dst = convert_to_asymmetric<uint8_t>(dst_tmp, output_quantization_info); + SimpleTensor<T> dst = convert_to_asymmetric<T>(dst_tmp, output_quantization_info); return dst; } template SimpleTensor<float> log_softmax_layer(const SimpleTensor<float> &src, float beta, size_t axis); template SimpleTensor<half> log_softmax_layer(const SimpleTensor<half> &src, float beta, size_t axis); template SimpleTensor<uint8_t> log_softmax_layer(const SimpleTensor<uint8_t> &src, float beta, size_t axis); +template SimpleTensor<int8_t> log_softmax_layer(const SimpleTensor<int8_t> &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 <typename T, typename std::enable_if<is_floating_point<T>::value, int>::type = 0> SimpleTensor<T> log_softmax_layer(const SimpleTensor<T> &src, float beta, size_t axis = 1); -template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value, int>::type = 0> +template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value || std::is_same<T, int8_t>::value, int>::type = 0> SimpleTensor<T> log_softmax_layer(const SimpleTensor<T> &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<T> softmax_layer(const SimpleTensor<T> &src, float beta, size_t axi return softmax_layer_generic<T>(src, beta, axis, false); } -template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value, int>::type> +template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value || std::is_same<T, int8_t>::value, int>::type> SimpleTensor<T> softmax_layer(const SimpleTensor<T> &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<float> src_tmp = convert_from_asymmetric(src); SimpleTensor<float> dst_tmp = softmax_layer<float>(src_tmp, beta, axis); - SimpleTensor<T> dst = convert_to_asymmetric<uint8_t>(dst_tmp, output_quantization_info); + SimpleTensor<T> dst = convert_to_asymmetric<T>(dst_tmp, output_quantization_info); return dst; } template SimpleTensor<float> softmax_layer(const SimpleTensor<float> &src, float beta, size_t axis); template SimpleTensor<half> softmax_layer(const SimpleTensor<half> &src, float beta, size_t axis); template SimpleTensor<uint8_t> softmax_layer(const SimpleTensor<uint8_t> &src, float beta, size_t axis); +template SimpleTensor<int8_t> softmax_layer(const SimpleTensor<int8_t> &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<T> softmax_layer_generic(const SimpleTensor<T> &src, float beta, si template <typename T, typename std::enable_if<is_floating_point<T>::value, int>::type = 0> SimpleTensor<T> softmax_layer(const SimpleTensor<T> &src, float beta, size_t axis = 1); -template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value, int>::type = 0> +template <typename T, typename std::enable_if<std::is_same<T, uint8_t>::value || std::is_same<T, int8_t>::value, int>::type = 0> SimpleTensor<T> softmax_layer(const SimpleTensor<T> &src, float beta, size_t axis = 1); } // namespace reference } // namespace validation |