12 #include <unordered_map> 14 #include <ArmnnSchema_generated.h> 29 return m_flatBufferBuilder;
44 return m_serializedLayers;
47 flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions>
GetVersionTable();
52 const char* name =
nullptr)
override;
56 const char* name =
nullptr)
override;
59 const char* name =
nullptr)
override;
63 const char* name =
nullptr)
override;
67 const char* name =
nullptr)
override;
75 const char* name =
nullptr)
override;
79 const char* name =
nullptr)
override;
83 const char* name =
nullptr)
override;
87 const char* =
nullptr)
override;
93 const char* =
nullptr)
override;
97 const char* name =
nullptr)
override;
103 const char* name =
nullptr)
override;
106 const char* name =
nullptr)
override;
111 const char* name =
nullptr)
override;
114 const char* name =
nullptr)
override;
118 const char* name =
nullptr)
override;
122 const char* name =
nullptr)
override;
125 const char *name =
nullptr)
override;
131 const char* name =
nullptr)
override;
134 const char* name =
nullptr)
override;
138 const char* name =
nullptr)
override;
142 const char* name =
nullptr)
override;
146 const char* name =
nullptr)
override;
150 const char* name =
nullptr)
override;
154 const char* name =
nullptr)
override;
159 const char* name =
nullptr)
override;
163 const char* name)
override;
166 const char* name =
nullptr)
override;
169 const char* name =
nullptr)
override;
172 const char* name =
nullptr)
override;
177 const char* name =
nullptr)
override;
180 const char* name =
nullptr)
override;
184 const char* name =
nullptr)
override;
188 const char* name =
nullptr)
override;
192 const char* name =
nullptr)
override;
196 const char* name =
nullptr)
override;
199 const char* name =
nullptr)
override;
202 const char* name =
nullptr)
override;
206 const char* name =
nullptr)
override;
210 const char* name =
nullptr)
override;
214 const char* name =
nullptr)
override;
219 const char* name =
nullptr)
override;
223 const char* name =
nullptr)
override;
227 const char* name =
nullptr)
override;
231 const char* name =
nullptr)
override;
235 const char* name =
nullptr)
override;
239 const char* name =
nullptr)
override;
243 const char* name =
nullptr)
override;
247 const char* name =
nullptr)
override;
251 const char* name =
nullptr)
override;
255 const char* name =
nullptr)
override;
259 const char* name =
nullptr)
override;
262 const char* name =
nullptr)
override;
265 const char* name =
nullptr)
override;
271 const char* =
nullptr)
override;
275 const char* name =
nullptr)
override;
280 flatbuffers::Offset<armnnSerializer::LayerBase> CreateLayerBase(
285 void CreateAnyLayer(
const flatbuffers::Offset<void>& layer,
const armnnSerializer::Layer serializerLayer);
288 flatbuffers::Offset<armnnSerializer::ConstTensor> CreateConstTensorInfo(
291 template <
typename T>
292 flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(
const void* memory,
unsigned int size);
298 std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> CreateInputSlots(
302 std::vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> CreateOutputSlots(
306 flatbuffers::FlatBufferBuilder m_flatBufferBuilder;
309 std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> m_serializedLayers;
312 std::vector<int> m_inputIds;
315 std::vector<int> m_outputIds;
318 std::unordered_map<armnn::LayerGuid, uint32_t > m_guidMap;
337 bool SaveSerializedToStream(std::ostream& stream)
override;
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...
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...
A ViewsDescriptor for the SplitterLayer.
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
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...
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...
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...
std::vector< int > & GetOutputIds()
A ComparisonDescriptor for the ComparisonLayer.
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...
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...
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...
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()
Main network class which provides the interface for building up a neural network. ...
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()
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...
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...
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...
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...
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).
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...
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...
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 ...
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 ¶ms, const char *name=nullptr) override
Function an Lstm layer should call back to when its Accept(ILayerVisitor&) function is invoked...
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 ...
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...
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...
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...
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...
An ArgMinMaxDescriptor for ArgMinMaxLayer.
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...
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
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...
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...
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...
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.
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...
An ActivationDescriptor for the ActivationLayer.
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...
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()
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 ...
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.
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...
void VisitQuantizedLstmLayer(const armnn::IConnectableLayer *layer, const armnn::QuantizedLstmInputParams ¶ms, 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...
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...
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)
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 ...
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...
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...
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...
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...
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...
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...
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 BatchNormalizationDescriptor for the BatchNormalizationLayer.
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...
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...
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 })