aboutsummaryrefslogtreecommitdiff
path: root/delegate/src/test/QuantizationTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'delegate/src/test/QuantizationTest.cpp')
-rw-r--r--delegate/src/test/QuantizationTest.cpp455
1 files changed, 0 insertions, 455 deletions
diff --git a/delegate/src/test/QuantizationTest.cpp b/delegate/src/test/QuantizationTest.cpp
deleted file mode 100644
index fbc2903d38..0000000000
--- a/delegate/src/test/QuantizationTest.cpp
+++ /dev/null
@@ -1,455 +0,0 @@
-//
-// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "QuantizationTestHelper.hpp"
-
-#include <armnn_delegate.hpp>
-
-#include <flatbuffers/flatbuffers.h>
-#include <tensorflow/lite/schema/schema_generated.h>
-
-#include <doctest/doctest.h>
-
-namespace armnnDelegate
-{
-
-// Dequantize operator test functions.
-void DequantizeUint8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- // Set input and output data
- std::vector<uint8_t> inputValues
- {
- 0, 1, 2, 3, // Lower bounds
- 252, 253, 254, 255 // Upper bounds
- };
- std::vector<float> expectedOutputValues
- {
- 0.f, 1.f, 2.f, 3.f,
- 252.f, 253.f, 254.f, 255.f
- };
-
- QuantizationTest<uint8_t, float>(tflite::BuiltinOperator_DEQUANTIZE,
- ::tflite::TensorType_UINT8,
- ::tflite::TensorType_FLOAT32,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void DequantizeInt8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<int8_t> inputValues
- {
- -1, 0, 1, 2,
- -128, -127, 126, 127
- };
- std::vector<float> expectedOutputValues
- {
- -1.f, 0.f, 1.f, 2.f,
- -128.f, -127.f, 126.f, 127.f
- };
-
- QuantizationTest<int8_t , float>(tflite::BuiltinOperator_DEQUANTIZE,
- ::tflite::TensorType_INT8,
- ::tflite::TensorType_FLOAT32,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void DequantizeInt16Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 5 };
- std::vector<int32_t> outputShape { 2, 5 };
-
- std::vector<int16_t> inputValues
- {
- -1, 0, 1, 2,
- -32768, -16384, 16384, 32767
- };
- std::vector<float> expectedOutputValues
- {
- -1.f, 0.f, 1.f, 2.f,
- -32768.f, -16384.f, 16384.f, 32767.f
- };
-
- QuantizationTest<int16_t, float>(tflite::BuiltinOperator_DEQUANTIZE,
- ::tflite::TensorType_INT16,
- ::tflite::TensorType_FLOAT32,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-// Quantize operator test functions.
-void QuantizeFloat32Uint8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- // Set input and output data
- std::vector<float> inputValues
- {
- -1.f, 0.f, 1.f, 2.f, // Lower bounds
- 252.f, 253.f, 255.f, 256.f // Upper bounds
- };
- std::vector<uint8_t> expectedOutputValues
- {
- 0, 0, 1, 2,
- 252, 253, 255, 255
- };
-
- QuantizationTest<float, uint8_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_FLOAT32,
- ::tflite::TensorType_UINT8,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void QuantizeFloat32Int8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<float> inputValues
- {
- -1.f, 0.f, 1.f, 2.f,
- -128.5f, -127.f, 126.f, 127.5f
- };
- std::vector<int8_t> expectedOutputValues
- {
- -1, 0, 1, 2,
- -128, -127, 126, 127
- };
-
- QuantizationTest<float, int8_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_FLOAT32,
- ::tflite::TensorType_INT8,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void QuantizeFloat32Int16Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<float> inputValues
- {
- -1.f, 0.f, 1.f, 2.f,
- -32768.5f, -16384.f, 16384.f, 32767.5f
- };
- std::vector<int16_t> expectedOutputValues
- {
- -1, 0, 1, 2,
- -32768, -16384, 16384, 32767
- };
-
- QuantizationTest<float, int16_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_FLOAT32,
- ::tflite::TensorType_INT16,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void QuantizeInt16Int16Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<int16_t> inputValues
- {
- -1, 0, 1, 2,
- -32768, -16384, 16384, 32767
- };
- std::vector<int16_t> expectedOutputValues
- {
- -1, 0, 1, 2,
- -32768, -16384, 16384, 32767
- };
-
- QuantizationTest<int16_t, int16_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_INT16,
- ::tflite::TensorType_INT16,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void QuantizeInt16Int8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<int16_t> inputValues
- {
- -1, 0, 1, 2,
- -32768, -16384, 16384, 32767
- };
- std::vector<int8_t> expectedOutputValues
- {
- -1, 0, 1, 2,
- -128, -128, 127, 127
- };
-
- QuantizationTest<int16_t, int8_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_INT16,
- ::tflite::TensorType_INT8,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void QuantizeInt8Uint8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<int8_t> inputValues
- {
- -1, 0, 1, 2,
- -128, -127, 126, 127
- };
- std::vector<uint8_t> expectedOutputValues
- {
- 0, 0, 1, 2,
- 0, 0, 126, 127
- };
-
- QuantizationTest<int8_t, uint8_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_INT8,
- ::tflite::TensorType_UINT8,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-void QuantizeUint8Int8Test(std::vector<armnn::BackendId>& backends)
-{
- std::vector<int32_t> inputShape { 2, 4 };
- std::vector<int32_t> outputShape { 2, 4 };
-
- std::vector<uint8_t> inputValues
- {
- 0, 1, 2, 3,
- 126, 127, 254, 255
- };
- std::vector<int8_t> expectedOutputValues
- {
- 0, 1, 2, 3,
- 126, 127, 127, 127
- };
-
- QuantizationTest<uint8_t, int8_t>(tflite::BuiltinOperator_QUANTIZE,
- ::tflite::TensorType_UINT8,
- ::tflite::TensorType_INT8,
- backends,
- inputShape,
- outputShape,
- inputValues,
- expectedOutputValues);
-}
-
-TEST_SUITE("CpuRef_QuantizationTests")
-{
-
-TEST_CASE ("DEQUANTIZE_UINT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- DequantizeUint8Test(backends);
-}
-
-
-TEST_CASE ("DEQUANTIZE_INT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- DequantizeInt8Test(backends);
-}
-
-
-TEST_CASE ("DEQUANTIZE_INT16_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- DequantizeInt16Test(backends);
-}
-
-
-TEST_CASE ("QUANTIZE_FLOAT32_UINT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeFloat32Uint8Test(backends);
-}
-
-
-TEST_CASE ("QUANTIZE_FLOAT32_INT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeFloat32Int8Test(backends);
-}
-
-
-TEST_CASE ("QUANTIZE_FLOAT32_INT16_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeFloat32Int16Test(backends);
-}
-
-
-TEST_CASE ("QUANTIZE_INT16_INT16_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeInt16Int16Test(backends);
-}
-
-
-TEST_CASE ("QUANTIZE_INT16_INT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeInt16Int8Test(backends);
-}
-
-
-
-TEST_CASE ("QUANTIZE_INT8_UINT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeInt8Uint8Test(backends);
-}
-
-
-TEST_CASE ("QUANTIZE_UINT8_INT8_CpuRef_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
- QuantizeUint8Int8Test(backends);
-}
-
-}
-
-TEST_SUITE("CpuAcc_QuantizationTests")
-{
-
-// Dequantize Operator Tests
-TEST_CASE ("DEQUANTIZE_UINT8_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- DequantizeUint8Test(backends);
-}
-
-TEST_CASE ("DEQUANTIZE_INT8_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- DequantizeInt8Test(backends);
-}
-
-TEST_CASE ("DEQUANTIZE_INT16_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- DequantizeInt16Test(backends);
-}
-
-// Quantize Operator Tests
-TEST_CASE ("QUANTIZE_FLOAT32_UINT8_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- QuantizeFloat32Uint8Test(backends);
-}
-
-TEST_CASE ("QUANTIZE_FLOAT32_INT8_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- QuantizeFloat32Int8Test(backends);
-}
-
-TEST_CASE ("QUANTIZE_INT8_UINT8_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- QuantizeInt8Uint8Test(backends);
-}
-
-TEST_CASE ("QUANTIZE_UINT8_INT8_CpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- QuantizeUint8Int8Test(backends);
-}
-
-}
-
-TEST_SUITE("GpuAcc_QuantizationTests")
-{
-
-// Dequantize Operator Tests
-TEST_CASE ("DEQUANTIZE_UINT8_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- DequantizeUint8Test(backends);
-}
-
-TEST_CASE ("DEQUANTIZE_INT8_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- DequantizeInt8Test(backends);
-}
-
-TEST_CASE ("DEQUANTIZE_INT16_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- DequantizeInt16Test(backends);
-}
-
-// Quantize Operator Tests
-TEST_CASE ("QUANTIZE_FLOAT32_UINT8_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- QuantizeFloat32Uint8Test(backends);
-}
-
-TEST_CASE ("QUANTIZE_FLOAT32_INT8_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- QuantizeFloat32Int8Test(backends);
-}
-
-TEST_CASE ("QUANTIZE_INT8_UINT8_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- QuantizeInt8Uint8Test(backends);
-}
-
-TEST_CASE ("QUANTIZE_UINT8_INT8_GpuAcc_Test")
-{
- std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
- QuantizeUint8Int8Test(backends);
-}
-
-}
-
-} // namespace armnnDelegate \ No newline at end of file