aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer/Serializer.cpp
diff options
context:
space:
mode:
authorTamas Nyiri <tamas.nyiri@arm.com>2021-11-05 14:55:33 +0000
committerTamas Nyiri <tamas.nyiri@arm.com>2021-11-17 11:32:55 +0000
commitd998a1cfbcc7b4ed9922532ffe19c51283fcae68 (patch)
tree53317946bb5845f4f253ebfd53b668c6698fcfee /src/armnnSerializer/Serializer.cpp
parent7b885b3cce70154596b1994b013ea91527117c26 (diff)
downloadarmnn-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/Serializer.cpp')
-rw-r--r--src/armnnSerializer/Serializer.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index a9f7b7d307..4249e08c71 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -1079,6 +1079,39 @@ void SerializerStrategy::SerializePooling2dLayer(const armnn::IConnectableLayer*
CreateAnyLayer(fbPooling2dLayer.o, serializer::Layer::Layer_Pooling2dLayer);
}
+void SerializerStrategy::SerializePooling3dLayer(const armnn::IConnectableLayer* layer,
+ const armnn::Pooling3dDescriptor& pooling3dDescriptor,
+ const char* name)
+{
+ IgnoreUnused(name);
+
+ auto fbPooling3dBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Pooling3d);
+ auto fbPooling3dDescriptor = serializer::CreatePooling3dDescriptor(
+ m_flatBufferBuilder,
+ GetFlatBufferPoolingAlgorithm(pooling3dDescriptor.m_PoolType),
+ pooling3dDescriptor.m_PadLeft,
+ pooling3dDescriptor.m_PadRight,
+ pooling3dDescriptor.m_PadTop,
+ pooling3dDescriptor.m_PadBottom,
+ pooling3dDescriptor.m_PadFront,
+ pooling3dDescriptor.m_PadBack,
+ pooling3dDescriptor.m_PoolWidth,
+ pooling3dDescriptor.m_PoolHeight,
+ pooling3dDescriptor.m_PoolDepth,
+ pooling3dDescriptor.m_StrideX,
+ pooling3dDescriptor.m_StrideY,
+ pooling3dDescriptor.m_StrideZ,
+ GetFlatBufferOutputShapeRounding(pooling3dDescriptor.m_OutputShapeRounding),
+ GetFlatBufferPaddingMethod(pooling3dDescriptor.m_PaddingMethod),
+ GetFlatBufferDataLayout(pooling3dDescriptor.m_DataLayout));
+
+ auto fbPooling3dLayer = serializer::CreatePooling3dLayer(m_flatBufferBuilder,
+ fbPooling3dBaseLayer,
+ fbPooling3dDescriptor);
+
+ CreateAnyLayer(fbPooling3dLayer.o, serializer::Layer::Layer_Pooling3dLayer);
+}
+
void SerializerStrategy::SerializePreluLayer(const armnn::IConnectableLayer* layer,
const char* name)
{
@@ -2208,6 +2241,13 @@ void SerializerStrategy::ExecuteStrategy(const armnn::IConnectableLayer* layer,
SerializePooling2dLayer(layer, layerDescriptor, name);
break;
}
+ case armnn::LayerType::Pooling3d :
+ {
+ const armnn::Pooling3dDescriptor& layerDescriptor =
+ static_cast<const armnn::Pooling3dDescriptor&>(descriptor);
+ SerializePooling3dLayer(layer, layerDescriptor, name);
+ break;
+ }
case armnn::LayerType::Prelu :
{
SerializePreluLayer(layer, name);