ArmNN
 20.11
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::LogicalBinaryDescriptor& descriptor,
163  const char* name = nullptr) override;
164 
166  const armnn::LogSoftmaxDescriptor& logSoftmaxDescriptor,
167  const char* name = nullptr) override;
168 
169  void VisitLstmLayer(const armnn::IConnectableLayer* layer,
170  const armnn::LstmDescriptor& descriptor,
171  const armnn::LstmInputParams& params,
172  const char* name = nullptr) override;
173 
174  void VisitMeanLayer(const armnn::IConnectableLayer* layer,
175  const armnn::MeanDescriptor& descriptor,
176  const char* name) override;
177 
179  const char* name = nullptr) override;
180 
182  const char* name = nullptr) override;
183 
184  void VisitMergeLayer(const armnn::IConnectableLayer* layer,
185  const char* name = nullptr) override;
186 
187  ARMNN_DEPRECATED_MSG("Use VisitConcatLayer instead")
188  void VisitMergerLayer(const armnn::IConnectableLayer* layer,
189  const armnn::MergerDescriptor& mergerDescriptor,
190  const char* name = nullptr) override;
191 
193  const char* name = nullptr) override;
194 
195  void VisitOutputLayer(const armnn::IConnectableLayer* layer,
197  const char* name = nullptr) override;
198 
199  void VisitPadLayer(const armnn::IConnectableLayer* layer,
200  const armnn::PadDescriptor& PadDescriptor,
201  const char* name = nullptr) override;
202 
204  const armnn::PermuteDescriptor& PermuteDescriptor,
205  const char* name = nullptr) override;
206 
208  const armnn::Pooling2dDescriptor& pooling2dDescriptor,
209  const char* name = nullptr) override;
210 
211  void VisitPreluLayer(const armnn::IConnectableLayer* layer,
212  const char* name = nullptr) override;
213 
215  const char* name = nullptr) override;
216 
217  void VisitQLstmLayer(const armnn::IConnectableLayer* layer,
218  const armnn::QLstmDescriptor& descriptor,
219  const armnn::LstmInputParams& params,
220  const char* name = nullptr) override;
221 
223  const armnn::QuantizedLstmInputParams& params,
224  const char* name = nullptr) override;
225 
226  void VisitRankLayer(const armnn::IConnectableLayer* layer,
227  const char* name = nullptr) override;
228 
230  const armnn::ReshapeDescriptor& reshapeDescriptor,
231  const char* name = nullptr) override;
232 
233  void VisitResizeLayer(const armnn::IConnectableLayer* layer,
234  const armnn::ResizeDescriptor& resizeDescriptor,
235  const char* name = nullptr) override;
236 
237  ARMNN_DEPRECATED_MSG("Use VisitResizeLayer instead")
239  const armnn::ResizeBilinearDescriptor& resizeDescriptor,
240  const char* name = nullptr) override;
241 
242  ARMNN_DEPRECATED_MSG("Use VisitElementwiseUnaryLayer instead")
243  void VisitRsqrtLayer(const armnn::IConnectableLayer* layer,
244  const char* name = nullptr) override;
245 
246  void VisitSliceLayer(const armnn::IConnectableLayer* layer,
247  const armnn::SliceDescriptor& sliceDescriptor,
248  const char* name = nullptr) override;
249 
251  const armnn::SoftmaxDescriptor& softmaxDescriptor,
252  const char* name = nullptr) override;
253 
255  const armnn::SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor,
256  const char* name = nullptr) override;
257 
259  const armnn::SpaceToDepthDescriptor& spaceToDepthDescriptor,
260  const char* name = nullptr) override;
261 
263  const armnn::NormalizationDescriptor& normalizationDescriptor,
264  const char* name = nullptr) override;
265 
267  const armnn::ViewsDescriptor& viewsDescriptor,
268  const char* name = nullptr) override;
269 
271  const armnn::StandInDescriptor& standInDescriptor,
272  const char* name = nullptr) override;
273 
274  void VisitStackLayer(const armnn::IConnectableLayer* layer,
275  const armnn::StackDescriptor& stackDescriptor,
276  const char* name = nullptr) override;
277 
279  const armnn::StridedSliceDescriptor& stridedSliceDescriptor,
280  const char* name = nullptr) override;
281 
283  const char* name = nullptr) override;
284 
285  void VisitSwitchLayer(const armnn::IConnectableLayer* layer,
286  const char* name = nullptr) override;
287 
289  const armnn::TransposeConvolution2dDescriptor& descriptor,
290  const armnn::ConstTensor& weights,
292  const char* = nullptr) override;
293 
295  const armnn::TransposeDescriptor& descriptor,
296  const char* name = nullptr) override;
297 
298 private:
299 
300  /// Creates the Input Slots and Output Slots and LayerBase for the layer.
301  flatbuffers::Offset<armnnSerializer::LayerBase> CreateLayerBase(
302  const armnn::IConnectableLayer* layer,
303  const armnnSerializer::LayerType layerType);
304 
305  /// Creates the serializer AnyLayer for the layer and adds it to m_serializedLayers.
306  void CreateAnyLayer(const flatbuffers::Offset<void>& layer, const armnnSerializer::Layer serializerLayer);
307 
308  /// Creates the serializer ConstTensor for the armnn ConstTensor.
309  flatbuffers::Offset<armnnSerializer::ConstTensor> CreateConstTensorInfo(
310  const armnn::ConstTensor& constTensor);
311 
312  /// Creates the serializer TensorInfo for the armnn TensorInfo.
313  flatbuffers::Offset<TensorInfo> CreateTensorInfo(const armnn::TensorInfo& tensorInfo);
314 
315  template <typename T>
316  flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(const void* memory, unsigned int size);
317 
318  ///Function which maps Guid to an index
319  uint32_t GetSerializedId(armnn::LayerGuid guid);
320 
321  /// Creates the serializer InputSlots for the layer.
322  std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> CreateInputSlots(
323  const armnn::IConnectableLayer* layer);
324 
325  /// Creates the serializer OutputSlots for the layer.
326  std::vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> CreateOutputSlots(
327  const armnn::IConnectableLayer* layer);
328 
329  /// FlatBufferBuilder to create our layers' FlatBuffers.
330  flatbuffers::FlatBufferBuilder m_flatBufferBuilder;
331 
332  /// AnyLayers required by the SerializedGraph.
333  std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> m_serializedLayers;
334 
335  /// Vector of the binding ids of all Input Layers required by the SerializedGraph.
336  std::vector<int> m_inputIds;
337 
338  /// Vector of the binding ids of all Output Layers required by the SerializedGraph.
339  std::vector<int> m_outputIds;
340 
341  /// Mapped Guids of all Layers to match our index.
342  std::unordered_map<armnn::LayerGuid, uint32_t > m_guidMap;
343 
344  /// layer within our FlatBuffer index.
345  uint32_t m_layerId;
346 };
347 
348 class Serializer : public ISerializer
349 {
350 public:
353 
354  /// Serializes the network to ArmNN SerializedGraph.
355  /// @param [in] inNetwork The network to be serialized.
356  void Serialize(const armnn::INetwork& inNetwork) override;
357 
358  /// Serializes the SerializedGraph to the stream.
359  /// @param [stream] the stream to save to
360  /// @return true if graph is Serialized to the Stream, false otherwise
361  bool SaveSerializedToStream(std::ostream& stream) override;
362 
363 private:
364 
365  /// Visitor to contruct serialized network
366  SerializerVisitor m_SerializerVisitor;
367 };
368 
369 } //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:769
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:73
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
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
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:841
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:905
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:962
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:742
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:202
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:928
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:815
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:804
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:606
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:762
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:752
An LstmDescriptor for the LstmLayer.
void VisitLogicalBinaryLayer(const armnn::IConnectableLayer *layer, const armnn::LogicalBinaryDescriptor &descriptor, const char *name=nullptr) override
Function that a logical binary layer should call back to when its Accept(ILayerVisitor&) function is ...
Definition: Serializer.cpp:567
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:314
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...
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:93
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:979
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:724
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:879
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:869
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:714
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:952
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:582
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 })