aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/layers/StandInLayer.cpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2019-10-21 10:46:16 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-10-21 12:59:23 +0000
commit013c390c2d9829fede2d8b1d59c3f2a497730462 (patch)
tree7918e1e4e3445a741695772864d200b3979dd1f8 /src/armnn/layers/StandInLayer.cpp
parente80ebd101b516751a798aa1b1d669e9117a32266 (diff)
downloadarmnn-013c390c2d9829fede2d8b1d59c3f2a497730462.tar.gz
IVGCVSW-4009 StandInLayer frontend API
Change-Id: I058c57b554769799c6775813215070ef47790e3d Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Diffstat (limited to 'src/armnn/layers/StandInLayer.cpp')
-rw-r--r--src/armnn/layers/StandInLayer.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/armnn/layers/StandInLayer.cpp b/src/armnn/layers/StandInLayer.cpp
new file mode 100644
index 0000000000..fdc905fea2
--- /dev/null
+++ b/src/armnn/layers/StandInLayer.cpp
@@ -0,0 +1,47 @@
+//
+// Copyright © 2019 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "StandInLayer.hpp"
+#include "LayerCloneBase.hpp"
+
+namespace armnn
+{
+
+StandInLayer::StandInLayer(const StandInDescriptor& param, const char* name)
+ : LayerWithParameters(param.m_NumInputs, 1, LayerType::StandIn, param, name)
+{
+}
+
+std::unique_ptr<IWorkload> StandInLayer::CreateWorkload(const Graph& graph, const IWorkloadFactory& factory) const
+{
+ // This throws in the event that it's called. We would expect that any backend that
+ // "claims" to support the StandInLayer type would actually substitute it with a PrecompiledLayer
+ // during graph optimization. There is no interface on the IWorkloadFactory to create a StandInWorkload.
+ throw Exception("Stand in layer does not support creating workloads");
+}
+
+StandInLayer* StandInLayer::Clone(Graph& graph) const
+{
+ return CloneBase<StandInLayer>(graph, m_Param, GetName());
+}
+
+std::vector<TensorShape> StandInLayer::InferOutputShapes(const std::vector<TensorShape>& inputShapes) const
+{
+ throw Exception("Stand in layer does not support infering output shapes");
+}
+
+void StandInLayer::ValidateTensorShapesFromInputs()
+{
+ // Cannot validate this layer since no implementation details can be known by the framework
+ // so do nothing here.
+}
+
+void StandInLayer::Accept(ILayerVisitor& visitor) const
+{
+ visitor.VisitStandInLayer(this, GetParameters(), GetName());
+}
+} //namespace armnn
+
+