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;
276 flatbuffers::Offset<armnnSerializer::LayerBase> CreateLayerBase(
281 void CreateAnyLayer(
const flatbuffers::Offset<void>& layer,
const armnnSerializer::Layer serializerLayer);
284 flatbuffers::Offset<armnnSerializer::ConstTensor> CreateConstTensorInfo(
287 template <
typename T>
288 flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(
const void* memory,
unsigned int size);
294 std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> CreateInputSlots(
298 std::vector<flatbuffers::Offset<armnnSerializer::OutputSlot>> CreateOutputSlots(
302 flatbuffers::FlatBufferBuilder m_flatBufferBuilder;
305 std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> m_serializedLayers;
308 std::vector<int> m_inputIds;
311 std::vector<int> m_outputIds;
314 std::unordered_map<armnn::LayerGuid, uint32_t > m_guidMap;
333 bool SaveSerializedToStream(std::ostream& stream)
override;
void VisitSplitterLayer(const armnn::IConnectableLayer *layer, const armnn::ViewsDescriptor &viewsDescriptor, const char *name=nullptr) override
void VisitAbsLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitRsqrtLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
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
void VisitSpaceToBatchNdLayer(const armnn::IConnectableLayer *layer, const armnn::SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr) override
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
A NormalizationDescriptor for the NormalizationLayer.
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
void VisitStackLayer(const armnn::IConnectableLayer *layer, const armnn::StackDescriptor &stackDescriptor, const char *name=nullptr) override
flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > GetVersionTable()
void VisitComparisonLayer(const armnn::IConnectableLayer *layer, const armnn::ComparisonDescriptor &descriptor, const char *name=nullptr) override
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
void VisitQuantizedLstmLayer(const armnn::IConnectableLayer *layer, const armnn::QuantizedLstmInputParams ¶ms, const char *name=nullptr) override
A PadDescriptor for the PadLayer.
An ActivationDescriptor for the ActivationLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
void VisitLstmLayer(const armnn::IConnectableLayer *layer, const armnn::LstmDescriptor &descriptor, const armnn::LstmInputParams ¶ms, const char *name=nullptr) override
void VisitPreluLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitConstantLayer(const armnn::IConnectableLayer *layer, const armnn::ConstTensor &input, const char *=nullptr) override
void VisitNormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr) override
void VisitConcatLayer(const armnn::IConnectableLayer *layer, const armnn::ConcatDescriptor &concatDescriptor, const char *name=nullptr) override
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
A L2NormalizationDescriptor for the L2NormalizationLayer.
void VisitSoftmaxLayer(const armnn::IConnectableLayer *layer, const armnn::SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr) override
A ViewsDescriptor for the SplitterLayer. Descriptor to configure the splitting process. Number of Views must be equal to the number of outputs, and their order must match - e.g. first view corresponds to the first output, second view to the second output, etc.
void VisitConvolution2dLayer(const armnn::IConnectableLayer *layer, const armnn::Convolution2dDescriptor &descriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *=nullptr) override
void VisitQuantizeLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
std::vector< int > & GetInputIds()
void VisitAdditionLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitLogSoftmaxLayer(const armnn::IConnectableLayer *layer, const armnn::LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr) override
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
void VisitGatherLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
A ReshapeDescriptor for the ReshapeLayer.
void VisitMultiplicationLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
void VisitMergerLayer(const armnn::IConnectableLayer *layer, const armnn::MergerDescriptor &mergerDescriptor, const char *name=nullptr) override
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
void VisitMergeLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitMaximumLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitMinimumLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitArgMinMaxLayer(const armnn::IConnectableLayer *layer, const armnn::ArgMinMaxDescriptor &argMinMaxDescriptor, const char *name=nullptr) override
void VisitReshapeLayer(const armnn::IConnectableLayer *layer, const armnn::ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr) override
void VisitActivationLayer(const armnn::IConnectableLayer *layer, const armnn::ActivationDescriptor &descriptor, const char *name=nullptr) override
void VisitStridedSliceLayer(const armnn::IConnectableLayer *layer, const armnn::StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr) override
void VisitGreaterLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitDetectionPostProcessLayer(const armnn::IConnectableLayer *layer, const armnn::DetectionPostProcessDescriptor &descriptor, const armnn::ConstTensor &anchors, const char *name=nullptr) override
void VisitInputLayer(const armnn::IConnectableLayer *layer, armnn::LayerBindingId id, const char *name=nullptr) override
An LstmDescriptor for the LstmLayer.
void VisitDequantizeLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitMeanLayer(const armnn::IConnectableLayer *layer, const armnn::MeanDescriptor &descriptor, const char *name) override
void VisitSliceLayer(const armnn::IConnectableLayer *layer, const armnn::SliceDescriptor &sliceDescriptor, const char *name=nullptr) override
void VisitSwitchLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
void VisitPermuteLayer(const armnn::IConnectableLayer *layer, const armnn::PermuteDescriptor &PermuteDescriptor, const char *name=nullptr) override
A FullyConnectedDescriptor for the FullyConnectedLayer.
void VisitStandInLayer(const armnn::IConnectableLayer *layer, const armnn::StandInDescriptor &standInDescriptor, const char *name=nullptr) override
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder()
A StackDescriptor for the StackLayer.
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
void VisitDepthToSpaceLayer(const armnn::IConnectableLayer *layer, const armnn::DepthToSpaceDescriptor &descriptor, const char *name=nullptr) override
A SoftmaxDescriptor for the SoftmaxLayer.
void VisitFloorLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitPadLayer(const armnn::IConnectableLayer *layer, const armnn::PadDescriptor &PadDescriptor, const char *name=nullptr) override
void VisitL2NormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::L2NormalizationDescriptor &l2NormalizationDescriptor, const char *name=nullptr) override
void VisitResizeBilinearLayer(const armnn::IConnectableLayer *layer, const armnn::ResizeBilinearDescriptor &resizeDescriptor, const char *name=nullptr) override
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 })
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
void VisitTransposeConvolution2dLayer(const armnn::IConnectableLayer *layer, const armnn::TransposeConvolution2dDescriptor &descriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *=nullptr) override
A Pooling2dDescriptor for the Pooling2dLayer.
A StandInDescriptor for the StandIn layer.
A SliceDescriptor for the SliceLayer.
void VisitInstanceNormalizationLayer(const armnn::IConnectableLayer *layer, const armnn::InstanceNormalizationDescriptor &instanceNormalizationDescriptor, const char *name=nullptr) override
void VisitOutputLayer(const armnn::IConnectableLayer *layer, armnn::LayerBindingId id, const char *name=nullptr) override
std::vector< int > & GetOutputIds()
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
void VisitElementwiseUnaryLayer(const armnn::IConnectableLayer *layer, const armnn::ElementwiseUnaryDescriptor &descriptor, const char *name=nullptr) override
A PermuteDescriptor for the PermuteLayer.
A Convolution2dDescriptor for the Convolution2dLayer.
A MeanDescriptor for the MeanLayer.
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
void VisitSpaceToDepthLayer(const armnn::IConnectableLayer *layer, const armnn::SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr) override
void VisitSubtractionLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitEqualLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitResizeLayer(const armnn::IConnectableLayer *layer, const armnn::ResizeDescriptor &resizeDescriptor, const char *name=nullptr) override
#define ARMNN_DEPRECATED_MSG(message)
void VisitDivisionLayer(const armnn::IConnectableLayer *layer, const char *name=nullptr) override
void VisitPooling2dLayer(const armnn::IConnectableLayer *layer, const armnn::Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr) override
An ArgMinMaxDescriptor for ArgMinMaxLayer.
std::vector< flatbuffers::Offset< armnnSerializer::AnyLayer > > & GetSerializedLayers()
void VisitBatchToSpaceNdLayer(const armnn::IConnectableLayer *layer, const armnn::BatchToSpaceNdDescriptor &descriptor, const char *name=nullptr) override
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
A ResizeDescriptor for the ResizeLayer.
A ComparisonDescriptor for the ComparisonLayer.
An OriginsDescriptor for the ConcatLayer. Descriptor to configure the concatenation process...
A StridedSliceDescriptor for the StridedSliceLayer.