ArmNN
 21.02
LayerVisitorBase.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. 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 FillDescriptor&,
106  const char*) override { DefaultPolicy::Apply(__func__); }
107 
109  const char*) override { DefaultPolicy::Apply(__func__); }
110 
113  const ConstTensor&,
114  const Optional<ConstTensor>&,
115  const char*) override { DefaultPolicy::Apply(__func__); }
116 
117  ARMNN_DEPRECATED_MSG("Use VisitGatherLayer with descriptor instead")
118  void VisitGatherLayer(const IConnectableLayer*,
119  const char*) override { DefaultPolicy::Apply(__func__); }
120 
122  const GatherDescriptor&,
123  const char*) override { DefaultPolicy::Apply(__func__); }
124 
126  const char*) override { DefaultPolicy::Apply(__func__); }
127 
130  const char*) override { DefaultPolicy::Apply(__func__); }
131 
134  const char*) override { DefaultPolicy::Apply(__func__); }
135 
138  const char*) override { DefaultPolicy::Apply(__func__); }
139 
141  const LogSoftmaxDescriptor&,
142  const char*) override { DefaultPolicy::Apply(__func__); }
143 
146  const char*) override {DefaultPolicy::Apply(__func__); }
147 
149  const LstmDescriptor&,
150  const LstmInputParams&,
151  const char*) override { DefaultPolicy::Apply(__func__); }
152 
154  const char*) override { DefaultPolicy::Apply(__func__); }
155 
157  const MeanDescriptor&,
158  const char*) override { DefaultPolicy::Apply(__func__); }
159 
161  const char*) override { DefaultPolicy::Apply(__func__); }
162 
164  const MergerDescriptor&,
165  const char*) override { DefaultPolicy::Apply(__func__); }
166 
168  const char*) override { DefaultPolicy::Apply(__func__); }
169 
171  const char*) override { DefaultPolicy::Apply(__func__); }
172 
175  const char*) override { DefaultPolicy::Apply(__func__); }
176 
179  const char*) override { DefaultPolicy::Apply(__func__); }
180 
182  const PadDescriptor&,
183  const char*) override { DefaultPolicy::Apply(__func__); }
184 
186  const PermuteDescriptor&,
187  const char*) override { DefaultPolicy::Apply(__func__); }
188 
190  const Pooling2dDescriptor&,
191  const char*) override { DefaultPolicy::Apply(__func__); }
192 
194  const char*) override { DefaultPolicy::Apply(__func__); }
195 
197  const char*) override { DefaultPolicy::Apply(__func__); }
198 
200  const QLstmDescriptor&,
201  const LstmInputParams&,
202  const char*) override { DefaultPolicy::Apply(__func__); }
203 
206  const char*) override { DefaultPolicy::Apply(__func__); }
207 
209  const char*) override { DefaultPolicy::Apply(__func__); }
210 
212  const ReduceDescriptor&,
213  const char*) override { DefaultPolicy::Apply(__func__); }
214 
216  const ReshapeDescriptor&,
217  const char*) override { DefaultPolicy::Apply(__func__); }
218 
221  const char*) override { DefaultPolicy::Apply(__func__); }
222 
224  const ResizeDescriptor&,
225  const char*) override { DefaultPolicy::Apply(__func__); }
226 
228  const char*) override { DefaultPolicy::Apply(__func__); }
229 
231  const SliceDescriptor&,
232  const char*) override { DefaultPolicy::Apply(__func__); }
233 
235  const SoftmaxDescriptor&,
236  const char*) override { DefaultPolicy::Apply(__func__); }
237 
240  const char*) override { DefaultPolicy::Apply(__func__); }
241 
243  const SpaceToDepthDescriptor&,
244  const char*) override { DefaultPolicy::Apply(__func__); }
245 
247  const ViewsDescriptor&,
248  const char*) override { DefaultPolicy::Apply(__func__); }
249 
251  const StackDescriptor&,
252  const char*) override { DefaultPolicy::Apply(__func__); }
253 
255  const StandInDescriptor&,
256  const char*) override { DefaultPolicy::Apply(__func__); }
257 
259  const StridedSliceDescriptor&,
260  const char*) override { DefaultPolicy::Apply(__func__); }
261 
263  const char*) override { DefaultPolicy::Apply(__func__); }
264 
266  const char*) override { DefaultPolicy::Apply(__func__); }
267 
270  const ConstTensor&,
271  const Optional<ConstTensor>&,
272  const char*) override { DefaultPolicy::Apply(__func__); }
273 
275  const TransposeDescriptor&,
276  const char*) override { DefaultPolicy::Apply(__func__); }
277 
278 };
279 
280 } // namespace armnn
void VisitL2NormalizationLayer(const IConnectableLayer *, const L2NormalizationDescriptor &, const char *) override
Function that an L2 normalization layer should call back to when its Accept(ILayerVisitor&) function ...
void VisitPooling2dLayer(const IConnectableLayer *, const Pooling2dDescriptor &, const char *) override
Function that a pooling layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitMergeLayer(const IConnectableLayer *, const char *) override
Function that a merge layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A ViewsDescriptor for the SplitterLayer.
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:62
void VisitLogicalBinaryLayer(const IConnectableLayer *, const LogicalBinaryDescriptor &, const char *) override
Function that a logical binary layer should call back to when its Accept(ILayerVisitor&) function is ...
static void Apply(const std::string &errorMessage="")
void VisitInputLayer(const IConnectableLayer *, LayerBindingId, const char *) override
Function that an InputLayer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitPermuteLayer(const IConnectableLayer *, const PermuteDescriptor &, const char *) override
Function that a permute layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitStridedSliceLayer(const IConnectableLayer *, const StridedSliceDescriptor &, const char *) override
Function a strided slice layer should call back to when its Accept(ILayerVisitor&) function is invoke...
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
void VisitTransposeConvolution2dLayer(const IConnectableLayer *, const TransposeConvolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
Function that a 2D transpose convolution layer should call back to when its Accept(ILayerVisitor&) fu...
void VisitPreluLayer(const IConnectableLayer *, const char *) override
Function that a PReLU activation layer should call back to when its Accept(ILayerVisitor&) function i...
void VisitInstanceNormalizationLayer(const IConnectableLayer *, const InstanceNormalizationDescriptor &, const char *) override
Function that an instance normalization layer should call back to when its Accept(ILayerVisitor&) fun...
A ReshapeDescriptor for the ReshapeLayer.
void VisitDepthwiseConvolution2dLayer(const IConnectableLayer *, const DepthwiseConvolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
Function that a 2D depthwise convolution layer with biases should call back to when its Accept(ILayer...
void VisitSpaceToDepthLayer(const IConnectableLayer *, const SpaceToDepthDescriptor &, const char *) override
Function a space to depth layer should call back to when its Accept(ILayerVisitor&) function is invok...
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:78
void VisitSplitterLayer(const IConnectableLayer *, const ViewsDescriptor &, const char *) override
Function that a splitter layer should call back to when its Accept(ILayerVisitor&) function is invoke...
A Convolution2dDescriptor for the Convolution2dLayer.
void VisitDequantizeLayer(const IConnectableLayer *, const char *) override
Function that a Dequantize layer should call back to when its Accept(ILayerVisitor&) function is invo...
void VisitResizeLayer(const IConnectableLayer *, const ResizeDescriptor &, const char *) override
Function that a resize layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitConcatLayer(const IConnectableLayer *, const ConcatDescriptor &, const char *) override
Function that a concat layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitDepthToSpaceLayer(const IConnectableLayer *, const DepthToSpaceDescriptor &, const char *) override
Function a depth to space layer should call back to when its Accept(ILayerVisitor&) function is invok...
void VisitAbsLayer(const IConnectableLayer *, const char *) override
Function an absolute layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitQuantizedLstmLayer(const IConnectableLayer *, const QuantizedLstmInputParams &, const char *) override
Function a QuantizedLstm layer should call back to when its Accept(ILayerVisitor&) function is invoke...
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
void VisitArgMinMaxLayer(const IConnectableLayer *, const ArgMinMaxDescriptor &, const char *) override
Function that an arg min max layer should call back to when its Accept(ILayerVisitor&) function is in...
Copyright (c) 2021 ARM Limited and Contributors.
void VisitFullyConnectedLayer(const IConnectableLayer *, const FullyConnectedDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) function is...
void VisitConvolution2dLayer(const IConnectableLayer *, const Convolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override
Function that a 2D convolution layer should call back to when its Accept(ILayerVisitor&) function is ...
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
void VisitQuantizeLayer(const IConnectableLayer *, const char *) override
Function a quantize layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
void VisitEqualLayer(const IConnectableLayer *, const char *) override
Function an Equal layer should call back to when its Accept(ILayerVisitor&) function is invoked...
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
Definition: Types.hpp:210
void VisitPadLayer(const IConnectableLayer *, const PadDescriptor &, const char *) override
Function a pad layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitBatchNormalizationLayer(const IConnectableLayer *, const BatchNormalizationDescriptor &, const ConstTensor &, const ConstTensor &, const ConstTensor &, const ConstTensor &, const char *) override
Function that a batch normalization layer should call back to when its Accept(ILayerVisitor&) functio...
A ResizeDescriptor for the ResizeLayer.
A StackDescriptor for the StackLayer.
A PadDescriptor for the PadLayer.
static void Apply(const std::string &)
void VisitBatchToSpaceNdLayer(const IConnectableLayer *, const BatchToSpaceNdDescriptor &, const char *) override
Function that a batch to space ND layer should call back to when its Accept(ILayerVisitor&) function ...
An LstmDescriptor for the LstmLayer.
void VisitFillLayer(const IConnectableLayer *, const FillDescriptor &, const char *) override
Function a fill layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitQLstmLayer(const IConnectableLayer *, const QLstmDescriptor &, const LstmInputParams &, const char *) override
Function a QLstm layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A L2NormalizationDescriptor for the L2NormalizationLayer.
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:56
An OriginsDescriptor for the ConcatLayer.
A ReduceDescriptor for the REDUCE operators.
A FullyConnectedDescriptor for the FullyConnectedLayer.
void VisitMultiplicationLayer(const IConnectableLayer *, const char *) override
Function that a multiplication layer should call back to when its Accept(ILayerVisitor&) function is ...
void VisitTransposeLayer(const IConnectableLayer *, const TransposeDescriptor &, const char *) override
Function that a transpose layer should call back to when its Accept(ILayerVisitor&) function is invok...
void VisitConstantLayer(const IConnectableLayer *, const ConstTensor &, const char *) override
Function a layer with no inputs and a single output, which always corresponds to the passed in consta...
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
Definition: Tensor.hpp:314
void VisitStackLayer(const IConnectableLayer *, const StackDescriptor &, const char *) override
Function a stack layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitSubtractionLayer(const IConnectableLayer *, const char *) override
Function a subtraction layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A GatherDescriptor for the GatherLayer.
A StandInDescriptor for the StandIn layer.
A QLstmDescriptor for the QLstmLayer.
void VisitLogSoftmaxLayer(const IConnectableLayer *, const LogSoftmaxDescriptor &, const char *) override
Function that a log softmax layer should call back to when its Accept(ILayerVisitor&) function is inv...
void VisitLstmLayer(const IConnectableLayer *, const LstmDescriptor &, const LstmInputParams &, const char *) override
Function an Lstm layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitRsqrtLayer(const IConnectableLayer *, const char *) override
Function a Reciprocal of square root layer should call back to when its Accept(ILayerVisitor&) functi...
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:25
A SliceDescriptor for the SliceLayer.
Visitor base class with empty implementations.
void VisitDivisionLayer(const IConnectableLayer *, const char *) override
Function a division layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitSliceLayer(const IConnectableLayer *, const SliceDescriptor &, const char *) override
Function that a slice layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitStandInLayer(const IConnectableLayer *, const StandInDescriptor &, const char *) override
Function a StandInLayer should call back to when its Accept(ILaterVisitor&) function is invoked...
void VisitDetectionPostProcessLayer(const IConnectableLayer *, const DetectionPostProcessDescriptor &, const ConstTensor &, const char *) override
Function that a Detection PostProcess layer should call back to when its Accept(ILayerVisitor&) funct...
void VisitMaximumLayer(const IConnectableLayer *, const char *) override
Function a Maximum layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitAdditionLayer(const IConnectableLayer *, const char *) override
Function that an addition layer should call back to when its Accept(ILayerVisitor&) function is invok...
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
void VisitMergerLayer(const IConnectableLayer *, const MergerDescriptor &, const char *) override
Function that a merger layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitSpaceToBatchNdLayer(const IConnectableLayer *, const SpaceToBatchNdDescriptor &, const char *) override
Function a space to batch layer should call back to when its Accept(ILayerVisitor&) function is invok...
void VisitMinimumLayer(const IConnectableLayer *, const char *) override
Function a Minimum layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:98
void VisitMeanLayer(const IConnectableLayer *, const MeanDescriptor &, const char *) override
Function a Mean layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitSwitchLayer(const IConnectableLayer *, const char *) override
Function a switch layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A MeanDescriptor for the MeanLayer.
void VisitOutputLayer(const IConnectableLayer *, LayerBindingId, const char *) override
Function an output layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitResizeBilinearLayer(const IConnectableLayer *, const ResizeBilinearDescriptor &, const char *) override
Function that a resize bilinear layer should call back to when its Accept(ILayerVisitor&) function is...
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
#define ARMNN_DEPRECATED_MSG(message)
Definition: Deprecated.hpp:43
void VisitNormalizationLayer(const IConnectableLayer *, const NormalizationDescriptor &, const char *) override
Function that a normalization layer should call back to when its Accept(ILayerVisitor&) function is i...
void VisitFloorLayer(const IConnectableLayer *, const char *) override
Function a floor layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitSoftmaxLayer(const IConnectableLayer *, const SoftmaxDescriptor &, const char *) override
Function that a softmax layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A Pooling2dDescriptor for the Pooling2dLayer.
void VisitGatherLayer(const IConnectableLayer *, const GatherDescriptor &, const char *) override
Function a Gather layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A NormalizationDescriptor for the NormalizationLayer.
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
void VisitGreaterLayer(const IConnectableLayer *, const char *) override
Function a Greater layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
A SoftmaxDescriptor for the SoftmaxLayer.
void VisitComparisonLayer(const IConnectableLayer *, const ComparisonDescriptor &, const char *) override
Function a Comparison layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitRankLayer(const IConnectableLayer *, const char *) override
Function a rank layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A FillDescriptor for the FillLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
void VisitElementwiseUnaryLayer(const IConnectableLayer *, const ElementwiseUnaryDescriptor &, const char *) override
Function a ElementwiseUnary layer should call back to when its Accept(ILayerVisitor&) function is inv...
A PermuteDescriptor for the PermuteLayer.
void VisitActivationLayer(const IConnectableLayer *, const ActivationDescriptor &, const char *) override
Function that an activation layer should call back to when its Accept(ILayerVisitor&) function is inv...
void VisitReshapeLayer(const IConnectableLayer *, const ReshapeDescriptor &, const char *) override
Function a reshape layer should call back to when its Accept(ILayerVisitor&) function is invoked...
void VisitReduceLayer(const IConnectableLayer *, const ReduceDescriptor &, const char *) override
Function that a reduce layer should call back to when its Accept(ILayerVisitor&) function is invoked...