diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-06-26 15:02:47 +0100 |
---|---|---|
committer | Áron Virginás-Tar <aron.virginas-tar@arm.com> | 2019-06-27 11:52:47 +0000 |
commit | 735a450d3b53a2d745b9a7a6d85747e25ec37ede (patch) | |
tree | 4f5af0ddada102cb51fe1f4ba84e3ccf8f51c6ab /src/backends/backendsCommon/test/LayerTests.cpp | |
parent | 05bf054f40eb551ea76722163b6ed1a1fde7bbf0 (diff) | |
download | armnn-735a450d3b53a2d745b9a7a6d85747e25ec37ede.tar.gz |
IVGCVSW-3320 Add reference workload support for TransposeConvolution2dLayer
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Icc64f8148c9d8a0d14d772e6e4e7865e70585cd9
Diffstat (limited to 'src/backends/backendsCommon/test/LayerTests.cpp')
-rw-r--r-- | src/backends/backendsCommon/test/LayerTests.cpp | 407 |
1 files changed, 407 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp index a625097fdb..ca39438fbf 100644 --- a/src/backends/backendsCommon/test/LayerTests.cpp +++ b/src/backends/backendsCommon/test/LayerTests.cpp @@ -45,6 +45,7 @@ #include "DebugTestImpl.hpp" #include "DequantizeTestImpl.hpp" #include "QuantizeTestImpl.hpp" +#include "TransposeConvolution2dTestImpl.hpp" // 3-channel 16x8 image used as common input data for a number of Conv2d tests. static std::vector<float> ConvInput3x8x16({ @@ -9643,3 +9644,409 @@ LayerTestResult<int16_t, 4> QuantizeClampInt16Test( { return QuantizeClampTest<armnn::DataType::QuantisedSymm16>(workloadFactory, memoryManager); } + +// +// TransposeConvolution2d +// + +// Simple biased +LayerTestResult<float, 4> SimpleTransposeConvolution2dFloatNchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<float, 4> SimpleTransposeConvolution2dFloatNhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +LayerTestResult<uint8_t, 4> SimpleTransposeConvolution2dUint8NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<uint8_t, 4> SimpleTransposeConvolution2dUint8NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +LayerTestResult<int16_t, 4> SimpleTransposeConvolution2dInt16NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<int16_t, 4> SimpleTransposeConvolution2dInt16NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +// Simple unbiased +LayerTestResult<float, 4> UnbiasedSimpleTransposeConvolution2dFloatNchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<float, 4> UnbiasedSimpleTransposeConvolution2dFloatNhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +LayerTestResult<uint8_t, 4> UnbiasedSimpleTransposeConvolution2dUint8NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<uint8_t, 4> UnbiasedSimpleTransposeConvolution2dUint8NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +LayerTestResult<int16_t, 4> UnbiasedSimpleTransposeConvolution2dInt16NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<int16_t, 4> UnbiasedSimpleTransposeConvolution2dInt16NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SimpleTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +// Padded biased +LayerTestResult<float, 4> PaddedTransposeConvolution2dFloatNchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<float, 4> PaddedTransposeConvolution2dFloatNhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +LayerTestResult<uint8_t, 4> PaddedTransposeConvolution2dUint8NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<uint8_t, 4> PaddedTransposeConvolution2dUint8NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +LayerTestResult<int16_t, 4> PaddedTransposeConvolution2dInt16NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<int16_t, 4> PaddedTransposeConvolution2dInt16NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +// Padded unbiased +LayerTestResult<float, 4> UnbiasedPaddedTransposeConvolution2dFloatNchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<float, 4> UnbiasedPaddedTransposeConvolution2dFloatNhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +LayerTestResult<uint8_t, 4> UnbiasedPaddedTransposeConvolution2dUint8NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<uint8_t, 4> UnbiasedPaddedTransposeConvolution2dUint8NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +LayerTestResult<int16_t, 4> UnbiasedPaddedTransposeConvolution2dInt16NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<int16_t, 4> UnbiasedPaddedTransposeConvolution2dInt16NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return PaddedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +// Strided biased +LayerTestResult<float, 4> StridedTransposeConvolution2dFloatNchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<float, 4> StridedTransposeConvolution2dFloatNhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +LayerTestResult<uint8_t, 4> StridedTransposeConvolution2dUint8NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<uint8_t, 4> StridedTransposeConvolution2dUint8NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +LayerTestResult<int16_t, 4> StridedTransposeConvolution2dInt16NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NCHW); +} + +LayerTestResult<int16_t, 4> StridedTransposeConvolution2dInt16NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + true, + armnn::DataLayout::NHWC); +} + +// Strided unbiased +LayerTestResult<float, 4> UnbiasedStridedTransposeConvolution2dFloatNchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<float, 4> UnbiasedStridedTransposeConvolution2dFloatNhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::Float32, armnn::DataType::Float32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +LayerTestResult<uint8_t, 4> UnbiasedStridedTransposeConvolution2dUint8NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<uint8_t, 4> UnbiasedStridedTransposeConvolution2dUint8NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedAsymm8, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +} + +LayerTestResult<int16_t, 4> UnbiasedStridedTransposeConvolution2dInt16NchwTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NCHW); +} + +LayerTestResult<int16_t, 4> UnbiasedStridedTransposeConvolution2dInt16NhwcTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedTransposeConvolution2dTestImpl<armnn::DataType::QuantisedSymm16, armnn::DataType::Signed32>( + workloadFactory, + memoryManager, + false, + armnn::DataLayout::NHWC); +}
\ No newline at end of file |