aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer/Serializer.cpp
diff options
context:
space:
mode:
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);