// // Copyright © 2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "ConvolutionTestHelper.hpp" #include #include #include #include #include #include #include #include namespace armnnDelegate { void TransposeConvInt8Test(std::vector& backends) { // Set input data std::vector transposeTensorShape { 4 }; std::vector filterShape { 1, 2, 2, 1 }; std::vector inputShape { 1, 2, 2, 1 }; std::vector outputShape { 1, 3, 3, 1 }; std::vector transposeData = { 1, 3, 3, 1 }; static std::vector inputValues = { 1, 2, 3, 4 }; std::vector filterValues = { 0, 1, 2, 4 }; std::vector expectedOutputValues = { 0, 1, 2, 2, 11, 12, 6, 20, 16 }; tflite::Padding padding = tflite::Padding_VALID; TransposeConvTest(backends, ::tflite::TensorType_INT8, 1, // strideX 1, // strideY padding, transposeTensorShape, filterShape, inputShape, outputShape, transposeData, filterValues, inputValues, expectedOutputValues); } void TransposeConvFp32Test(std::vector& backends) { std::vector transposeTensorShape { 4 }; std::vector filterShape { 1, 2, 2, 1 }; std::vector inputShape { 1, 2, 2, 1 }; std::vector outputShape { 1, 3, 3, 1 }; std::vector transposeData = { 1, 3, 3, 1 }; static std::vector inputValues = { 1, 2, 3, 4 }; std::vector filterValues = { 0, 1, 2, 4 }; std::vector expectedOutputValues = { 0, 1, 2, 2, 11, 12, 6, 20, 16 }; tflite::Padding padding = tflite::Padding_VALID; TransposeConvTest(backends, ::tflite::TensorType_FLOAT32, 1, // strideX 1, // strideY padding, transposeTensorShape, filterShape, inputShape, outputShape, transposeData, filterValues, inputValues, expectedOutputValues); } TEST_SUITE("TransposeConv_CpuRef_Test") { TEST_CASE ("TransposeConv_CpuRef_Fp32_Test") { std::vector backends = {armnn::Compute::CpuRef}; TransposeConvFp32Test(backends); } TEST_CASE ("TransposeConv_CpuRef_Int8_Test") { std::vector backends = {armnn::Compute::CpuRef}; TransposeConvInt8Test(backends); } } // End of TEST_SUITE(TransposeConv_CpuRef_Test) TEST_SUITE("TransposeConv_CpuAcc_Test") { TEST_CASE ("TransposeConv_CpuAcc_Fp32_Test") { std::vector backends = {armnn::Compute::CpuAcc}; TransposeConvFp32Test(backends); } TEST_CASE ("TransposeConv_CpuAcc_Int8_Test") { std::vector backends = {armnn::Compute::CpuAcc}; TransposeConvInt8Test(backends); } } // End of TEST_SUITE(TransposeConv_CpuAcc_Test) TEST_SUITE("TransposeConv_GpuAcc_Test") { TEST_CASE ("TransposeConv_GpuAcc_Fp32_Test") { std::vector backends = {armnn::Compute::GpuAcc}; TransposeConvFp32Test(backends); } TEST_CASE ("TransposeConv_GpuAcc_Int8_Test") { std::vector backends = {armnn::Compute::GpuAcc}; TransposeConvInt8Test(backends); } } // End of TEST_SUITE(TransposeConv_GpuAcc_Test) } // namespace armnnDelegate