diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-02-19 16:31:08 +0000 |
---|---|---|
committer | Aron Virginas-Tar <aron.virginas-tar@arm.com> | 2019-02-20 14:08:34 +0000 |
commit | c04125f678be1cce86ebcfe94b587e8eba5b7fde (patch) | |
tree | f6a3616e414f35f7433c04be1cbd15cb9c899d1e /src/armnnSerializer/Serializer.cpp | |
parent | 9ffd2fe273c4f98a832da96d37dcb21b94692546 (diff) | |
download | armnn-c04125f678be1cce86ebcfe94b587e8eba5b7fde.tar.gz |
IVGCVSW-2685 Serialize / de-serialize the DepthwiseConvolution2d layer
Change-Id: I37e360c824b30cb14cbef86f6ff7636bc9382109
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@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 d6a23ccdb7..27204a010d 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -129,6 +129,39 @@ void SerializerVisitor::VisitConvolution2dLayer(const IConnectableLayer* layer, CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_Convolution2dLayer); } +void SerializerVisitor::VisitDepthwiseConvolution2dLayer(const IConnectableLayer* layer, + const DepthwiseConvolution2dDescriptor& descriptor, + const ConstTensor& weights, + const Optional<ConstTensor>& biases, + const char* name) +{ + auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_DepthwiseConvolution2d); + auto fbDescriptor = CreateDepthwiseConvolution2dDescriptor(m_flatBufferBuilder, + descriptor.m_PadLeft, + descriptor.m_PadRight, + descriptor.m_PadTop, + descriptor.m_PadBottom, + descriptor.m_StrideX, + descriptor.m_StrideY, + descriptor.m_BiasEnabled, + GetFlatBufferDataLayout(descriptor.m_DataLayout)); + + flatbuffers::Offset<serializer::ConstTensor> fbWeightsConstTensorInfo = CreateConstTensorInfo(weights); + flatbuffers::Offset<serializer::ConstTensor> fbBiasesConstTensorInfo; + if (biases.has_value()) + { + fbBiasesConstTensorInfo = CreateConstTensorInfo(biases.value()); + } + + auto flatBufferLayer = CreateDepthwiseConvolution2dLayer(m_flatBufferBuilder, + fbBaseLayer, + fbDescriptor, + fbWeightsConstTensorInfo, + fbBiasesConstTensorInfo); + + CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_DepthwiseConvolution2dLayer); +} + // Build FlatBuffer for Multiplication Layer void SerializerVisitor::VisitMultiplicationLayer(const IConnectableLayer* layer, const char* name) { |