From d6a9dee3fe584921d24a264176468898d38a6202 Mon Sep 17 00:00:00 2001 From: Matthew Jackson Date: Mon, 22 Jul 2019 13:53:24 +0100 Subject: IVGCVSW-3368 Add reference support for depthwise multiplier > 3 * Remove multiplier check in TfLite parser * Add reference unit test for depthwise multipler of 64, as in DeepSpeaker Signed-off-by: Matthew Jackson Change-Id: I787339ab4c4d269333985353d191202d070906ba --- src/backends/backendsCommon/test/LayerTests.cpp | 32 +++++++++++++++++++++++++ src/backends/backendsCommon/test/LayerTests.hpp | 4 ++++ 2 files changed, 36 insertions(+) (limited to 'src/backends/backendsCommon/test') diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp index 03ab37dd46..d6e0e879fd 100644 --- a/src/backends/backendsCommon/test/LayerTests.cpp +++ b/src/backends/backendsCommon/test/LayerTests.cpp @@ -1498,6 +1498,38 @@ LayerTestResult DepthwiseConvolution2dDepthMul1Test( workloadFactory, memoryManager, 0.0f, 0, biasEnabled, layout); } +LayerTestResult DepthwiseConvolution2dDepthMul64Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + armnn::TensorInfo inputTensorInfo({ 1, 1, 2, 2 }, armnn::DataType::Float32); + auto input = MakeTensor(inputTensorInfo, { 1.f, 2.f, 3.f, 4.f }); + + std::vector kernelData; + std::vector singleDepthKernel{ 1.f, -1.f, -1.f, 1.f }; + for (unsigned int i = 0; i < 64; ++i) + { + kernelData.insert(kernelData.end(), singleDepthKernel.begin(), singleDepthKernel.end()); + } + armnn::TensorInfo kernelTensorInfo({ 64, 1, 2, 2 }, armnn::DataType::Float32); + auto kernel = MakeTensor(kernelTensorInfo, kernelData); + + std::vector expectedOutputData(64, 0.f); + armnn::TensorInfo outputTensorInfo({ 1, 64, 1, 1 }, armnn::DataType::Float32); + auto expectedOutput = MakeTensor(outputTensorInfo, expectedOutputData); + + return DepthwiseConvolution2dTestImpl( + workloadFactory, + memoryManager, + input, + kernel, + boost::multi_array(), + expectedOutput, + 0.f, + 0, + armnn::DataLayout::NCHW); +} + LayerTestResult DepthwiseConvolution2dAsymmetricTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, diff --git a/src/backends/backendsCommon/test/LayerTests.hpp b/src/backends/backendsCommon/test/LayerTests.hpp index 3db826f379..d99e3b4f3a 100644 --- a/src/backends/backendsCommon/test/LayerTests.hpp +++ b/src/backends/backendsCommon/test/LayerTests.hpp @@ -159,6 +159,10 @@ LayerTestResult DepthwiseConvolution2dDepthMul1Test( bool biasEnabled, const armnn::DataLayout layout); +LayerTestResult DepthwiseConvolution2dDepthMul64Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult DepthwiseConvolution2dAsymmetricTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, -- cgit v1.2.1