diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-06-21 14:20:11 +0100 |
---|---|---|
committer | Áron Virginás-Tar <aron.virginas-tar@arm.com> | 2019-06-21 14:30:24 +0000 |
commit | 5e1b0cf8a7519afb49874a83429ef9939a249f0d (patch) | |
tree | 5c5153572cbc5ddba779af24f0bb81350e0ec4d5 /src/armnnSerializer/test | |
parent | cb549301bc4c5a405e02c1f433537557423d2e36 (diff) | |
download | armnn-5e1b0cf8a7519afb49874a83429ef9939a249f0d.tar.gz |
IVGCVSW-3330 Parse dilation parameters for DepthwiseConvolution2d in Deserializer
* Added code for reading parameters dilationX and dilationY
to Deserializer::ParseDepthwiseConvolution()
* Updated serialization unit tests to check for dilation params
for both Convolution2d and DepthwiseConvolution2d
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Id03629866009e799cf7daf8b7bdafc73d158d9bb
Diffstat (limited to 'src/armnnSerializer/test')
-rw-r--r-- | src/armnnSerializer/test/SerializerTests.cpp | 120 |
1 files changed, 73 insertions, 47 deletions
diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp index 448778b118..c1918c79f6 100644 --- a/src/armnnSerializer/test/SerializerTests.cpp +++ b/src/armnnSerializer/test/SerializerTests.cpp @@ -421,47 +421,56 @@ BOOST_AUTO_TEST_CASE(SerializeConvolution2d) const std::vector<armnn::TensorInfo>& inputInfos, const std::vector<armnn::TensorInfo>& outputInfos, const armnn::Convolution2dDescriptor& descriptor, - const armnn::ConstTensor& weight, - const armnn::Optional<armnn::ConstTensor>& bias) - : LayerVerifierBase(layerName, inputInfos, outputInfos) - , m_Descriptor(descriptor) - , m_Weight(weight) - , m_Bias(bias) {} + const armnn::ConstTensor& weights, + const armnn::Optional<armnn::ConstTensor>& biases) : + LayerVerifierBase(layerName, inputInfos, outputInfos), + m_Descriptor(descriptor), + m_Weights(weights), + m_Biases(biases) + {} void VisitConvolution2dLayer(const armnn::IConnectableLayer* layer, const armnn::Convolution2dDescriptor& descriptor, - const armnn::ConstTensor& weight, - const armnn::Optional<armnn::ConstTensor>& bias, + const armnn::ConstTensor& weights, + const armnn::Optional<armnn::ConstTensor>& biases, const char* name) override { VerifyNameAndConnections(layer, name); VerifyDescriptor(descriptor); - CompareConstTensor(weight, m_Weight); + // check weights + CompareConstTensor(weights, m_Weights); - BOOST_TEST(bias.has_value() == m_Bias.has_value()); - if (bias.has_value() && m_Bias.has_value()) + // check biases + BOOST_CHECK(biases.has_value() == descriptor.m_BiasEnabled); + BOOST_CHECK(m_Biases.has_value() == m_Descriptor.m_BiasEnabled); + + BOOST_CHECK(biases.has_value() == m_Biases.has_value()); + + if (biases.has_value() && m_Biases.has_value()) { - CompareConstTensor(bias.value(), m_Bias.value()); + CompareConstTensor(biases.value(), m_Biases.value()); } } private: void VerifyDescriptor(const armnn::Convolution2dDescriptor& descriptor) { - BOOST_TEST(descriptor.m_PadLeft == m_Descriptor.m_PadLeft); - BOOST_TEST(descriptor.m_PadRight == m_Descriptor.m_PadRight); - BOOST_TEST(descriptor.m_PadTop == m_Descriptor.m_PadTop); - BOOST_TEST(descriptor.m_PadBottom == m_Descriptor.m_PadBottom); - BOOST_TEST(descriptor.m_StrideX == m_Descriptor.m_StrideX); - BOOST_TEST(descriptor.m_StrideY == m_Descriptor.m_StrideY); - BOOST_TEST(descriptor.m_BiasEnabled == m_Descriptor.m_BiasEnabled); - BOOST_TEST(GetDataLayoutName(descriptor.m_DataLayout) == GetDataLayoutName(m_Descriptor.m_DataLayout)); + BOOST_CHECK(descriptor.m_PadLeft == m_Descriptor.m_PadLeft); + BOOST_CHECK(descriptor.m_PadRight == m_Descriptor.m_PadRight); + BOOST_CHECK(descriptor.m_PadTop == m_Descriptor.m_PadTop); + BOOST_CHECK(descriptor.m_PadBottom == m_Descriptor.m_PadBottom); + BOOST_CHECK(descriptor.m_StrideX == m_Descriptor.m_StrideX); + BOOST_CHECK(descriptor.m_StrideY == m_Descriptor.m_StrideY); + BOOST_CHECK(descriptor.m_DilationX == m_Descriptor.m_DilationX); + BOOST_CHECK(descriptor.m_DilationY == m_Descriptor.m_DilationY); + BOOST_CHECK(descriptor.m_BiasEnabled == m_Descriptor.m_BiasEnabled); + BOOST_CHECK(descriptor.m_DataLayout == m_Descriptor.m_DataLayout); } - armnn::Convolution2dDescriptor m_Descriptor; - armnn::ConstTensor m_Weight; - armnn::Optional<armnn::ConstTensor> m_Bias; + armnn::Convolution2dDescriptor m_Descriptor; + armnn::ConstTensor m_Weights; + armnn::Optional<armnn::ConstTensor> m_Biases; }; const std::string layerName("convolution2d"); @@ -484,6 +493,8 @@ BOOST_AUTO_TEST_CASE(SerializeConvolution2d) descriptor.m_PadBottom = 1; descriptor.m_StrideX = 2; descriptor.m_StrideY = 2; + descriptor.m_DilationX = 2; + descriptor.m_DilationY = 2; descriptor.m_BiasEnabled = true; descriptor.m_DataLayout = armnn::DataLayout::NHWC; @@ -518,47 +529,56 @@ BOOST_AUTO_TEST_CASE(SerializeDepthwiseConvolution2d) const std::vector<armnn::TensorInfo>& inputInfos, const std::vector<armnn::TensorInfo>& outputInfos, const armnn::DepthwiseConvolution2dDescriptor& descriptor, - const armnn::ConstTensor& weight, - const armnn::Optional<armnn::ConstTensor>& bias) - : LayerVerifierBase(layerName, inputInfos, outputInfos) - , m_Descriptor(descriptor) - , m_Weight(weight) - , m_Bias(bias) {} + const armnn::ConstTensor& weights, + const armnn::Optional<armnn::ConstTensor>& biases) : + LayerVerifierBase(layerName, inputInfos, outputInfos), + m_Descriptor(descriptor), + m_Weights(weights), + m_Biases(biases) + {} void VisitDepthwiseConvolution2dLayer(const armnn::IConnectableLayer* layer, const armnn::DepthwiseConvolution2dDescriptor& descriptor, - const armnn::ConstTensor& weight, - const armnn::Optional<armnn::ConstTensor>& bias, + const armnn::ConstTensor& weights, + const armnn::Optional<armnn::ConstTensor>& biases, const char* name) override { VerifyNameAndConnections(layer, name); VerifyDescriptor(descriptor); - CompareConstTensor(weight, m_Weight); + // check weights + CompareConstTensor(weights, m_Weights); - BOOST_TEST(bias.has_value() == m_Bias.has_value()); - if (bias.has_value() && m_Bias.has_value()) + // check biases + BOOST_CHECK(biases.has_value() == descriptor.m_BiasEnabled); + BOOST_CHECK(m_Biases.has_value() == m_Descriptor.m_BiasEnabled); + + BOOST_CHECK(biases.has_value() == m_Biases.has_value()); + + if (biases.has_value() && m_Biases.has_value()) { - CompareConstTensor(bias.value(), m_Bias.value()); + CompareConstTensor(biases.value(), m_Biases.value()); } } private: void VerifyDescriptor(const armnn::DepthwiseConvolution2dDescriptor& descriptor) { - BOOST_TEST(descriptor.m_PadLeft == m_Descriptor.m_PadLeft); - BOOST_TEST(descriptor.m_PadRight == m_Descriptor.m_PadRight); - BOOST_TEST(descriptor.m_PadTop == m_Descriptor.m_PadTop); - BOOST_TEST(descriptor.m_PadBottom == m_Descriptor.m_PadBottom); - BOOST_TEST(descriptor.m_StrideX == m_Descriptor.m_StrideX); - BOOST_TEST(descriptor.m_StrideY == m_Descriptor.m_StrideY); - BOOST_TEST(descriptor.m_BiasEnabled == m_Descriptor.m_BiasEnabled); - BOOST_TEST(GetDataLayoutName(descriptor.m_DataLayout) == GetDataLayoutName(m_Descriptor.m_DataLayout)); + BOOST_CHECK(descriptor.m_PadLeft == m_Descriptor.m_PadLeft); + BOOST_CHECK(descriptor.m_PadRight == m_Descriptor.m_PadRight); + BOOST_CHECK(descriptor.m_PadTop == m_Descriptor.m_PadTop); + BOOST_CHECK(descriptor.m_PadBottom == m_Descriptor.m_PadBottom); + BOOST_CHECK(descriptor.m_StrideX == m_Descriptor.m_StrideX); + BOOST_CHECK(descriptor.m_StrideY == m_Descriptor.m_StrideY); + BOOST_CHECK(descriptor.m_DilationX == m_Descriptor.m_DilationX); + BOOST_CHECK(descriptor.m_DilationY == m_Descriptor.m_DilationY); + BOOST_CHECK(descriptor.m_BiasEnabled == m_Descriptor.m_BiasEnabled); + BOOST_CHECK(descriptor.m_DataLayout == m_Descriptor.m_DataLayout); } armnn::DepthwiseConvolution2dDescriptor m_Descriptor; - armnn::ConstTensor m_Weight; - armnn::Optional<armnn::ConstTensor> m_Bias; + armnn::ConstTensor m_Weights; + armnn::Optional<armnn::ConstTensor> m_Biases; }; const std::string layerName("depwiseConvolution2d"); @@ -575,8 +595,14 @@ BOOST_AUTO_TEST_CASE(SerializeDepthwiseConvolution2d) armnn::ConstTensor biases(biasesInfo, biasesData); armnn::DepthwiseConvolution2dDescriptor descriptor; - descriptor.m_StrideX = 1; - descriptor.m_StrideY = 1; + descriptor.m_PadLeft = 1; + descriptor.m_PadRight = 1; + descriptor.m_PadTop = 1; + descriptor.m_PadBottom = 1; + descriptor.m_StrideX = 2; + descriptor.m_StrideY = 2; + descriptor.m_DilationX = 2; + descriptor.m_DilationY = 2; descriptor.m_BiasEnabled = true; descriptor.m_DataLayout = armnn::DataLayout::NHWC; |