aboutsummaryrefslogtreecommitdiff
path: root/src/armnnDeserializer/Deserializer.cpp
diff options
context:
space:
mode:
authorFinnWilliamsArm <Finn.Williams@arm.com>2019-09-05 14:34:20 +0100
committerfinn.williams <finn.williams@arm.com>2019-09-10 13:20:58 +0000
commit4ffcc8fb1d4c893e62a8c1fb330fe2742cff5407 (patch)
tree1fe4068e06d57d58da3a1aa9d2b02ca590a0919d /src/armnnDeserializer/Deserializer.cpp
parent82046944e787b0dff7631de973847d448a23c8d1 (diff)
downloadarmnn-4ffcc8fb1d4c893e62a8c1fb330fe2742cff5407.tar.gz
IVGCVSW-3739 Add serialization support for Abs
Signed-off-by: FinnWilliamsArm <Finn.Williams@arm.com> Change-Id: I42c348515f3f93efc2e0570bbebdc77306f12468
Diffstat (limited to 'src/armnnDeserializer/Deserializer.cpp')
-rw-r--r--src/armnnDeserializer/Deserializer.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp
index ef1235745c..8572023fc4 100644
--- a/src/armnnDeserializer/Deserializer.cpp
+++ b/src/armnnDeserializer/Deserializer.cpp
@@ -185,6 +185,7 @@ Deserializer::Deserializer()
m_ParserFunctions(Layer_MAX+1, &Deserializer::ParseUnsupportedLayer)
{
// register supported layers
+ m_ParserFunctions[Layer_AbsLayer] = &Deserializer::ParseAbs;
m_ParserFunctions[Layer_ActivationLayer] = &Deserializer::ParseActivation;
m_ParserFunctions[Layer_AdditionLayer] = &Deserializer::ParseAdd;
m_ParserFunctions[Layer_BatchToSpaceNdLayer] = &Deserializer::ParseBatchToSpaceNd;
@@ -237,6 +238,8 @@ Deserializer::LayerBaseRawPtr Deserializer::GetBaseLayer(const GraphPtr& graphPt
switch(layerType)
{
+ case Layer::Layer_AbsLayer:
+ return graphPtr->layers()->Get(layerIndex)->layer_as_AbsLayer()->base();
case Layer::Layer_ActivationLayer:
return graphPtr->layers()->Get(layerIndex)->layer_as_ActivationLayer()->base();
case Layer::Layer_AdditionLayer:
@@ -851,6 +854,26 @@ void Deserializer::RegisterOutputSlotOfConnection(uint32_t sourceLayerIndex,
connections.outputSlots[outputSlotIndex] = outputSlot;
}
+void Deserializer::ParseAbs(armnnDeserializer::Deserializer::GraphPtr graph, unsigned int layerIndex)
+{
+ CHECK_LAYERS(graph, 0, layerIndex);
+ auto inputs = GetInputs(graph, layerIndex);
+ CHECK_LOCATION();
+ CHECK_VALID_SIZE(inputs.size(), 1);
+
+ auto outputs = GetOutputs(graph, layerIndex);
+ CHECK_VALID_SIZE(outputs.size(), 1);
+
+ auto layerName = GetLayerName(graph, layerIndex);
+
+ IConnectableLayer* layer = m_Network->AddAbsLayer(layerName.c_str());
+ armnn::TensorInfo outputTensorInfo = ToTensorInfo(outputs[0]);
+ layer->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
+
+ RegisterInputSlots(graph, layerIndex, layer);
+ RegisterOutputSlots(graph, layerIndex, layer);
+}
+
void Deserializer::ParseActivation(GraphPtr graph, unsigned int layerIndex)
{
CHECK_LAYERS(graph, 0, layerIndex);