diff options
Diffstat (limited to 'tests/validation/reference')
-rw-r--r-- | tests/validation/reference/QuantizationLayer.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/validation/reference/QuantizationLayer.cpp b/tests/validation/reference/QuantizationLayer.cpp index 8ba3744afc..cfc508529e 100644 --- a/tests/validation/reference/QuantizationLayer.cpp +++ b/tests/validation/reference/QuantizationLayer.cpp @@ -77,6 +77,41 @@ SimpleTensor<Tout> quantization_layer(const SimpleTensor<Tin> &src, DataType out return dst; } +template <> +SimpleTensor<uint8_t> quantization_layer(const SimpleTensor<uint8_t> &src, DataType output_data_type, const QuantizationInfo &quantization_info) +{ + SimpleTensor<float> src_tmp = convert_from_asymmetric<uint8_t>(src); + return quantization_layer<float, uint8_t>(src_tmp, output_data_type, quantization_info); +} + +template <> +SimpleTensor<int8_t> quantization_layer(const SimpleTensor<uint8_t> &src, DataType output_data_type, const QuantizationInfo &quantization_info) +{ + SimpleTensor<float> src_tmp = convert_from_asymmetric<uint8_t>(src); + return quantization_layer<float, int8_t>(src_tmp, output_data_type, quantization_info); +} + +template <> +SimpleTensor<uint8_t> quantization_layer(const SimpleTensor<int8_t> &src, DataType output_data_type, const QuantizationInfo &quantization_info) +{ + SimpleTensor<float> src_tmp = convert_from_asymmetric<int8_t>(src); + return quantization_layer<float, uint8_t>(src_tmp, output_data_type, quantization_info); +} + +template <> +SimpleTensor<int8_t> quantization_layer(const SimpleTensor<int8_t> &src, DataType output_data_type, const QuantizationInfo &quantization_info) +{ + SimpleTensor<float> src_tmp = convert_from_asymmetric<int8_t>(src); + return quantization_layer<float, int8_t>(src_tmp, output_data_type, quantization_info); +} + +template <> +SimpleTensor<uint16_t> quantization_layer(const SimpleTensor<uint8_t> &src, DataType output_data_type, const QuantizationInfo &quantization_info) +{ + SimpleTensor<float> src_tmp = convert_from_asymmetric<uint8_t>(src); + return quantization_layer<float, uint16_t>(src_tmp, output_data_type, quantization_info); +} + template SimpleTensor<int8_t> quantization_layer(const SimpleTensor<half> &src, DataType output_data_type, const QuantizationInfo &quantization_info); template SimpleTensor<int8_t> quantization_layer(const SimpleTensor<float> &src, DataType output_data_type, const QuantizationInfo &quantization_info); template SimpleTensor<uint8_t> quantization_layer(const SimpleTensor<half> &src, DataType output_data_type, const QuantizationInfo &quantization_info); |