From 452869973b9a45c9c44820d16f92f7dfc96e9aef Mon Sep 17 00:00:00 2001 From: Nattapat Chaimanowong Date: Tue, 26 Feb 2019 15:53:02 +0000 Subject: IVGCVSW-2708 Add Serializer and Deserializer SpaceToBatchNd Change-Id: I14f2a660654dc87939fe413fafa9384f09594f68 Signed-off-by: Nattapat Chaimanowong --- src/armnnSerializer/test/SerializerTests.cpp | 46 ++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'src/armnnSerializer/test') diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp index 4e90dbe9e1..f64c14a184 100644 --- a/src/armnnSerializer/test/SerializerTests.cpp +++ b/src/armnnSerializer/test/SerializerTests.cpp @@ -636,4 +636,50 @@ BOOST_AUTO_TEST_CASE(SerializeDeserializeFullyConnected) outputInfo.GetShape()); } +BOOST_AUTO_TEST_CASE(SerializeDeserializeSpaceToBatchNd) +{ + class VerifySpaceToBatchNdName : public armnn::LayerVisitorBase + { + public: + void VisitSpaceToBatchNdLayer(const armnn::IConnectableLayer*, + const armnn::SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor, + const char* name) override + { + BOOST_TEST(name == "SpaceToBatchNdLayer"); + } + }; + + unsigned int inputShape[] = {2, 1, 2, 4}; + unsigned int outputShape[] = {8, 1, 1, 3}; + + armnn::SpaceToBatchNdDescriptor desc; + desc.m_DataLayout = armnn::DataLayout::NCHW; + desc.m_BlockShape = {2, 2}; + desc.m_PadList = {{0, 0}, {2, 0}}; + + auto inputTensorInfo = armnn::TensorInfo(4, inputShape, armnn::DataType::Float32); + auto outputTensorInfo = armnn::TensorInfo(4, outputShape, armnn::DataType::Float32); + + armnn::INetworkPtr network = armnn::INetwork::Create(); + armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0); + armnn::IConnectableLayer* const spaceToBatchNdLayer = network->AddSpaceToBatchNdLayer(desc, "SpaceToBatchNdLayer"); + armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0); + + inputLayer->GetOutputSlot(0).Connect(spaceToBatchNdLayer->GetInputSlot(0)); + inputLayer->GetOutputSlot(0).SetTensorInfo(inputTensorInfo); + spaceToBatchNdLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0)); + spaceToBatchNdLayer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo); + + armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network)); + BOOST_CHECK(deserializedNetwork); + + VerifySpaceToBatchNdName nameChecker; + deserializedNetwork->Accept(nameChecker); + + CheckDeserializedNetworkAgainstOriginal(*network, + *deserializedNetwork, + inputTensorInfo.GetShape(), + outputTensorInfo.GetShape()); +} + BOOST_AUTO_TEST_SUITE_END() -- cgit v1.2.1