aboutsummaryrefslogtreecommitdiff
path: root/src/armnnDeserializer/Deserializer.cpp
diff options
context:
space:
mode:
authorMatthew Sloyan <matthew.sloyan@arm.com>2021-10-21 14:05:31 +0100
committerTeresa Charlin <teresa.charlinreyes@arm.com>2021-10-27 20:54:21 +0100
commit2e5d0b2e2a212ceb803681b717cbaf821f5e0929 (patch)
treedd2364c8cd2845bd880191526a5eeb51eee7a2d4 /src/armnnDeserializer/Deserializer.cpp
parent65b86d4a42f3a55322d4bd4d8dccf6cf22775a30 (diff)
downloadarmnn-2e5d0b2e2a212ceb803681b717cbaf821f5e0929.tar.gz
IVGCVSW-6469 Add MirrorPad FrontEnd and Ref Support
* Added PaddingMode enum to PaddingDescriptor to enable Symmetric and Reflect padding. * Added Symmetric and Reflect Ref implementation. * Added Serializer & Deserializer support. * Added unit tests. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I4bed907b31742b32ccefe5e8ca39a6f1e5bd9dee
Diffstat (limited to 'src/armnnDeserializer/Deserializer.cpp')
-rw-r--r--src/armnnDeserializer/Deserializer.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp
index c088ef7b54..bfd4f6b560 100644
--- a/src/armnnDeserializer/Deserializer.cpp
+++ b/src/armnnDeserializer/Deserializer.cpp
@@ -577,6 +577,19 @@ armnn::UnaryOperation ToUnaryOperation(armnnSerializer::UnaryOperation operation
}
}
+armnn::PaddingMode ToPaddingMode(armnnSerializer::PaddingMode paddingMode)
+{
+ switch (paddingMode)
+ {
+ case armnnSerializer::PaddingMode::PaddingMode_Reflect:
+ return armnn::PaddingMode::Reflect;
+ case armnnSerializer::PaddingMode::PaddingMode_Symmetric:
+ return armnn::PaddingMode::Symmetric;
+ default:
+ return armnn::PaddingMode::Constant;
+ }
+}
+
armnn::ResizeMethod ToResizeMethod(armnnSerializer::ResizeMethod method)
{
switch (method)
@@ -2064,6 +2077,7 @@ void IDeserializer::DeserializerImpl::ParsePad(GraphPtr graph, unsigned int laye
auto flatBufferDescriptor = graph->layers()->Get(layerIndex)->layer_as_PadLayer()->descriptor();
auto flatBufferPadList = flatBufferDescriptor->padList();
+ auto paddingMode = flatBufferDescriptor->paddingMode();
float padValue = flatBufferDescriptor->padValue();
if (flatBufferPadList->Length() % 2 != 0)
@@ -2079,7 +2093,7 @@ void IDeserializer::DeserializerImpl::ParsePad(GraphPtr graph, unsigned int laye
padList.emplace_back(flatBufferPadList->Get(i), flatBufferPadList->Get(i+1));
}
- armnn::PadDescriptor descriptor(padList, padValue);
+ armnn::PadDescriptor descriptor(padList, padValue, ToPaddingMode(paddingMode));
auto layerName = GetLayerName(graph, layerIndex);
IConnectableLayer* layer = m_Network->AddPadLayer(descriptor, layerName.c_str());