aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/layers/UnmapLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/layers/UnmapLayer.cpp')
-rw-r--r--src/armnn/layers/UnmapLayer.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/armnn/layers/UnmapLayer.cpp b/src/armnn/layers/UnmapLayer.cpp
new file mode 100644
index 0000000000..d2df9c1bc6
--- /dev/null
+++ b/src/armnn/layers/UnmapLayer.cpp
@@ -0,0 +1,49 @@
+//
+// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#include "UnmapLayer.hpp"
+
+#include "LayerCloneBase.hpp"
+
+#include <armnn/TypesUtils.hpp>
+#include <backendsCommon/WorkloadData.hpp>
+#include <backendsCommon/WorkloadFactory.hpp>
+#include <backendsCommon/UnmapWorkload.hpp>
+
+namespace armnn
+{
+
+UnmapLayer::UnmapLayer(const char* name)
+ : Layer(1, 0, LayerType::Unmap, name)
+{
+}
+
+UnmapLayer* UnmapLayer::Clone(Graph& graph) const
+{
+ return CloneBase<UnmapLayer>(graph, GetName());
+}
+
+std::unique_ptr<IWorkload> UnmapLayer::CreateWorkload(const IWorkloadFactory& factory) const
+{
+ IgnoreUnused(factory);
+ UnmapQueueDescriptor descriptor;
+
+ //This is different from other workloads. Does not get created by the workload factory.
+ return std::make_unique<UnmapWorkload>(descriptor, PrepInfoAndDesc(descriptor));
+}
+
+void UnmapLayer::ValidateTensorShapesFromInputs()
+{
+ // validates that the input is connected.
+ VerifyLayerConnections(1, CHECK_LOCATION());
+ ARMNN_ASSERT(GetNumOutputSlots() == 0);
+}
+
+void UnmapLayer::Accept(ILayerVisitor& visitor) const
+{
+ IgnoreUnused(visitor);
+ throw armnn::Exception("UnmapLayer should not appear in an input graph");
+}
+
+} // namespace armnn