aboutsummaryrefslogtreecommitdiff
path: root/src/armnnSerializer/Serializer.cpp
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2019-02-19 16:31:08 +0000
committerAron Virginas-Tar <aron.virginas-tar@arm.com>2019-02-20 14:08:34 +0000
commitc04125f678be1cce86ebcfe94b587e8eba5b7fde (patch)
treef6a3616e414f35f7433c04be1cbd15cb9c899d1e /src/armnnSerializer/Serializer.cpp
parent9ffd2fe273c4f98a832da96d37dcb21b94692546 (diff)
downloadarmnn-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.cpp33
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)
{