diff options
author | Jim Flynn <jim.flynn@arm.com> | 2019-02-28 10:40:49 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2019-03-07 15:43:47 +0000 |
commit | ac25a1beda8da71a82c0cf2795e2a6eaaeaa26b1 (patch) | |
tree | 2f186eac90aa72f224bd0eccaee3cffa83dea164 /src/armnnSerializer/Serializer.cpp | |
parent | d469faf863f4ecd3ba56f27e51884ef0dfeac7bf (diff) | |
download | armnn-ac25a1beda8da71a82c0cf2795e2a6eaaeaa26b1.tar.gz |
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 <jim.flynn@arm.com>
Diffstat (limited to 'src/armnnSerializer/Serializer.cpp')
-rw-r--r-- | src/armnnSerializer/Serializer.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
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<flatbuffers::Offset<UintVector>> views; + for (unsigned int v = 0; v < mergerDescriptor.GetNumViews(); ++v) + { + const uint32_t* origin = mergerDescriptor.GetViewOrigin(v); + std::vector<uint32_t> 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); |