diff options
author | Tamas Nyiri <tamas.nyiri@arm.com> | 2021-11-05 14:55:33 +0000 |
---|---|---|
committer | Tamas Nyiri <tamas.nyiri@arm.com> | 2021-11-17 11:32:55 +0000 |
commit | d998a1cfbcc7b4ed9922532ffe19c51283fcae68 (patch) | |
tree | 53317946bb5845f4f253ebfd53b668c6698fcfee /src/armnnSerializer/test | |
parent | 7b885b3cce70154596b1994b013ea91527117c26 (diff) | |
download | armnn-d998a1cfbcc7b4ed9922532ffe19c51283fcae68.tar.gz |
IVGCVSW-6510 Serialization + Deserialization implementation
Subtask of story: IVGCVSW-6164 Add a Pooling3d FrontEnd and Ref Implementation
* Add serialization support
* Add deserialization support
* Add corresponding unit tests
Change-Id: I7cce5421f0a9b7c47a03524e733f3315131ba125
Signed-off-by: Tamas Nyiri <tamas.nyiri@arm.com>
Diffstat (limited to 'src/armnnSerializer/test')
-rw-r--r-- | src/armnnSerializer/test/SerializerTests.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp index f4e25998d9..632a80a748 100644 --- a/src/armnnSerializer/test/SerializerTests.cpp +++ b/src/armnnSerializer/test/SerializerTests.cpp @@ -1834,6 +1834,49 @@ TEST_CASE("SerializePooling2d") deserializedNetwork->ExecuteStrategy(verifier); } +TEST_CASE("SerializePooling3d") +{ + const std::string layerName("pooling3d"); + const armnn::TensorInfo inputInfo({1, 1, 2, 2, 2}, armnn::DataType::Float32); + const armnn::TensorInfo outputInfo({1, 1, 1, 1, 1}, armnn::DataType::Float32); + + armnn::Pooling3dDescriptor desc; + desc.m_DataLayout = armnn::DataLayout::NDHWC; + desc.m_PadFront = 0; + desc.m_PadBack = 0; + desc.m_PadTop = 0; + desc.m_PadBottom = 0; + desc.m_PadLeft = 0; + desc.m_PadRight = 0; + desc.m_PoolType = armnn::PoolingAlgorithm::Average; + desc.m_OutputShapeRounding = armnn::OutputShapeRounding::Floor; + desc.m_PaddingMethod = armnn::PaddingMethod::Exclude; + desc.m_PoolHeight = 2; + desc.m_PoolWidth = 2; + desc.m_PoolDepth = 2; + desc.m_StrideX = 2; + desc.m_StrideY = 2; + desc.m_StrideZ = 2; + + armnn::INetworkPtr network = armnn::INetwork::Create(); + armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0); + armnn::IConnectableLayer* const pooling3dLayer = network->AddPooling3dLayer(desc, layerName.c_str()); + armnn::IConnectableLayer* const outputLayer = network->AddOutputLayer(0); + + inputLayer->GetOutputSlot(0).Connect(pooling3dLayer->GetInputSlot(0)); + pooling3dLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0)); + + inputLayer->GetOutputSlot(0).SetTensorInfo(inputInfo); + pooling3dLayer->GetOutputSlot(0).SetTensorInfo(outputInfo); + + armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network)); + CHECK(deserializedNetwork); + + LayerVerifierBaseWithDescriptor<armnn::Pooling3dDescriptor> verifier( + layerName, {inputInfo}, {outputInfo}, desc); + deserializedNetwork->ExecuteStrategy(verifier); +} + TEST_CASE("SerializeQuantize") { const std::string layerName("quantize"); |