ArmNN  NotReleased
LayerVisitorBase.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 
10 namespace armnn
11 {
12 
14 {
15  static void Apply(const std::string& errorMessage = "") { throw UnimplementedException(errorMessage); }
16 };
17 
19 {
20  static void Apply(const std::string&) {}
21 };
22 
23 // Visitor base class with empty implementations.
24 template<typename DefaultPolicy>
26 {
27 protected:
29  virtual ~LayerVisitorBase() {}
30 
31 public:
33  const char*) override { DefaultPolicy::Apply(__func__); }
34 
36  const ActivationDescriptor&,
37  const char*) override { DefaultPolicy::Apply(__func__); }
38 
40  const char*) override { DefaultPolicy::Apply(__func__); }
41 
43  const ArgMinMaxDescriptor&,
44  const char*) override { DefaultPolicy::Apply(__func__); }
45 
48  const ConstTensor&,
49  const ConstTensor&,
50  const ConstTensor&,
51  const ConstTensor&,
52  const char*) override { DefaultPolicy::Apply(__func__); }
53 
56  const char*) override { DefaultPolicy::Apply(__func__); }
57 
59  const ComparisonDescriptor&,
60  const char*) override { DefaultPolicy::Apply(__func__); }
61 
63  const ConcatDescriptor&,
64  const char*) override { DefaultPolicy::Apply(__func__); }
65 
67  const ConstTensor&,
68  const char*) override { DefaultPolicy::Apply(__func__); }
69 
72  const ConstTensor&,
73  const Optional<ConstTensor>&,
74  const char*) override { DefaultPolicy::Apply(__func__); }
75 
78  const char*) override { DefaultPolicy::Apply(__func__); }
79 
82  const ConstTensor&,
83  const Optional<ConstTensor>&,
84  const char*) override { DefaultPolicy::Apply(__func__); }
85 
87  const char*) override { DefaultPolicy::Apply(__func__); }
88 
91  const ConstTensor&,
92  const char*) override { DefaultPolicy::Apply(__func__); }
93 
95  const char*) override { DefaultPolicy::Apply(__func__); }
96 
99  const char*) override { DefaultPolicy::Apply(__func__); }
100 
102  const char*) override { DefaultPolicy::Apply(__func__); }
103 
105  const char*) override { DefaultPolicy::Apply(__func__); }
106 
109  const ConstTensor&,
110  const Optional<ConstTensor>&,
111  const char*) override { DefaultPolicy::Apply(__func__); }
112 
114  const char*) override { DefaultPolicy::Apply(__func__); }
115 
117  const char*) override { DefaultPolicy::Apply(__func__); }
118 
121  const char*) override { DefaultPolicy::Apply(__func__); }
122 
125  const char*) override { DefaultPolicy::Apply(__func__); }
126 
129  const char*) override { DefaultPolicy::Apply(__func__); }
130 
132  const LogSoftmaxDescriptor&,
133  const char*) override { DefaultPolicy::Apply(__func__); }
134 
136  const LstmDescriptor&,
137  const LstmInputParams&,
138  const char*) override { DefaultPolicy::Apply(__func__); }
139 
141  const char*) override { DefaultPolicy::Apply(__func__); }
142 
144  const MeanDescriptor&,
145  const char*) override { DefaultPolicy::Apply(__func__); }
146 
148  const char*) override { DefaultPolicy::Apply(__func__); }
149 
151  const MergerDescriptor&,
152  const char*) override { DefaultPolicy::Apply(__func__); }
153 
155  const char*) override { DefaultPolicy::Apply(__func__); }
156 
158  const char*) override { DefaultPolicy::Apply(__func__); }
159 
162  const char*) override { DefaultPolicy::Apply(__func__); }
163 
166  const char*) override { DefaultPolicy::Apply(__func__); }
167 
169  const PadDescriptor&,
170  const char*) override { DefaultPolicy::Apply(__func__); }
171 
173  const PermuteDescriptor&,
174  const char*) override { DefaultPolicy::Apply(__func__); }
175 
177  const Pooling2dDescriptor&,
178  const char*) override { DefaultPolicy::Apply(__func__); }
179 
181  const char*) override { DefaultPolicy::Apply(__func__); }
182 
184  const char*) override { DefaultPolicy::Apply(__func__); }
185 
188  const char*) override { DefaultPolicy::Apply(__func__); }
189 
191  const ReshapeDescriptor&,
192  const char*) override { DefaultPolicy::Apply(__func__); }
193 
196  const char*) override { DefaultPolicy::Apply(__func__); }
197 
199  const ResizeDescriptor&,
200  const char*) override { DefaultPolicy::Apply(__func__); }
201 
203  const char*) override { DefaultPolicy::Apply(__func__); }
204 
206  const SliceDescriptor&,
207  const char*) override { DefaultPolicy::Apply(__func__); }
208 
210  const SoftmaxDescriptor&,
211  const char*) override { DefaultPolicy::Apply(__func__); }
212 
215  const char*) override { DefaultPolicy::Apply(__func__); }
216 
218  const SpaceToDepthDescriptor&,
219  const char*) override { DefaultPolicy::Apply(__func__); }
220 
222  const ViewsDescriptor&,
223  const char*) override { DefaultPolicy::Apply(__func__); }
224 
226  const StackDescriptor&,
227  const char*) override { DefaultPolicy::Apply(__func__); }
228 
230  const StandInDescriptor&,
231  const char*) override { DefaultPolicy::Apply(__func__); }
232 
234  const StridedSliceDescriptor&,
235  const char*) override { DefaultPolicy::Apply(__func__); }
236 
238  const char*) override { DefaultPolicy::Apply(__func__); }
239 
241  const char*) override { DefaultPolicy::Apply(__func__); }
242 
245  const ConstTensor&,
246  const Optional<ConstTensor>&,
247  const char*) override { DefaultPolicy::Apply(__func__); }
248 
249 };
250 
251 } // namespace armnn
void VisitInstanceNormalizationLayer(const IConnectableLayer *, const InstanceNormalizationDescriptor &, const char *) override
void VisitLogSoftmaxLayer(const IConnectableLayer *, const LogSoftmaxDescriptor &, const char *) override
void VisitElementwiseUnaryLayer(const IConnectableLayer *, const ElementwiseUnaryDescriptor &, const char *) override
void VisitSwitchLayer(const IConnectableLayer *, const char *) override
void VisitL2NormalizationLayer(const IConnectableLayer *, const L2NormalizationDescriptor &, const char *) override
void VisitRsqrtLayer(const IConnectableLayer *, const char *) override
void VisitOutputLayer(const IConnectableLayer *, LayerBindingId, const char *) override
void VisitInputLayer(const IConnectableLayer *, LayerBindingId, const char *) override
void VisitResizeLayer(const IConnectableLayer *, const ResizeDescriptor &, const char *) override
void VisitPreluLayer(const IConnectableLayer *, const char *) override
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
void VisitGreaterLayer(const IConnectableLayer *, const char *) override
A NormalizationDescriptor for the NormalizationLayer.
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
Definition: Tensor.hpp:199
void VisitMultiplicationLayer(const IConnectableLayer *, const char *) override
static void Apply(const std::string &)
void VisitStandInLayer(const IConnectableLayer *, const StandInDescriptor &, const char *) override
void VisitConvolution2dLayer(const IConnectableLayer *, const Convolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
void VisitMeanLayer(const IConnectableLayer *, const MeanDescriptor &, const char *) override
void VisitActivationLayer(const IConnectableLayer *, const ActivationDescriptor &, const char *) override
void VisitDequantizeLayer(const IConnectableLayer *, const char *) override
void VisitTransposeConvolution2dLayer(const IConnectableLayer *, const TransposeConvolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
A PadDescriptor for the PadLayer.
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:20
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
void VisitSplitterLayer(const IConnectableLayer *, const ViewsDescriptor &, const char *) override
void VisitDepthwiseConvolution2dLayer(const IConnectableLayer *, const DepthwiseConvolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
static void Apply(const std::string &errorMessage="")
void VisitAdditionLayer(const IConnectableLayer *, const char *) override
void VisitPooling2dLayer(const IConnectableLayer *, const Pooling2dDescriptor &, const char *) override
void VisitArgMinMaxLayer(const IConnectableLayer *, const ArgMinMaxDescriptor &, const char *) override
A L2NormalizationDescriptor for the L2NormalizationLayer.
void VisitLstmLayer(const IConnectableLayer *, const LstmDescriptor &, const LstmInputParams &, const char *) override
A ViewsDescriptor for the SplitterLayer. Descriptor to configure the splitting process. Number of Views must be equal to the number of outputs, and their order must match - e.g. first view corresponds to the first output, second view to the second output, etc.
void VisitReshapeLayer(const IConnectableLayer *, const ReshapeDescriptor &, const char *) override
void VisitEqualLayer(const IConnectableLayer *, const char *) override
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
void VisitAbsLayer(const IConnectableLayer *, const char *) override
A ReshapeDescriptor for the ReshapeLayer.
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
void VisitFullyConnectedLayer(const IConnectableLayer *, const FullyConnectedDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
void VisitGatherLayer(const IConnectableLayer *, const char *) override
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:82
void VisitStackLayer(const IConnectableLayer *, const StackDescriptor &, const char *) override
void VisitMaximumLayer(const IConnectableLayer *, const char *) override
void VisitStridedSliceLayer(const IConnectableLayer *, const StridedSliceDescriptor &, const char *) override
void VisitConcatLayer(const IConnectableLayer *, const ConcatDescriptor &, const char *) override
void VisitFloorLayer(const IConnectableLayer *, const char *) override
void VisitResizeBilinearLayer(const IConnectableLayer *, const ResizeBilinearDescriptor &, const char *) override
void VisitConstantLayer(const IConnectableLayer *, const ConstTensor &, const char *) override
An LstmDescriptor for the LstmLayer.
void VisitDetectionPostProcessLayer(const IConnectableLayer *, const DetectionPostProcessDescriptor &, const ConstTensor &, const char *) override
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
void VisitQuantizeLayer(const IConnectableLayer *, const char *) override
A FullyConnectedDescriptor for the FullyConnectedLayer.
void VisitSliceLayer(const IConnectableLayer *, const SliceDescriptor &, const char *) override
void VisitMergeLayer(const IConnectableLayer *, const char *) override
void VisitNormalizationLayer(const IConnectableLayer *, const NormalizationDescriptor &, const char *) override
void VisitComparisonLayer(const IConnectableLayer *, const ComparisonDescriptor &, const char *) override
void VisitSoftmaxLayer(const IConnectableLayer *, const SoftmaxDescriptor &, const char *) override
A StackDescriptor for the StackLayer.
void VisitDepthToSpaceLayer(const IConnectableLayer *, const DepthToSpaceDescriptor &, const char *) override
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
A SoftmaxDescriptor for the SoftmaxLayer.
void VisitBatchToSpaceNdLayer(const IConnectableLayer *, const BatchToSpaceNdDescriptor &, const char *) override
void VisitSpaceToDepthLayer(const IConnectableLayer *, const SpaceToDepthDescriptor &, const char *) override
void VisitDivisionLayer(const IConnectableLayer *, const char *) override
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:61
void VisitBatchNormalizationLayer(const IConnectableLayer *, const BatchNormalizationDescriptor &, const ConstTensor &, const ConstTensor &, const ConstTensor &, const ConstTensor &, const char *) override
void VisitPadLayer(const IConnectableLayer *, const PadDescriptor &, const char *) override
void VisitMergerLayer(const IConnectableLayer *, const MergerDescriptor &, const char *) override
void VisitSpaceToBatchNdLayer(const IConnectableLayer *, const SpaceToBatchNdDescriptor &, const char *) override
A Pooling2dDescriptor for the Pooling2dLayer.
void VisitSubtractionLayer(const IConnectableLayer *, const char *) override
A StandInDescriptor for the StandIn layer.
A SliceDescriptor for the SliceLayer.
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A PermuteDescriptor for the PermuteLayer.
A Convolution2dDescriptor for the Convolution2dLayer.
A MeanDescriptor for the MeanLayer.
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
void VisitMinimumLayer(const IConnectableLayer *, const char *) override
void VisitQuantizedLstmLayer(const IConnectableLayer *, const QuantizedLstmInputParams &, const char *) override
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:43
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
Definition: Types.hpp:168
A ResizeDescriptor for the ResizeLayer.
void VisitPermuteLayer(const IConnectableLayer *, const PermuteDescriptor &, const char *) override
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:62
An OriginsDescriptor for the ConcatLayer. Descriptor to configure the concatenation process...
A StridedSliceDescriptor for the StridedSliceLayer.