From ac25a1beda8da71a82c0cf2795e2a6eaaeaa26b1 Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Thu, 28 Feb 2019 10:40:49 +0000 Subject: IVGCVSW-2697 Add Serialize/Deserialize for the Merger Layer * Force generation of schema header in every build * Also fixed typo in OriginsDescriptor comment (Descriptors.hpp) * Added Serialize/Deserialize check on Addition Layer * Added Serialize/Deserialize check on Floor Layer * Added Serialize/Deserialize check on Minimum Layer * Added Serialize/Deserialize check on Maximum Layer * Added Serialize/Deserialize check on Multiplication Layer * Added Serialize/Deserialize check on Division Layer Change-Id: I1358ea4db7ca506d8bcec2ee64e1fbad6005e723 Signed-off-by: Jim Flynn --- src/armnnSerializer/Serializer.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/armnnSerializer/Serializer.cpp') diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp index 56c4281a87..3b71e5fc7d 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -361,6 +361,39 @@ void SerializerVisitor::VisitMinimumLayer(const armnn::IConnectableLayer* layer, CreateAnyLayer(fbMinimumLayer.o, serializer::Layer::Layer_MinimumLayer); } +void SerializerVisitor::VisitMergerLayer(const armnn::IConnectableLayer* layer, + const armnn::OriginsDescriptor& mergerDescriptor, + const char* name) +{ + auto flatBufferMergerBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Merger); + + std::vector> views; + for (unsigned int v = 0; v < mergerDescriptor.GetNumViews(); ++v) + { + const uint32_t* origin = mergerDescriptor.GetViewOrigin(v); + std::vector origins; + for (unsigned int d = 0; d < mergerDescriptor.GetNumDimensions(); ++d) + { + origins.push_back(origin[d]); + } + auto view = m_flatBufferBuilder.CreateVector(origins); + auto uintVector = CreateUintVector(m_flatBufferBuilder, view); + views.push_back(uintVector); + } + + auto flatBufferMergerDescriptor = CreateOriginsDescriptor(m_flatBufferBuilder, + mergerDescriptor.GetConcatAxis(), + mergerDescriptor.GetNumViews(), + mergerDescriptor.GetNumDimensions(), + m_flatBufferBuilder.CreateVector(views)); + + auto flatBufferLayer = CreateMergerLayer(m_flatBufferBuilder, + flatBufferMergerBaseLayer, + flatBufferMergerDescriptor); + + CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_MergerLayer); +} + void SerializerVisitor::VisitMultiplicationLayer(const armnn::IConnectableLayer* layer, const char* name) { auto fbMultiplicationBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Multiplication); -- cgit v1.2.1