ArmNN
 20.08
Serializer.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 #pragma once
6 
9 
11 
12 #include <unordered_map>
13 
14 #include <ArmnnSchema_generated.h>
15 
16 #include <armnn/Types.hpp>
17 
18 namespace armnnSerializer
19 {
20 
22 {
23 public:
24  SerializerVisitor() : m_layerId(0) {}
26 
27  flatbuffers::FlatBufferBuilder& GetFlatBufferBuilder()
28  {
29  return m_flatBufferBuilder;
30  }
31 
32  std::vector<int>& GetInputIds()
33  {
34  return m_inputIds;
35  }
36 
37  std::vector<int>& GetOutputIds()
38  {
39  return m_outputIds;
40  }
41 
42  std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>>& GetSerializedLayers()
43  {
44  return m_serializedLayers;
45  }
46 
47  flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> GetVersionTable();
48 
49 
50  ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead")
51  void VisitAbsLayer(const armnn::IConnectableLayer* layer,
52  const char* name = nullptr) override;
53 
55  const armnn::ActivationDescriptor& descriptor,
56  const char* name = nullptr) override;
57 
59  const char* name = nullptr) override;
60 
62  const armnn::ArgMinMaxDescriptor& argMinMaxDescriptor,
63  const char* name = nullptr) override;
64 
66  const armnn::BatchToSpaceNdDescriptor& descriptor,
67  const char* name = nullptr) override;
68 
70  const armnn::BatchNormalizationDescriptor& BatchNormalizationDescriptor,
71  const armnn::ConstTensor& mean,
72  const armnn::ConstTensor& variance,
73  const armnn::ConstTensor& beta,
74  const armnn::ConstTensor& gamma,
75  const char* name = nullptr) override;
76 
78  const armnn::ComparisonDescriptor& descriptor,
79  const char* name = nullptr) override;
80 
82  const armnn::ConcatDescriptor& concatDescriptor,
83  const char* name = nullptr) override;
84 
86  const armnn::ConstTensor& input,
87  const char* = nullptr) override;
88 
90  const armnn::Convolution2dDescriptor& descriptor,
91  const armnn::ConstTensor& weights,
93  const char* = nullptr) override;
94 
96  const armnn::DepthToSpaceDescriptor& descriptor,
97  const char* name = nullptr) override;
98 
100  const armnn::DepthwiseConvolution2dDescriptor& descriptor,
101  const armnn::ConstTensor& weights,
103  const char* name = nullptr) override;
104 
106  const char* name = nullptr) override;
107 
109  const armnn::DetectionPostProcessDescriptor& descriptor,
111  const char* name = nullptr) override;
112 
114  const char* name = nullptr) override;
115 
117  const armnn::ElementwiseUnaryDescriptor& descriptor,
118  const char* name = nullptr) override;
119 
120  ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead")
121  void VisitEqualLayer(const armnn::IConnectableLayer* layer,
122  const char* name = nullptr) override;
123 
124  void VisitFillLayer(const armnn::IConnectableLayer* layer,
125  const armnn::FillDescriptor& fillDescriptor,
126  const char* name = nullptr) override;
127 
128  void VisitFloorLayer(const armnn::IConnectableLayer *layer,
129  const char *name = nullptr) override;
130 
132  const armnn::FullyConnectedDescriptor& fullyConnectedDescriptor,
133  const armnn::ConstTensor& weights,
135  const char* name = nullptr) override;
136 
137  ARMNN_DEPRECATED_MSG("Use VisitGatherLayer with descriptor instead")
138  void VisitGatherLayer(const armnn::IConnectableLayer* layer,
139  const char* name = nullptr) override;
140 
141  void VisitGatherLayer(const armnn::IConnectableLayer* layer,
142  const armnn::GatherDescriptor& gatherDescriptor,
143  const char* name = nullptr) override;
144 
145  ARMNN_DEPRECATED_MSG("Use VisitComparisonLayer instead")
147  const char* name = nullptr) override;
148 
149  void VisitInputLayer(const armnn::IConnectableLayer* layer,
151  const char* name = nullptr) override;
152 
154  const armnn::InstanceNormalizationDescriptor& instanceNormalizationDescriptor,
155  const char* name = nullptr) override;
156 
158  const armnn::L2NormalizationDescriptor& l2NormalizationDescriptor,
159  const char* name = nullptr) override;
160 
162  const armnn::LogSoftmaxDescriptor& logSoftmaxDescriptor,
163  const char* name = nullptr) override;
164 
165  void VisitLstmLayer(const armnn::IConnectableLayer* layer,
166  const armnn::LstmDescriptor& descriptor,
167  const armnn::LstmInputParams& params,
168  const char* name = nullptr) override;
169 
170  void VisitMeanLayer(const armnn::IConnectableLayer* layer,
171  const armnn::MeanDescriptor& descriptor,
172  const char* name) override;
173 
175  const char* name = nullptr) override;
176 
178  const char* name = nullptr) override;
179 
180  void VisitMergeLayer(const armnn::IConnectableLayer* layer,
181  const char* name = nullptr) override;
182 
183  ARMNN_DEPRECATED_MSG("Use VisitConcatLayer instead")
184  void VisitMergerLayer(const armnn::IConnectableLayer* layer,
185  const armnn::MergerDescriptor& mergerDescriptor,
186  const char* name = nullptr) override;
187 
189  const char* name = nullptr) override;
190 
191  void VisitOutputLayer(const armnn::IConnectableLayer* layer,
193  const char* name = nullptr) override;
194 
195  void VisitPadLayer(const armnn::IConnectableLayer* layer,
196  const armnn::PadDescriptor& PadDescriptor,
197  const char* name = nullptr) override;
198 
200  const armnn::PermuteDescriptor& PermuteDescriptor,
201  const char* name = nullptr) override;
202 
204  const armnn::Pooling2dDescriptor& pooling2dDescriptor,
205  const char* name = nullptr) override;
206 
207  void VisitPreluLayer(const armnn::IConnectableLayer* layer,
208  const char* name = nullptr) override;
209 
211  const char* name = nullptr) override;
212 
213  void VisitQLstmLayer(const armnn::IConnectableLayer* layer,
214  const armnn::QLstmDescriptor& descriptor,
215  const armnn::LstmInputParams& params,
216  const char* name = nullptr) override;
217 
219  const armnn::QuantizedLstmInputParams& params,
220  const char* name = nullptr) override;
221 
222  void VisitRankLayer(const armnn::IConnectableLayer* layer,
223  const char* name = nullptr) override;
224 
226  const armnn::ReshapeDescriptor& reshapeDescriptor,
227  const char* name = nullptr) override;
228 
229  void VisitResizeLayer(const armnn::IConnectableLayer* layer,
230  const armnn::ResizeDescriptor& resizeDescriptor,
231  const char* name = nullptr) override;
232 
233  ARMNN_DEPRECATED_MSG("Use VisitResizeLayer instead")
235  const armnn::ResizeBilinearDescriptor& resizeDescriptor,
236  const char* name = nullptr) override;
237 
238  ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead")
239  void VisitRsqrtLayer(const armnn::IConnectableLayer* layer,
240  const char* name = nullptr) override;
241 
242  void VisitSliceLayer(const armnn::IConnectableLayer* layer,
243  const armnn::SliceDescriptor& sliceDescriptor,
244  const char* name = nullptr) override;
245 
247  const armnn::SoftmaxDescriptor& softmaxDescriptor,
248  const char* name = nullptr) override;
249 
251  const armnn::SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor,
252  const char* name = nullptr) override;
253 
255  const armnn::SpaceToDepthDescriptor& spaceToDepthDescriptor,
256  const char* name = nullptr) override;
257 
259  const armnn::NormalizationDescriptor& normalizationDescriptor,
260  const char* name = nullptr) override;
261 
263  const armnn::ViewsDescriptor& viewsDescriptor,
264  const char* name = nullptr) override;
265 
267  const armnn::StandInDescriptor& standInDescriptor,
268  const char* name = nullptr) override;
269 
270  void VisitStackLayer(const armnn::IConnectableLayer* layer,
271  const armnn::StackDescriptor& stackDescriptor,
272  const char* name = nullptr) override;
273 
275  const armnn::StridedSliceDescriptor& stridedSliceDescriptor,
276  const char* name = nullptr) override;
277 
279  const char* name = nullptr) override;
280 
281  void VisitSwitchLayer(const armnn::IConnectableLayer* layer,
282  const char* name = nullptr) override;
283 
285  const armnn::TransposeConvolution2dDescriptor& descriptor,
286  const armnn::ConstTensor& weights,
288  const char* = nullptr) override;
289 
291  const armnn::TransposeDescriptor& descriptor,
292  const char* name = nullptr) override;
293 
294 private:
295 
296  /// Creates the Input Slots and Output Slots and LayerBase for the layer.
297  flatbuffers::Offset<armnnSerializer::LayerBase> CreateLayerBase(
298  const armnn::IConnectableLayer* layer,
299  const armnnSerializer::LayerType layerType);
300 
301  /// Creates the serializer AnyLayer for the layer and adds it to m_serializedLayers.
302  void CreateAnyLayer(const flatbuffers::Offset<void>& layer, const armnnSerializer::Layer serializerLayer);
303 
304  /// Creates the serializer ConstTensor for the armnn ConstTensor.
305  flatbuffers::Offset<armnnSerializer::ConstTensor> CreateConstTensorInfo(
306  const armnn::ConstTensor& constTensor);
307 
308  /// Creates the serializer TensorInfo for the armnn TensorInfo.
309  flatbuffers::Offset<TensorInfo> CreateTensorInfo(const armnn::TensorInfo& tensorInfo);
310 
311  template <typename T>
312  flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(const void* memory, unsigned int size);
313 
314  ///Function which maps Guid to an index
315  uint32_t GetSerializedId(armnn::LayerGuid guid);
316 
317  /// Creates the serializer InputSlots for the layer.
318  std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> CreateInputSlots(
319  const armnn::IConnectableLayer* layer);
320 
321  /// Creates the serializer OutputSlots for the layer.
322  std::vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> CreateOutputSlots(
323  const armnn::IConnectableLayer* layer);
324 
325  /// FlatBufferBuilder to create our layers' FlatBuffers.
326  flatbuffers::FlatBufferBuilder m_flatBufferBuilder;
327 
328  /// AnyLayers required by the SerializedGraph.
329  std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> m_serializedLayers;
330 
331  /// Vector of the binding ids of all Input Layers required by the SerializedGraph.
332  std::vector<int> m_inputIds;
333 
334  /// Vector of the binding ids of all Output Layers required by the SerializedGraph.
335  std::vector<int> m_outputIds;
336 
337  /// Mapped Guids of all Layers to match our index.
338  std::unordered_map<armnn::LayerGuid, uint32_t > m_guidMap;
339 
340  /// layer within our FlatBuffer index.
341  uint32_t m_layerId;
342 };
343 
344 class Serializer : public ISerializer
345 {
346 public:
349 
350  /// Serializes the network to ArmNN SerializedGraph.
351  /// @param [in] inNetwork The network to be serialized.
352  void Serialize(const armnn::INetwork& inNetwork) override;
353 
354  /// Serializes the SerializedGraph to the stream.
355  /// @param [stream] the stream to save to
356  /// @return true if graph is Serialized to the Stream, false otherwise
357  bool SaveSerializedToStream(std::ostream& stream) override;
358 
359 private:
360 
361  /// Visitor to contruct serialized network
362  SerializerVisitor m_SerializerVisitor;
363 };
364 
365 } //namespace armnnSerializer
void VisitConcatLayer(const armnn::IConnectableLayer *layer, const armnn::ConcatDescriptor &concatDescriptor, const char *name=nullptr) override
Function that a concat layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:754
void VisitInputLayer(const armnn::IConnectableLayer *layer, armnn::LayerBindingId id, const char *name=nullptr) override
Function that an InputLayer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:86
A ViewsDescriptor for the SplitterLayer.
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:61
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
void VisitOutputLayer(const armnn::IConnectableLayer *layer, armnn::LayerBindingId id, const char *name=nullptr) override
Function an output layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:108
void VisitArgMinMaxLayer(const armnn::IConnectableLayer *layer, const armnn::ArgMinMaxDescriptor &argMinMaxDescriptor, const char *name=nullptr) override
Function that an arg min max layer should call back to when its Accept(ILayerVisitor&) function is in...
Definition: Serializer.cpp:178
A ReshapeDescriptor for the ReshapeLayer.
void VisitNormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr) override
Function that a normalization layer should call back to when its Accept(ILayerVisitor&) function is i...
void VisitSpaceToBatchNdLayer(const armnn::IConnectableLayer *layer, const armnn::SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr) override
Function a space to batch layer should call back to when its Accept(ILayerVisitor&) function is invok...
void VisitDepthwiseConvolution2dLayer(const armnn::IConnectableLayer *layer, const armnn::DepthwiseConvolution2dDescriptor &descriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *name=nullptr) override
Function that a 2D depthwise convolution layer with biases should call back to when its Accept(ILayer...
Definition: Serializer.cpp:356
std::vector< int > & GetOutputIds()
Definition: Serializer.hpp:37
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:70
void VisitAdditionLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function that an addition layer should call back to when its Accept(ILayerVisitor&) function is invok...
Definition: Serializer.cpp:163
A Convolution2dDescriptor for the Convolution2dLayer.
void VisitActivationLayer(const armnn::IConnectableLayer *layer, const armnn::ActivationDescriptor &descriptor, const char *name=nullptr) override
Function that an activation layer should call back to when its Accept(ILayerVisitor&) function is inv...
Definition: Serializer.cpp:138
flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > GetVersionTable()
void VisitGreaterLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a Greater layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:516
void VisitPreluLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function that a PReLU activation layer should call back to when its Accept(ILayerVisitor&) function i...
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder()
Definition: Serializer.hpp:27
Main network class which provides the interface for building up a neural network. ...
Definition: INetwork.hpp:105
void VisitStridedSliceLayer(const armnn::IConnectableLayer *layer, const armnn::StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr) override
Function a strided slice layer should call back to when its Accept(ILayerVisitor&) function is invoke...
std::vector< int > & GetInputIds()
Definition: Serializer.hpp:32
void VisitPermuteLayer(const armnn::IConnectableLayer *layer, const armnn::PermuteDescriptor &PermuteDescriptor, const char *name=nullptr) override
Function that a permute layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:826
void VisitResizeBilinearLayer(const armnn::IConnectableLayer *layer, const armnn::ResizeBilinearDescriptor &resizeDescriptor, const char *name=nullptr) override
Function that a resize bilinear layer should call back to when its Accept(ILayerVisitor&) function is...
Definition: Serializer.cpp:890
void VisitSliceLayer(const armnn::IConnectableLayer *layer, const armnn::SliceDescriptor &sliceDescriptor, const char *name=nullptr) override
Function that a slice layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:947
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
void VisitMinimumLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a Minimum layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:727
void VisitQuantizeLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a quantize 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:194
void VisitResizeLayer(const armnn::IConnectableLayer *layer, const armnn::ResizeDescriptor &resizeDescriptor, const char *name=nullptr) override
Function that a resize layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:913
void VisitPadLayer(const armnn::IConnectableLayer *layer, const armnn::PadDescriptor &PadDescriptor, const char *name=nullptr) override
Function a pad layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:800
void VisitMultiplicationLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function that a multiplication layer should call back to when its Accept(ILayerVisitor&) function is ...
Definition: Serializer.cpp:789
A ResizeDescriptor for the ResizeLayer.
void VisitSwitchLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a switch layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A StackDescriptor for the StackLayer.
void VisitLstmLayer(const armnn::IConnectableLayer *layer, const armnn::LstmDescriptor &descriptor, const armnn::LstmInputParams &params, const char *name=nullptr) override
Function an Lstm layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:591
void VisitBatchToSpaceNdLayer(const armnn::IConnectableLayer *layer, const armnn::BatchToSpaceNdDescriptor &descriptor, const char *name=nullptr) override
Function that a batch to space ND layer should call back to when its Accept(ILayerVisitor&) function ...
Definition: Serializer.cpp:201
void VisitDequantizeLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function that a Dequantize layer should call back to when its Accept(ILayerVisitor&) function is invo...
Definition: Serializer.cpp:393
A PadDescriptor for the PadLayer.
void VisitMergerLayer(const armnn::IConnectableLayer *layer, const armnn::MergerDescriptor &mergerDescriptor, const char *name=nullptr) override
Function that a merger layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:747
void VisitMergeLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function that a merge layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:737
An LstmDescriptor for the LstmLayer.
A L2NormalizationDescriptor for the L2NormalizationLayer.
void VisitFloorLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a floor layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:485
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:51
void VisitFullyConnectedLayer(const armnn::IConnectableLayer *layer, const armnn::FullyConnectedDescriptor &fullyConnectedDescriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *name=nullptr) override
Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) function is...
An OriginsDescriptor for the ConcatLayer.
void VisitStackLayer(const armnn::IConnectableLayer *layer, const armnn::StackDescriptor &stackDescriptor, const char *name=nullptr) override
Function a stack layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A FullyConnectedDescriptor for the FullyConnectedLayer.
void VisitDepthToSpaceLayer(const armnn::IConnectableLayer *layer, const armnn::DepthToSpaceDescriptor &descriptor, const char *name=nullptr) override
Function a depth to space layer should call back to when its Accept(ILayerVisitor&) function is invok...
Definition: Serializer.cpp:340
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
Definition: Tensor.hpp:298
void VisitGatherLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a Gather layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:495
A GatherDescriptor for the GatherLayer.
void VisitBatchNormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::BatchNormalizationDescriptor &BatchNormalizationDescriptor, const armnn::ConstTensor &mean, const armnn::ConstTensor &variance, const armnn::ConstTensor &beta, const armnn::ConstTensor &gamma, const char *name=nullptr) override
Function that a batch normalization layer should call back to when its Accept(ILayerVisitor&) functio...
Definition: Serializer.cpp:231
void VisitSpaceToDepthLayer(const armnn::IConnectableLayer *layer, const armnn::SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr) override
Function a space to depth layer should call back to when its Accept(ILayerVisitor&) function is invok...
void VisitDetectionPostProcessLayer(const armnn::IConnectableLayer *layer, const armnn::DetectionPostProcessDescriptor &descriptor, const armnn::ConstTensor &anchors, const char *name=nullptr) override
Function that a Detection PostProcess layer should call back to when its Accept(ILayerVisitor&) funct...
Definition: Serializer.cpp:404
void VisitSubtractionLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a subtraction layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A StandInDescriptor for the StandIn layer.
A QLstmDescriptor for the QLstmLayer.
void VisitElementwiseUnaryLayer(const armnn::IConnectableLayer *layer, const armnn::ElementwiseUnaryDescriptor &descriptor, const char *name=nullptr) override
Function a ElementwiseUnary layer should call back to when its Accept(ILayerVisitor&) function is inv...
Definition: Serializer.cpp:445
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:20
void VisitTransposeConvolution2dLayer(const armnn::IConnectableLayer *layer, const armnn::TransposeConvolution2dDescriptor &descriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *=nullptr) override
Function that a 2D transpose convolution layer should call back to when its Accept(ILayerVisitor&) fu...
void VisitEqualLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function an Equal layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:460
A SliceDescriptor for the SliceLayer.
void VisitTransposeLayer(const armnn::IConnectableLayer *layer, const armnn::TransposeDescriptor &descriptor, const char *name=nullptr) override
Function that a transpose layer should call back to when its Accept(ILayerVisitor&) function is invok...
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
std::vector< flatbuffers::Offset< armnnSerializer::AnyLayer > > & GetSerializedLayers()
Definition: Serializer.hpp:42
void VisitL2NormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::L2NormalizationDescriptor &l2NormalizationDescriptor, const char *name=nullptr) override
Function that an L2 normalization layer should call back to when its Accept(ILayerVisitor&) function ...
Definition: Serializer.cpp:546
void VisitPooling2dLayer(const armnn::IConnectableLayer *layer, const armnn::Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr) override
Function that a pooling layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:986
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:90
void VisitSoftmaxLayer(const armnn::IConnectableLayer *layer, const armnn::SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr) override
Function that a softmax layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:964
void VisitQuantizedLstmLayer(const armnn::IConnectableLayer *layer, const armnn::QuantizedLstmInputParams &params, const char *name=nullptr) override
Function a QuantizedLstm layer should call back to when its Accept(ILayerVisitor&) function is invoke...
A MeanDescriptor for the MeanLayer.
void VisitMeanLayer(const armnn::IConnectableLayer *layer, const armnn::MeanDescriptor &descriptor, const char *name) override
Function a Mean layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:709
void VisitDivisionLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a division layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:435
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
void VisitSplitterLayer(const armnn::IConnectableLayer *layer, const armnn::ViewsDescriptor &viewsDescriptor, const char *name=nullptr) override
Function that a splitter layer should call back to when its Accept(ILayerVisitor&) function is invoke...
#define ARMNN_DEPRECATED_MSG(message)
Definition: Deprecated.hpp:43
void VisitQLstmLayer(const armnn::IConnectableLayer *layer, const armnn::QLstmDescriptor &descriptor, const armnn::LstmInputParams &params, const char *name=nullptr) override
Function a QLstm layer should call back to when its Accept(ILayerVisitor&) function is invoked...
A Pooling2dDescriptor for the Pooling2dLayer.
A NormalizationDescriptor for the NormalizationLayer.
void VisitConvolution2dLayer(const armnn::IConnectableLayer *layer, const armnn::Convolution2dDescriptor &descriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *=nullptr) override
Function that a 2D convolution layer should call back to when its Accept(ILayerVisitor&) function is ...
Definition: Serializer.cpp:299
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
void VisitConstantLayer(const armnn::IConnectableLayer *layer, const armnn::ConstTensor &input, const char *=nullptr) override
Function a layer with no inputs and a single output, which always corresponds to the passed in consta...
Definition: Serializer.cpp:278
void VisitReshapeLayer(const armnn::IConnectableLayer *layer, const armnn::ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr) override
Function a reshape layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:864
void VisitRankLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a rank layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:854
void VisitComparisonLayer(const armnn::IConnectableLayer *layer, const armnn::ComparisonDescriptor &descriptor, const char *name=nullptr) override
Function a Comparison layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:262
void VisitMaximumLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a Maximum layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:699
A SoftmaxDescriptor for the SoftmaxLayer.
void VisitRsqrtLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function a Reciprocal of square root layer should call back to when its Accept(ILayerVisitor&) functi...
Definition: Serializer.cpp:937
void VisitAbsLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
Function an absolute layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:128
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
void VisitStandInLayer(const armnn::IConnectableLayer *layer, const armnn::StandInDescriptor &standInDescriptor, const char *name=nullptr) override
Function a StandInLayer should call back to when its Accept(ILaterVisitor&) function is invoked...
A FillDescriptor for the FillLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
void VisitFillLayer(const armnn::IConnectableLayer *layer, const armnn::FillDescriptor &fillDescriptor, const char *name=nullptr) override
Function a fill layer should call back to when its Accept(ILayerVisitor&) function is invoked...
Definition: Serializer.cpp:470
void VisitLogSoftmaxLayer(const armnn::IConnectableLayer *layer, const armnn::LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr) override
Function that a log softmax layer should call back to when its Accept(ILayerVisitor&) function is inv...
Definition: Serializer.cpp:567
A PermuteDescriptor for the PermuteLayer.
void VisitInstanceNormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::InstanceNormalizationDescriptor &instanceNormalizationDescriptor, const char *name=nullptr) override
Function that an instance normalization layer should call back to when its Accept(ILayerVisitor&) fun...
Definition: Serializer.cpp:526
std::vector< float > anchors({ 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 100.5f, 1.0f, 1.0f })