From 6fb339a7d202a9c64d8c7843d630fe8ab7be9f33 Mon Sep 17 00:00:00 2001 From: FinnWilliamsArm Date: Fri, 28 Jun 2019 15:07:10 +0100 Subject: IVGCVSW-3364 Add serialization support for Resize layer Signed-off-by: FinnWilliamsArm Change-Id: I3b1af816cefc1760f63324f365de93f899c9c9ee --- src/armnnSerializer/test/SerializerTests.cpp | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'src/armnnSerializer/test') diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp index 294adec12e..e51f76bd33 100644 --- a/src/armnnSerializer/test/SerializerTests.cpp +++ b/src/armnnSerializer/test/SerializerTests.cpp @@ -2025,6 +2025,65 @@ BOOST_AUTO_TEST_CASE(SerializeReshape) deserializedNetwork->Accept(verifier); } +BOOST_AUTO_TEST_CASE(SerializeResize) +{ + class ResizeLayerVerifier : public LayerVerifierBase + { + public: + ResizeLayerVerifier(const std::string& layerName, + const std::vector& inputInfos, + const std::vector& outputInfos, + const armnn::ResizeDescriptor& descriptor) + : LayerVerifierBase(layerName, inputInfos, outputInfos) + , m_Descriptor(descriptor) {} + + void VisitResizeLayer(const armnn::IConnectableLayer* layer, + const armnn::ResizeDescriptor& descriptor, + const char* name) override + { + VerifyNameAndConnections(layer, name); + VerifyDescriptor(descriptor); + } + + private: + void VerifyDescriptor(const armnn::ResizeDescriptor& descriptor) + { + BOOST_CHECK(descriptor.m_DataLayout == m_Descriptor.m_DataLayout); + BOOST_CHECK(descriptor.m_TargetWidth == m_Descriptor.m_TargetWidth); + BOOST_CHECK(descriptor.m_TargetHeight == m_Descriptor.m_TargetHeight); + BOOST_CHECK(descriptor.m_Method == m_Descriptor.m_Method); + } + + armnn::ResizeDescriptor m_Descriptor; + }; + + const std::string layerName("resize"); + const armnn::TensorInfo inputInfo = armnn::TensorInfo({1, 3, 5, 5}, armnn::DataType::Float32); + const armnn::TensorInfo outputInfo = armnn::TensorInfo({1, 3, 2, 4}, armnn::DataType::Float32); + + armnn::ResizeDescriptor desc; + desc.m_TargetWidth = 4; + desc.m_TargetHeight = 2; + desc.m_Method = armnn::ResizeMethod::NearestNeighbor; + + armnn::INetworkPtr network = armnn::INetwork::Create(); + armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0); + armnn::IConnectableLayer* const resizeLayer = network->AddResizeLayer(desc, layerName.c_str()); + armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0); + + inputLayer->GetOutputSlot(0).Connect(resizeLayer->GetInputSlot(0)); + resizeLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0)); + + inputLayer->GetOutputSlot(0).SetTensorInfo(inputInfo); + resizeLayer->GetOutputSlot(0).SetTensorInfo(outputInfo); + + armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network)); + BOOST_CHECK(deserializedNetwork); + + ResizeLayerVerifier verifier(layerName, {inputInfo}, {outputInfo}, desc); + deserializedNetwork->Accept(verifier); +} + BOOST_AUTO_TEST_CASE(SerializeResizeBilinear) { class ResizeBilinearLayerVerifier : public LayerVerifierBase -- cgit v1.2.1