xref: /aosp_15_r20/external/armnn/src/armnn/layers/OutputLayer.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #include "OutputLayer.hpp"
6 
7 #include "LayerCloneBase.hpp"
8 
9 #include <armnn/utility/IgnoreUnused.hpp>
10 #include <armnn/backends/WorkloadData.hpp>
11 #include <armnn/backends/WorkloadFactory.hpp>
12 
13 namespace armnn
14 {
15 
OutputLayer(LayerBindingId id,const char * name)16 OutputLayer::OutputLayer(LayerBindingId id, const char* name)
17     : BindableLayer(1, 0, LayerType::Output, name, id)
18 {
19 }
20 
CreateWorkload(const IWorkloadFactory & factory) const21 std::unique_ptr<IWorkload> OutputLayer::CreateWorkload(const IWorkloadFactory& factory) const
22 {
23     IgnoreUnused(factory);
24     return nullptr;
25 }
26 
Clone(Graph & graph) const27 OutputLayer* OutputLayer::Clone(Graph& graph) const
28 {
29     return CloneBase<OutputLayer>(graph, GetBindingId(), GetName());
30 }
31 
ValidateTensorShapesFromInputs()32 void OutputLayer::ValidateTensorShapesFromInputs()
33 {
34 
35     // Just validates that the input is connected.
36     ConditionalThrow<LayerValidationException>(GetInputSlot(0).GetConnection() != nullptr,
37                                                "OutputLayer: Input slot must be connected.");
38 }
39 
ExecuteStrategy(IStrategy & strategy) const40 void OutputLayer::ExecuteStrategy(IStrategy& strategy) const
41 {
42     strategy.ExecuteStrategy(this, GetParameters(), {}, GetName(), GetBindingId());
43 }
44 
45 } // namespace armnn
46