diff --git a/src/armnnSerializer/ArmnnSchema.fbs b/src/armnnSerializer/ArmnnSchema.fbs
index ac32e66..01142ff 100644
--- a/src/armnnSerializer/ArmnnSchema.fbs
+++ b/src/armnnSerializer/ArmnnSchema.fbs
@@ -109,7 +109,8 @@
     ResizeBilinear = 25,
     Subtraction = 26,
     StridedSlice = 27,
-    Gather = 28
+    Gather = 28,
+    Mean = 29
 }
 
 // Base layer table to be used as part of other layers
@@ -349,6 +350,16 @@
     dataLayout:DataLayout = NCHW;
 }
 
+table MeanLayer {
+    base:LayerBase;
+    descriptor:MeanDescriptor;
+}
+
+table MeanDescriptor {
+    axis:[uint];
+    keepDims:bool = false;
+}
+
 table PadLayer {
     base:LayerBase;
     descriptor:PadDescriptor;
@@ -433,7 +444,8 @@
     ResizeBilinearLayer,
     SubtractionLayer,
     StridedSliceLayer,
-    GatherLayer
+    GatherLayer,
+    MeanLayer
 }
 
 table AnyLayer {
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 4e408ae..56c4281 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -313,22 +313,6 @@
     CreateAnyLayer(flatBufferFloorLayer.o, serializer::Layer::Layer_FloorLayer);
 }
 
-void SerializerVisitor::VisitMinimumLayer(const armnn::IConnectableLayer* layer, const char* name)
-{
-    auto fbMinimumBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Minimum);
-    auto fbMinimumLayer     = serializer::CreateMinimumLayer(m_flatBufferBuilder, fbMinimumBaseLayer);
-
-    CreateAnyLayer(fbMinimumLayer.o, serializer::Layer::Layer_MinimumLayer);
-}
-
-void SerializerVisitor::VisitMaximumLayer(const armnn::IConnectableLayer* layer, const char* name)
-{
-    auto fbMaximumBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Maximum);
-    auto fbMaximumLayer     = serializer::CreateMaximumLayer(m_flatBufferBuilder, fbMaximumBaseLayer);
-
-    CreateAnyLayer(fbMaximumLayer.o, serializer::Layer::Layer_MaximumLayer);
-}
-
 void SerializerVisitor::VisitGatherLayer(const armnn::IConnectableLayer* layer, const char* name)
 {
     auto fbGatherBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Gather);
@@ -340,23 +324,50 @@
 void SerializerVisitor::VisitGreaterLayer(const armnn::IConnectableLayer* layer, const char* name)
 {
     auto fbGreaterBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Greater);
-    auto fbGreaterLayer     = serializer::CreateGreaterLayer(m_flatBufferBuilder, fbGreaterBaseLayer);
+    auto fbGreaterLayer = serializer::CreateGreaterLayer(m_flatBufferBuilder, fbGreaterBaseLayer);
 
     CreateAnyLayer(fbGreaterLayer.o, serializer::Layer::Layer_GreaterLayer);
 }
 
-// Build FlatBuffer for Multiplication Layer
+void SerializerVisitor::VisitMaximumLayer(const armnn::IConnectableLayer* layer, const char* name)
+{
+    auto fbMaximumBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Maximum);
+    auto fbMaximumLayer     = serializer::CreateMaximumLayer(m_flatBufferBuilder, fbMaximumBaseLayer);
+
+    CreateAnyLayer(fbMaximumLayer.o, serializer::Layer::Layer_MaximumLayer);
+}
+
+void SerializerVisitor::VisitMeanLayer(const armnn::IConnectableLayer* layer,
+                                       const armnn::MeanDescriptor& descriptor,
+                                       const char* name)
+{
+    auto fbMeanBaseLayer  = CreateLayerBase(layer, serializer::LayerType::LayerType_Mean);
+    auto fbMeanDescriptor = serializer::CreateMeanDescriptor(m_flatBufferBuilder,
+                                                             m_flatBufferBuilder.CreateVector(descriptor.m_Axis),
+                                                             descriptor.m_KeepDims);
+
+    auto fbMeanLayer = serializer::CreateMeanLayer(m_flatBufferBuilder,
+                                                   fbMeanBaseLayer,
+                                                   fbMeanDescriptor);
+
+    CreateAnyLayer(fbMeanLayer.o, serializer::Layer::Layer_MeanLayer);
+}
+
+void SerializerVisitor::VisitMinimumLayer(const armnn::IConnectableLayer* layer, const char* name)
+{
+    auto fbMinimumBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Minimum);
+    auto fbMinimumLayer     = serializer::CreateMinimumLayer(m_flatBufferBuilder, fbMinimumBaseLayer);
+
+    CreateAnyLayer(fbMinimumLayer.o, serializer::Layer::Layer_MinimumLayer);
+}
+
 void SerializerVisitor::VisitMultiplicationLayer(const armnn::IConnectableLayer* layer, const char* name)
 {
-    // Create FlatBuffer BaseLayer
-    auto flatBufferMultiplicationBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Multiplication);
+    auto fbMultiplicationBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Multiplication);
+    auto fbMultiplicationLayer     = serializer::CreateMultiplicationLayer(m_flatBufferBuilder,
+                                                                           fbMultiplicationBaseLayer);
 
-    // Create the FlatBuffer MultiplicationLayer
-    auto flatBufferMultiplicationLayer =
-        serializer::CreateMultiplicationLayer(m_flatBufferBuilder, flatBufferMultiplicationBaseLayer);
-
-    // Add the AnyLayer to the FlatBufferLayers
-    CreateAnyLayer(flatBufferMultiplicationLayer.o, serializer::Layer::Layer_MultiplicationLayer);
+    CreateAnyLayer(fbMultiplicationLayer.o, serializer::Layer::Layer_MultiplicationLayer);
 }
 
 void SerializerVisitor::VisitPadLayer(const armnn::IConnectableLayer* layer,
diff --git a/src/armnnSerializer/Serializer.hpp b/src/armnnSerializer/Serializer.hpp
index 5244a3c..f928c37 100644
--- a/src/armnnSerializer/Serializer.hpp
+++ b/src/armnnSerializer/Serializer.hpp
@@ -102,6 +102,10 @@
                          armnn::LayerBindingId id,
                          const char* name = nullptr) override;
 
+    void VisitMeanLayer(const armnn::IConnectableLayer* layer,
+                        const armnn::MeanDescriptor& descriptor,
+                        const char* name) override;
+
     void VisitMinimumLayer(const armnn::IConnectableLayer* layer,
                            const char* name = nullptr) override;
 
diff --git a/src/armnnSerializer/SerializerSupport.md b/src/armnnSerializer/SerializerSupport.md
index 24a764a..bb50242 100644
--- a/src/armnnSerializer/SerializerSupport.md
+++ b/src/armnnSerializer/SerializerSupport.md
@@ -20,6 +20,7 @@
 * Gather
 * Greater
 * Maximum
+* Mean
 * Minimum
 * Multiplication
 * Normalization
diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp
index 0689114..a18ae32 100644
--- a/src/armnnSerializer/test/SerializerTests.cpp
+++ b/src/armnnSerializer/test/SerializerTests.cpp
@@ -1334,4 +1334,44 @@
                                                    {outputTensorInfo.GetShape()});
 }
 
+BOOST_AUTO_TEST_CASE(SerializeDeserializeMean)
+{
+    class VerifyMeanName : public armnn::LayerVisitorBase<armnn::VisitorNoThrowPolicy>
+    {
+    public:
+        void VisitMeanLayer(const armnn::IConnectableLayer*, const armnn::MeanDescriptor&, const char* name)
+        {
+            BOOST_TEST(name == "mean");
+        }
+    };
+
+    armnn::TensorInfo inputTensorInfo({1, 1, 3, 2}, armnn::DataType::Float32);
+    armnn::TensorInfo outputTensorInfo({1, 1, 1, 2}, armnn::DataType::Float32);
+
+    armnn::MeanDescriptor descriptor;
+    descriptor.m_Axis = { 2 };
+    descriptor.m_KeepDims = true;
+
+    armnn::INetworkPtr network = armnn::INetwork::Create();
+    armnn::IConnectableLayer* const inputLayer   = network->AddInputLayer(0);
+    armnn::IConnectableLayer* const meanLayer = network->AddMeanLayer(descriptor, "mean");
+    armnn::IConnectableLayer* const outputLayer  = network->AddOutputLayer(0);
+
+    inputLayer->GetOutputSlot(0).Connect(meanLayer->GetInputSlot(0));
+    inputLayer->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
+    meanLayer->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
+    meanLayer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
+
+    armnn::INetworkPtr deserializedNetwork = DeserializeNetwork(SerializeNetwork(*network));
+    BOOST_CHECK(deserializedNetwork);
+
+    VerifyMeanName nameChecker;
+    deserializedNetwork->Accept(nameChecker);
+
+    CheckDeserializedNetworkAgainstOriginal<float>(*deserializedNetwork,
+                                                   *network,
+                                                   {inputTensorInfo.GetShape()},
+                                                   {outputTensorInfo.GetShape()});
+}
+
 BOOST_AUTO_TEST_SUITE_END()
