ArmNN  NotReleased
SerializerVisitor Class Reference

#include <Serializer.hpp>

Inheritance diagram for SerializerVisitor:
ILayerVisitor

Public Member Functions

 SerializerVisitor ()
 
 ~SerializerVisitor ()
 
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder ()
 
std::vector< int > & GetInputIds ()
 
std::vector< int > & GetOutputIds ()
 
std::vector< flatbuffers::Offset< armnnSerializer::AnyLayer > > & GetSerializedLayers ()
 
flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > GetVersionTable ()
 
void VisitAbsLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitActivationLayer (const armnn::IConnectableLayer *layer, const armnn::ActivationDescriptor &descriptor, const char *name=nullptr) override
 
void VisitAdditionLayer (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 VisitBatchToSpaceNdLayer (const armnn::IConnectableLayer *layer, const armnn::BatchToSpaceNdDescriptor &descriptor, 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
 
void VisitComparisonLayer (const armnn::IConnectableLayer *layer, const armnn::ComparisonDescriptor &descriptor, const char *name=nullptr) override
 
void VisitConcatLayer (const armnn::IConnectableLayer *layer, const armnn::ConcatDescriptor &concatDescriptor, const char *name=nullptr) override
 
void VisitConstantLayer (const armnn::IConnectableLayer *layer, const armnn::ConstTensor &input, const char *=nullptr) override
 
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 VisitDepthToSpaceLayer (const armnn::IConnectableLayer *layer, const armnn::DepthToSpaceDescriptor &descriptor, 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 VisitDequantizeLayer (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 VisitDivisionLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitElementwiseUnaryLayer (const armnn::IConnectableLayer *layer, const armnn::ElementwiseUnaryDescriptor &descriptor, const char *name=nullptr) override
 
void VisitEqualLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitFloorLayer (const armnn::IConnectableLayer *layer, 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 VisitGatherLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitGreaterLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitInputLayer (const armnn::IConnectableLayer *layer, armnn::LayerBindingId id, const char *name=nullptr) override
 
void VisitInstanceNormalizationLayer (const armnn::IConnectableLayer *layer, const armnn::InstanceNormalizationDescriptor &instanceNormalizationDescriptor, const char *name=nullptr) override
 
void VisitL2NormalizationLayer (const armnn::IConnectableLayer *layer, const armnn::L2NormalizationDescriptor &l2NormalizationDescriptor, const char *name=nullptr) override
 
void VisitLogSoftmaxLayer (const armnn::IConnectableLayer *layer, const armnn::LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr) override
 
void VisitLstmLayer (const armnn::IConnectableLayer *layer, const armnn::LstmDescriptor &descriptor, const armnn::LstmInputParams &params, const char *name=nullptr) override
 
void VisitMeanLayer (const armnn::IConnectableLayer *layer, const armnn::MeanDescriptor &descriptor, const char *name) override
 
void VisitMinimumLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitMaximumLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitMergeLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitMergerLayer (const armnn::IConnectableLayer *layer, const armnn::MergerDescriptor &mergerDescriptor, const char *name=nullptr) override
 
void VisitMultiplicationLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitOutputLayer (const armnn::IConnectableLayer *layer, armnn::LayerBindingId id, const char *name=nullptr) override
 
void VisitPadLayer (const armnn::IConnectableLayer *layer, const armnn::PadDescriptor &PadDescriptor, const char *name=nullptr) override
 
void VisitPermuteLayer (const armnn::IConnectableLayer *layer, const armnn::PermuteDescriptor &PermuteDescriptor, const char *name=nullptr) override
 
void VisitPooling2dLayer (const armnn::IConnectableLayer *layer, const armnn::Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr) override
 
void VisitPreluLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitQuantizeLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitQuantizedLstmLayer (const armnn::IConnectableLayer *layer, const armnn::QuantizedLstmInputParams &params, const char *name=nullptr) override
 
void VisitReshapeLayer (const armnn::IConnectableLayer *layer, const armnn::ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr) override
 
void VisitResizeLayer (const armnn::IConnectableLayer *layer, const armnn::ResizeDescriptor &resizeDescriptor, const char *name=nullptr) override
 
void VisitResizeBilinearLayer (const armnn::IConnectableLayer *layer, const armnn::ResizeBilinearDescriptor &resizeDescriptor, const char *name=nullptr) override
 
void VisitRsqrtLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitSliceLayer (const armnn::IConnectableLayer *layer, const armnn::SliceDescriptor &sliceDescriptor, const char *name=nullptr) override
 
void VisitSoftmaxLayer (const armnn::IConnectableLayer *layer, const armnn::SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr) override
 
void VisitSpaceToBatchNdLayer (const armnn::IConnectableLayer *layer, const armnn::SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr) override
 
void VisitSpaceToDepthLayer (const armnn::IConnectableLayer *layer, const armnn::SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr) override
 
void VisitNormalizationLayer (const armnn::IConnectableLayer *layer, const armnn::NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr) override
 
void VisitSplitterLayer (const armnn::IConnectableLayer *layer, const armnn::ViewsDescriptor &viewsDescriptor, const char *name=nullptr) override
 
void VisitStandInLayer (const armnn::IConnectableLayer *layer, const armnn::StandInDescriptor &standInDescriptor, const char *name=nullptr) override
 
void VisitStackLayer (const armnn::IConnectableLayer *layer, const armnn::StackDescriptor &stackDescriptor, const char *name=nullptr) override
 
void VisitStridedSliceLayer (const armnn::IConnectableLayer *layer, const armnn::StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr) override
 
void VisitSubtractionLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitSwitchLayer (const armnn::IConnectableLayer *layer, const char *name=nullptr) override
 
void VisitTransposeConvolution2dLayer (const armnn::IConnectableLayer *layer, const armnn::TransposeConvolution2dDescriptor &descriptor, const armnn::ConstTensor &weights, const armnn::Optional< armnn::ConstTensor > &biases, const char *=nullptr) override
 
- Public Member Functions inherited from ILayerVisitor
virtual void StartVisit ()
 
virtual void FinishVisit ()
 

Additional Inherited Members

- Protected Member Functions inherited from ILayerVisitor
 ILayerVisitor ()
 
virtual ~ILayerVisitor ()
 

Detailed Description

Definition at line 21 of file Serializer.hpp.

Constructor & Destructor Documentation

◆ SerializerVisitor()

SerializerVisitor ( )
inline

Definition at line 24 of file Serializer.hpp.

24 : m_layerId(0) {}

◆ ~SerializerVisitor()

~SerializerVisitor ( )
inline

Definition at line 25 of file Serializer.hpp.

25 {}

Member Function Documentation

◆ GetFlatBufferBuilder()

flatbuffers::FlatBufferBuilder& GetFlatBufferBuilder ( )
inline

Definition at line 27 of file Serializer.hpp.

28  {
29  return m_flatBufferBuilder;
30  }

◆ GetInputIds()

std::vector<int>& GetInputIds ( )
inline

Definition at line 32 of file Serializer.hpp.

33  {
34  return m_inputIds;
35  }

◆ GetOutputIds()

std::vector<int>& GetOutputIds ( )
inline

Definition at line 37 of file Serializer.hpp.

38  {
39  return m_outputIds;
40  }

◆ GetSerializedLayers()

std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer> >& GetSerializedLayers ( )
inline

Definition at line 42 of file Serializer.hpp.

References anchors(), ARMNN_DEPRECATED_MSG, SerializerVisitor::GetVersionTable(), SerializerVisitor::VisitAbsLayer(), SerializerVisitor::VisitActivationLayer(), SerializerVisitor::VisitAdditionLayer(), SerializerVisitor::VisitArgMinMaxLayer(), SerializerVisitor::VisitBatchNormalizationLayer(), SerializerVisitor::VisitBatchToSpaceNdLayer(), SerializerVisitor::VisitComparisonLayer(), SerializerVisitor::VisitConcatLayer(), SerializerVisitor::VisitConstantLayer(), SerializerVisitor::VisitConvolution2dLayer(), SerializerVisitor::VisitDepthToSpaceLayer(), SerializerVisitor::VisitDepthwiseConvolution2dLayer(), SerializerVisitor::VisitDequantizeLayer(), SerializerVisitor::VisitDetectionPostProcessLayer(), SerializerVisitor::VisitDivisionLayer(), SerializerVisitor::VisitElementwiseUnaryLayer(), SerializerVisitor::VisitEqualLayer(), SerializerVisitor::VisitFloorLayer(), SerializerVisitor::VisitFullyConnectedLayer(), SerializerVisitor::VisitGatherLayer(), SerializerVisitor::VisitGreaterLayer(), SerializerVisitor::VisitInputLayer(), SerializerVisitor::VisitInstanceNormalizationLayer(), SerializerVisitor::VisitL2NormalizationLayer(), SerializerVisitor::VisitLogSoftmaxLayer(), SerializerVisitor::VisitLstmLayer(), SerializerVisitor::VisitMaximumLayer(), SerializerVisitor::VisitMeanLayer(), SerializerVisitor::VisitMergeLayer(), SerializerVisitor::VisitMergerLayer(), SerializerVisitor::VisitMinimumLayer(), SerializerVisitor::VisitMultiplicationLayer(), SerializerVisitor::VisitNormalizationLayer(), SerializerVisitor::VisitOutputLayer(), SerializerVisitor::VisitPadLayer(), SerializerVisitor::VisitPermuteLayer(), SerializerVisitor::VisitPooling2dLayer(), SerializerVisitor::VisitPreluLayer(), SerializerVisitor::VisitQuantizedLstmLayer(), SerializerVisitor::VisitQuantizeLayer(), SerializerVisitor::VisitReshapeLayer(), SerializerVisitor::VisitResizeBilinearLayer(), SerializerVisitor::VisitResizeLayer(), SerializerVisitor::VisitRsqrtLayer(), SerializerVisitor::VisitSliceLayer(), SerializerVisitor::VisitSoftmaxLayer(), SerializerVisitor::VisitSpaceToBatchNdLayer(), SerializerVisitor::VisitSpaceToDepthLayer(), SerializerVisitor::VisitSplitterLayer(), SerializerVisitor::VisitStackLayer(), SerializerVisitor::VisitStandInLayer(), SerializerVisitor::VisitStridedSliceLayer(), SerializerVisitor::VisitSubtractionLayer(), SerializerVisitor::VisitSwitchLayer(), and SerializerVisitor::VisitTransposeConvolution2dLayer().

43  {
44  return m_serializedLayers;
45  }

◆ GetVersionTable()

flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > GetVersionTable ( )

Definition at line 1452 of file Serializer.cpp.

References IOutputSlot::CalculateIndexOnOwner(), IInputSlot::GetConnection(), TensorInfo::GetDataType(), armnnSerializer::GetFlatBufferDataType(), IConnectableLayer::GetInputSlot(), TensorShape::GetNumDimensions(), IConnectableLayer::GetNumInputSlots(), IConnectableLayer::GetNumOutputSlots(), IConnectableLayer::GetOutputSlot(), IOutputSlot::GetOwningLayerGuid(), TensorInfo::GetQuantizationOffset(), TensorInfo::GetQuantizationScale(), TensorInfo::GetShape(), and IOutputSlot::GetTensorInfo().

Referenced by SerializerVisitor::GetSerializedLayers().

1453 {
1454  flatbuffers::Offset<armnnSerializer::FeatureCompatibilityVersions> versionsTable =
1455  serializer::CreateFeatureCompatibilityVersions(
1456  m_flatBufferBuilder,
1457  1 // Binding ids scheme version
1458  );
1459  return versionsTable;
1460 }

◆ VisitAbsLayer()

void VisitAbsLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function an absolute layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 125 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

126 {
127  boost::ignore_unused(name);
128  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Abs);
129  auto flatBufferAbsLayer = serializer::CreateAbsLayer(m_flatBufferBuilder, flatBufferBaseLayer);
130 
131  CreateAnyLayer(flatBufferAbsLayer.o, serializer::Layer::Layer_AbsLayer);
132 }

◆ VisitActivationLayer()

void VisitActivationLayer ( const armnn::IConnectableLayer layer,
const armnn::ActivationDescriptor activationDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that an activation layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
activationDescriptor- ActivationDescriptor to configure the activation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 135 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferActivationFunction(), ActivationDescriptor::m_A, ActivationDescriptor::m_B, and ActivationDescriptor::m_Function.

Referenced by SerializerVisitor::GetSerializedLayers().

138 {
139  boost::ignore_unused(name);
140 
141  // Create FlatBuffer BaseLayer
142  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Activation);
143 
144  // Create the FlatBuffer ActivationDescriptor
145  auto flatBufferDescriptor = CreateActivationDescriptor(m_flatBufferBuilder,
146  GetFlatBufferActivationFunction(descriptor.m_Function),
147  descriptor.m_A,
148  descriptor.m_B);
149 
150  // Create the FlatBuffer ActivationLayer
151  auto flatBufferAdditionLayer = CreateActivationLayer(m_flatBufferBuilder,
152  flatBufferBaseLayer,
153  flatBufferDescriptor);
154 
155  // Add the AnyLayer to the FlatBufferLayers
156  CreateAnyLayer(flatBufferAdditionLayer.o, serializer::Layer::Layer_ActivationLayer);
157 }
serializer::ActivationFunction GetFlatBufferActivationFunction(armnn::ActivationFunction function)
Definition: Serializer.cpp:27

◆ VisitAdditionLayer()

void VisitAdditionLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function that an addition layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 160 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

161 {
162  boost::ignore_unused(name);
163 
164  // Create FlatBuffer BaseLayer
165  auto flatBufferAdditionBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Addition);
166 
167  // Create the FlatBuffer AdditionLayer
168  auto flatBufferAdditionLayer = serializer::CreateAdditionLayer(m_flatBufferBuilder, flatBufferAdditionBaseLayer);
169 
170  // Add the AnyLayer to the FlatBufferLayers
171  CreateAnyLayer(flatBufferAdditionLayer.o, serializer::Layer::Layer_AdditionLayer);
172 }

◆ VisitArgMinMaxLayer()

void VisitArgMinMaxLayer ( const armnn::IConnectableLayer layer,
const armnn::ArgMinMaxDescriptor argMinMaxDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that an arg min max layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
argMinMaxDescriptor- ArgMinMaxDescriptor to configure the activation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 175 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferArgMinMaxFunction(), ArgMinMaxDescriptor::m_Axis, and ArgMinMaxDescriptor::m_Function.

Referenced by SerializerVisitor::GetSerializedLayers().

178 {
179  boost::ignore_unused(name);
180 
181  // Create FlatBuffer BaseLayer
182  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_ArgMinMax);
183 
184  // Create FlatBuffer Descriptor
185  auto flatBufferDescriptor = CreateArgMinMaxDescriptor(m_flatBufferBuilder,
186  GetFlatBufferArgMinMaxFunction(descriptor.m_Function),
187  descriptor.m_Axis);
188 
189  // Create FlatBuffer ArgMinMaxLayer
190  auto flatBufferLayer = CreateArgMinMaxLayer(m_flatBufferBuilder,
191  flatBufferBaseLayer,
192  flatBufferDescriptor);
193 
194  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ArgMinMaxLayer);
195 }
serializer::ArgMinMaxFunction GetFlatBufferArgMinMaxFunction(armnn::ArgMinMaxFunction function)
Definition: Serializer.cpp:54

◆ VisitBatchNormalizationLayer()

void VisitBatchNormalizationLayer ( const armnn::IConnectableLayer layer,
const armnn::BatchNormalizationDescriptor desc,
const armnn::ConstTensor mean,
const armnn::ConstTensor variance,
const armnn::ConstTensor beta,
const armnn::ConstTensor gamma,
const char *  name = nullptr 
)
overridevirtual

Function that a batch normalization layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
mean- Pre-calculated mean for each channel.
variance- Pre-calculated variance for each channel.
beta- Per-channel additive factor.
gamma- Per-channel multiplicative factor.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 228 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), BatchNormalizationDescriptor::m_DataLayout, and BatchNormalizationDescriptor::m_Eps.

Referenced by SerializerVisitor::GetSerializedLayers().

235 {
236  boost::ignore_unused(name);
237 
238  auto fbBatchNormalizationBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_BatchNormalization);
239  auto fbBatchNormalizationDescriptor = serializer::CreateBatchNormalizationDescriptor(
240  m_flatBufferBuilder,
241  batchNormDescriptor.m_Eps,
242  GetFlatBufferDataLayout(batchNormDescriptor.m_DataLayout));
243 
244  auto fbMeanConstTensorInfo = CreateConstTensorInfo(mean);
245  auto fbVarianceConstTensorInfo = CreateConstTensorInfo(variance);
246  auto fbBetaConstTensorInfo = CreateConstTensorInfo(beta);
247  auto fbGammaConstTensorInfo = CreateConstTensorInfo(gamma);
248  auto fbBatchNormalizationLayer = serializer::CreateBatchNormalizationLayer(m_flatBufferBuilder,
249  fbBatchNormalizationBaseLayer,
250  fbBatchNormalizationDescriptor,
251  fbMeanConstTensorInfo,
252  fbVarianceConstTensorInfo,
253  fbBetaConstTensorInfo,
254  fbGammaConstTensorInfo);
255 
256  CreateAnyLayer(fbBatchNormalizationLayer.o, serializer::Layer::Layer_BatchNormalizationLayer);
257 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitBatchToSpaceNdLayer()

void VisitBatchToSpaceNdLayer ( const armnn::IConnectableLayer layer,
const armnn::BatchToSpaceNdDescriptor batchToSpaceNdDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a batch to space ND layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
batchToSpaceNdDescriptor- Description of the layer.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 198 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), BatchToSpaceNdDescriptor::m_BlockShape, BatchToSpaceNdDescriptor::m_Crops, and BatchToSpaceNdDescriptor::m_DataLayout.

Referenced by SerializerVisitor::GetSerializedLayers().

201 {
202  boost::ignore_unused(name);
203 
204  // Create FlatBuffer BaseLayer
205  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_BatchToSpaceNd);
206 
207  std::vector<unsigned int> crops;
208  crops.reserve(descriptor.m_Crops.size() * 2);
209  for (auto& crop : descriptor.m_Crops)
210  {
211  crops.push_back(crop.first);
212  crops.push_back(crop.second);
213  }
214 
215  auto flatBufferDescriptor =
216  CreateBatchToSpaceNdDescriptor(m_flatBufferBuilder,
217  m_flatBufferBuilder.CreateVector(descriptor.m_BlockShape),
218  m_flatBufferBuilder.CreateVector(crops),
219  GetFlatBufferDataLayout(descriptor.m_DataLayout));
220 
221  auto flatBufferLayer = serializer::CreateBatchToSpaceNdLayer(m_flatBufferBuilder,
222  flatBufferBaseLayer,
223  flatBufferDescriptor);
224 
225  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_BatchToSpaceNdLayer);
226 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitComparisonLayer()

void VisitComparisonLayer ( const armnn::IConnectableLayer layer,
const armnn::ComparisonDescriptor comparisonDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a Comparison layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
comparisonDescriptor- Description of the layer.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 259 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferComparisonOperation(), and ComparisonDescriptor::m_Operation.

Referenced by SerializerVisitor::GetSerializedLayers().

262 {
263  boost::ignore_unused(name);
264 
265  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Comparison);
266  auto fbDescriptor = serializer::CreateComparisonDescriptor(
267  m_flatBufferBuilder,
268  GetFlatBufferComparisonOperation(descriptor.m_Operation));
269 
270  auto fbLayer = serializer::CreateComparisonLayer(m_flatBufferBuilder, fbBaseLayer, fbDescriptor);
271  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_ComparisonLayer);
272 }
armnnSerializer::ComparisonOperation GetFlatBufferComparisonOperation(armnn::ComparisonOperation comparisonOperation)

◆ VisitConcatLayer()

void VisitConcatLayer ( const armnn::IConnectableLayer layer,
const armnn::ConcatDescriptor concatDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a concat layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
concatDescriptor- ConcatDescriptor (synonym for OriginsDescriptor) to configure the concatenation process. Number of Views must be equal to the number of inputs, and their order must match - e.g. first view corresponds to the first input, second view to the second input, etc....
name- Optional name for the layer.

Reimplemented from ILayerVisitor.

Definition at line 725 of file Serializer.cpp.

References OriginsDescriptor::GetConcatAxis(), OriginsDescriptor::GetNumDimensions(), OriginsDescriptor::GetNumViews(), and OriginsDescriptor::GetViewOrigin().

Referenced by SerializerVisitor::GetSerializedLayers().

728 {
729  boost::ignore_unused(name);
730 
731  auto flatBufferConcatBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Concat);
732 
733  std::vector<flatbuffers::Offset<UintVector>> views;
734  for (unsigned int v = 0; v < concatDescriptor.GetNumViews(); ++v)
735  {
736  const uint32_t* origin = concatDescriptor.GetViewOrigin(v);
737  std::vector<uint32_t> origins;
738  for (unsigned int d = 0; d < concatDescriptor.GetNumDimensions(); ++d)
739  {
740  origins.push_back(origin[d]);
741  }
742  auto view = m_flatBufferBuilder.CreateVector(origins);
743  auto uintVector = CreateUintVector(m_flatBufferBuilder, view);
744  views.push_back(uintVector);
745  }
746 
747  auto flatBufferConcatDescriptor = CreateOriginsDescriptor(m_flatBufferBuilder,
748  concatDescriptor.GetConcatAxis(),
749  concatDescriptor.GetNumViews(),
750  concatDescriptor.GetNumDimensions(),
751  m_flatBufferBuilder.CreateVector(views));
752 
753  auto flatBufferLayer = CreateConcatLayer(m_flatBufferBuilder,
754  flatBufferConcatBaseLayer,
755  flatBufferConcatDescriptor);
756 
757  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ConcatLayer);
758 }
const uint32_t * GetViewOrigin(uint32_t idx) const
Return the view origin at the int value idx.
uint32_t GetNumViews() const
Get the number of views.
uint32_t GetNumDimensions() const
Get the number of dimensions.
unsigned int GetConcatAxis() const
Get the concatenation axis value.

◆ VisitConstantLayer()

void VisitConstantLayer ( const armnn::IConnectableLayer layer,
const armnn::ConstTensor input,
const char *  name = nullptr 
)
overridevirtual

Function a layer with no inputs and a single output, which always corresponds to the passed in constant tensor should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
input- Tensor to be provided as the only output of the layer. The layer will maintain its own copy of the tensor data, meaning the memory referenced by input can be freed or reused after this function is called.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 275 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

278 {
279  boost::ignore_unused(name);
280 
281  // Create FlatBuffer BaseLayer
282  auto flatBufferConstantBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Constant);
283 
284  auto flatBufferConstTensorInfo = CreateConstTensorInfo(input);
285 
286  // Create the FlatBuffer ConstantLayer
287  auto flatBufferLayer = CreateConstantLayer(m_flatBufferBuilder,
288  flatBufferConstantBaseLayer,
289  flatBufferConstTensorInfo);
290 
291  // Add the AnyLayer to the FlatBufferLayers
292  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ConstantLayer);
293 }

◆ VisitConvolution2dLayer()

void VisitConvolution2dLayer ( const armnn::IConnectableLayer layer,
const armnn::Convolution2dDescriptor convolution2dDescriptor,
const armnn::ConstTensor weights,
const armnn::Optional< armnn::ConstTensor > &  biases,
const char *  name = nullptr 
)
overridevirtual

Function that a 2D convolution layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
convolution2dDescriptor- Description of the 2D convolution layer.
weights- Tensor for the weights data.
biases- Optional tensor for the bias data. If specified, must match the output tensor shape.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 296 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), OptionalBase::has_value(), Convolution2dDescriptor::m_BiasEnabled, Convolution2dDescriptor::m_DataLayout, Convolution2dDescriptor::m_DilationX, Convolution2dDescriptor::m_DilationY, Convolution2dDescriptor::m_PadBottom, Convolution2dDescriptor::m_PadLeft, Convolution2dDescriptor::m_PadRight, Convolution2dDescriptor::m_PadTop, Convolution2dDescriptor::m_StrideX, Convolution2dDescriptor::m_StrideY, and OptionalReferenceSwitch< IsReference, T >::value().

Referenced by SerializerVisitor::GetSerializedLayers().

301 {
302  boost::ignore_unused(name);
303 
304  // Create FlatBuffer BaseLayer
305  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Convolution2d);
306 
307  auto flatBufferDescriptor = CreateConvolution2dDescriptor(m_flatBufferBuilder,
308  descriptor.m_PadLeft,
309  descriptor.m_PadRight,
310  descriptor.m_PadTop,
311  descriptor.m_PadBottom,
312  descriptor.m_StrideX,
313  descriptor.m_StrideY,
314  descriptor.m_DilationX,
315  descriptor.m_DilationY,
316  descriptor.m_BiasEnabled,
317  GetFlatBufferDataLayout(descriptor.m_DataLayout));
318  auto flatBufferWeightsConstTensorInfo = CreateConstTensorInfo(weights);
319  flatbuffers::Offset<serializer::ConstTensor> flatBufferBiasesConstTensorInfo;
320 
321  if (biases.has_value())
322  {
323  flatBufferBiasesConstTensorInfo = CreateConstTensorInfo(biases.value());
324  }
325 
326  // Create the FlatBuffer Convolution2dLayer
327  auto flatBufferLayer = CreateConvolution2dLayer(m_flatBufferBuilder,
328  flatBufferBaseLayer,
329  flatBufferDescriptor,
330  flatBufferWeightsConstTensorInfo,
331  flatBufferBiasesConstTensorInfo);
332 
333  // Add the AnyLayer to the FlatBufferLayers
334  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_Convolution2dLayer);
335 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
bool has_value() const noexcept
Definition: Optional.hpp:53

◆ VisitDepthToSpaceLayer()

void VisitDepthToSpaceLayer ( const armnn::IConnectableLayer layer,
const armnn::DepthToSpaceDescriptor depthToSpaceDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a depth to space layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
depthToSpaceDescriptor- Parameters for the depth to space operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 337 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), SpaceToDepthDescriptor::m_BlockSize, and SpaceToDepthDescriptor::m_DataLayout.

Referenced by SerializerVisitor::GetSerializedLayers().

340 {
341  boost::ignore_unused(name);
342 
343  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_DepthToSpace);
344  auto fbDescriptor = CreateDepthToSpaceDescriptor(m_flatBufferBuilder,
345  descriptor.m_BlockSize,
346  GetFlatBufferDataLayout(descriptor.m_DataLayout));
347 
348  auto fbLayer = serializer::CreateDepthToSpaceLayer(m_flatBufferBuilder, fbBaseLayer, fbDescriptor);
349 
350  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_DepthToSpaceLayer);
351 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitDepthwiseConvolution2dLayer()

void VisitDepthwiseConvolution2dLayer ( const armnn::IConnectableLayer layer,
const armnn::DepthwiseConvolution2dDescriptor convolution2dDescriptor,
const armnn::ConstTensor weights,
const armnn::Optional< armnn::ConstTensor > &  biases,
const char *  name = nullptr 
)
overridevirtual

Function that a 2D depthwise convolution layer with biases should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
convolution2dDescriptor- Description of the 2D depthwise convolution layer.
weights- Tensor for the weights. Expected format: [channelMultiplier, inputChannels, height, width].
biases- Optional tensor for the bias data. If specified, must match the output tensor shape.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 353 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), OptionalBase::has_value(), DepthwiseConvolution2dDescriptor::m_BiasEnabled, DepthwiseConvolution2dDescriptor::m_DataLayout, DepthwiseConvolution2dDescriptor::m_DilationX, DepthwiseConvolution2dDescriptor::m_DilationY, DepthwiseConvolution2dDescriptor::m_PadBottom, DepthwiseConvolution2dDescriptor::m_PadLeft, DepthwiseConvolution2dDescriptor::m_PadRight, DepthwiseConvolution2dDescriptor::m_PadTop, DepthwiseConvolution2dDescriptor::m_StrideX, DepthwiseConvolution2dDescriptor::m_StrideY, and OptionalReferenceSwitch< IsReference, T >::value().

Referenced by SerializerVisitor::GetSerializedLayers().

358 {
359  boost::ignore_unused(name);
360 
361  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_DepthwiseConvolution2d);
362  auto fbDescriptor = CreateDepthwiseConvolution2dDescriptor(m_flatBufferBuilder,
363  descriptor.m_PadLeft,
364  descriptor.m_PadRight,
365  descriptor.m_PadTop,
366  descriptor.m_PadBottom,
367  descriptor.m_StrideX,
368  descriptor.m_StrideY,
369  descriptor.m_DilationX,
370  descriptor.m_DilationY,
371  descriptor.m_BiasEnabled,
372  GetFlatBufferDataLayout(descriptor.m_DataLayout));
373 
374  flatbuffers::Offset<serializer::ConstTensor> fbWeightsConstTensorInfo = CreateConstTensorInfo(weights);
375  flatbuffers::Offset<serializer::ConstTensor> fbBiasesConstTensorInfo;
376  if (biases.has_value())
377  {
378  fbBiasesConstTensorInfo = CreateConstTensorInfo(biases.value());
379  }
380 
381  auto flatBufferLayer = CreateDepthwiseConvolution2dLayer(m_flatBufferBuilder,
382  fbBaseLayer,
383  fbDescriptor,
384  fbWeightsConstTensorInfo,
385  fbBiasesConstTensorInfo);
386 
387  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_DepthwiseConvolution2dLayer);
388 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
bool has_value() const noexcept
Definition: Optional.hpp:53

◆ VisitDequantizeLayer()

void VisitDequantizeLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function that a Dequantize layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 390 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

392 {
393  boost::ignore_unused(name);
394 
395  auto fbDequantizeBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Dequantize);
396  auto fbDequantizeLayer = serializer::CreateDequantizeLayer(m_flatBufferBuilder, fbDequantizeBaseLayer);
397 
398  CreateAnyLayer(fbDequantizeLayer.o, serializer::Layer::Layer_DequantizeLayer);
399 }

◆ VisitDetectionPostProcessLayer()

void VisitDetectionPostProcessLayer ( const armnn::IConnectableLayer layer,
const armnn::DetectionPostProcessDescriptor descriptor,
const armnn::ConstTensor anchors,
const char *  name = nullptr 
)
overridevirtual

Function that a Detection PostProcess layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
descriptor- Description of the Detection PostProcess layer.
anchors- Tensor for the anchors.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 401 of file Serializer.cpp.

References DetectionPostProcessDescriptor::m_DetectionsPerClass, DetectionPostProcessDescriptor::m_MaxClassesPerDetection, DetectionPostProcessDescriptor::m_MaxDetections, DetectionPostProcessDescriptor::m_NmsIouThreshold, DetectionPostProcessDescriptor::m_NmsScoreThreshold, DetectionPostProcessDescriptor::m_NumClasses, DetectionPostProcessDescriptor::m_ScaleH, DetectionPostProcessDescriptor::m_ScaleW, DetectionPostProcessDescriptor::m_ScaleX, DetectionPostProcessDescriptor::m_ScaleY, and DetectionPostProcessDescriptor::m_UseRegularNms.

Referenced by SerializerVisitor::GetSerializedLayers().

405 {
406  boost::ignore_unused(name);
407 
408  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_DetectionPostProcess);
409  auto fbDescriptor = CreateDetectionPostProcessDescriptor(m_flatBufferBuilder,
410  descriptor.m_MaxDetections,
411  descriptor.m_MaxClassesPerDetection,
412  descriptor.m_DetectionsPerClass,
413  descriptor.m_NmsScoreThreshold,
414  descriptor.m_NmsIouThreshold,
415  descriptor.m_NumClasses,
416  descriptor.m_UseRegularNms,
417  descriptor.m_ScaleX,
418  descriptor.m_ScaleY,
419  descriptor.m_ScaleW,
420  descriptor.m_ScaleH);
421 
422  flatbuffers::Offset<serializer::ConstTensor> fbAnchorsConstTensorInfo = CreateConstTensorInfo(anchors);
423 
424  auto flatBufferLayer = CreateDetectionPostProcessLayer(m_flatBufferBuilder,
425  fbBaseLayer,
426  fbDescriptor,
427  fbAnchorsConstTensorInfo);
428 
429  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_DetectionPostProcessLayer);
430 }
float m_ScaleX
Center size encoding scale x.
uint32_t m_MaxClassesPerDetection
Maximum numbers of classes per detection, used in Fast NMS.
uint32_t m_NumClasses
Number of classes.
float m_ScaleW
Center size encoding scale weight.
float m_ScaleY
Center size encoding scale y.
bool m_UseRegularNms
Use Regular NMS.
float m_NmsIouThreshold
Intersection over union threshold.
uint32_t m_DetectionsPerClass
Detections per classes, used in Regular NMS.
float m_NmsScoreThreshold
NMS score threshold.
float m_ScaleH
Center size encoding scale height.
uint32_t m_MaxDetections
Maximum numbers of detections.

◆ VisitDivisionLayer()

void VisitDivisionLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a division layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 432 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

433 {
434  boost::ignore_unused(name);
435 
436  auto fbDivisionBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Division);
437  auto fbDivisionLayer = serializer::CreateDivisionLayer(m_flatBufferBuilder, fbDivisionBaseLayer);
438 
439  CreateAnyLayer(fbDivisionLayer.o, serializer::Layer::Layer_DivisionLayer);
440 }

◆ VisitElementwiseUnaryLayer()

void VisitElementwiseUnaryLayer ( const armnn::IConnectableLayer layer,
const armnn::ElementwiseUnaryDescriptor elementwiseUnaryDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a ElementwiseUnary layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
elementwiseUnaryDescriptor- Description of the layer.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 442 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferUnaryOperation(), and ElementwiseUnaryDescriptor::m_Operation.

Referenced by SerializerVisitor::GetSerializedLayers().

445 {
446  boost::ignore_unused(name);
447 
448  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_ElementwiseUnary);
449  auto fbDescriptor = serializer::CreateElementwiseUnaryDescriptor(
450  m_flatBufferBuilder,
451  GetFlatBufferUnaryOperation(descriptor.m_Operation));
452 
453  auto fbLayer = serializer::CreateElementwiseUnaryLayer(m_flatBufferBuilder, fbBaseLayer, fbDescriptor);
454  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_ElementwiseUnaryLayer);
455 }
armnnSerializer::UnaryOperation GetFlatBufferUnaryOperation(armnn::UnaryOperation comparisonOperation)

◆ VisitEqualLayer()

void VisitEqualLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function an Equal layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 457 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

458 {
459  boost::ignore_unused(name);
460 
461  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Equal);
462  auto fbEqualLayer = serializer::CreateEqualLayer(m_flatBufferBuilder, fbBaseLayer);
463 
464  CreateAnyLayer(fbEqualLayer.o, serializer::Layer::Layer_EqualLayer);
465 }

◆ VisitFloorLayer()

void VisitFloorLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a floor layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 467 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

468 {
469  boost::ignore_unused(name);
470 
471  auto flatBufferFloorBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Floor);
472  auto flatBufferFloorLayer = serializer::CreateFloorLayer(m_flatBufferBuilder, flatBufferFloorBaseLayer);
473 
474  CreateAnyLayer(flatBufferFloorLayer.o, serializer::Layer::Layer_FloorLayer);
475 }

◆ VisitFullyConnectedLayer()

void VisitFullyConnectedLayer ( const armnn::IConnectableLayer layer,
const armnn::FullyConnectedDescriptor fullyConnectedDescriptor,
const armnn::ConstTensor weights,
const armnn::Optional< armnn::ConstTensor > &  biases,
const char *  name = nullptr 
)
overridevirtual

Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
fullyConnectedDescriptor- Description of the fully connected layer.
weights- Tensor for the weights data.
biases- Optional tensor for the bias data.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 998 of file Serializer.cpp.

References FullyConnectedDescriptor::m_BiasEnabled, FullyConnectedDescriptor::m_TransposeWeightMatrix, and OptionalReferenceSwitch< IsReference, T >::value().

Referenced by SerializerVisitor::GetSerializedLayers().

1003 {
1004  boost::ignore_unused(name);
1005 
1006  // Create FlatBuffer BaseLayer
1007  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_FullyConnected);
1008 
1009  // Create FlatBuffer FullyConnectedDescriptor
1010  auto flatBufferDescriptor =
1011  serializer::CreateFullyConnectedDescriptor(m_flatBufferBuilder,
1012  fullyConnectedDescriptor.m_BiasEnabled,
1013  fullyConnectedDescriptor.m_TransposeWeightMatrix);
1014 
1015  // Create FlatBuffer weights data
1016  auto flatBufferWeights = CreateConstTensorInfo(weights);
1017 
1018  // Create FlatBuffer bias data
1019  flatbuffers::Offset<serializer::ConstTensor> flatBufferBiases;
1020  if (fullyConnectedDescriptor.m_BiasEnabled)
1021  {
1022  flatBufferBiases = CreateConstTensorInfo(biases.value());
1023  }
1024 
1025  // Create FlatBuffer FullyConnectedLayer
1026  auto flatBufferLayer = serializer::CreateFullyConnectedLayer(m_flatBufferBuilder,
1027  flatBufferBaseLayer,
1028  flatBufferDescriptor,
1029  flatBufferWeights,
1030  flatBufferBiases);
1031 
1032  // Add created FullyConnectedLayer to the FlatBufferLayers
1033  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_FullyConnectedLayer);
1034 }
bool m_BiasEnabled
Enable/disable bias.
bool m_TransposeWeightMatrix
Enable/disable transpose weight matrix.

◆ VisitGatherLayer()

void VisitGatherLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a Gather layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 477 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

478 {
479  boost::ignore_unused(name);
480 
481  auto fbGatherBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Gather);
482  auto flatBufferLayer = serializer::CreateGatherLayer(m_flatBufferBuilder, fbGatherBaseLayer);
483 
484  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_GatherLayer);
485 }

◆ VisitGreaterLayer()

void VisitGreaterLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a Greater layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 487 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

488 {
489  boost::ignore_unused(name);
490 
491  auto fbGreaterBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Greater);
492  auto fbGreaterLayer = serializer::CreateGreaterLayer(m_flatBufferBuilder, fbGreaterBaseLayer);
493 
494  CreateAnyLayer(fbGreaterLayer.o, serializer::Layer::Layer_GreaterLayer);
495 }

◆ VisitInputLayer()

void VisitInputLayer ( const armnn::IConnectableLayer layer,
armnn::LayerBindingId  id,
const char *  name = nullptr 
)
overridevirtual

Function that an InputLayer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
id- User generated id to uniquely identify a particular input. The same id needs to be specified when passing the inputs to the IRuntime::EnqueueWorkload() function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 83 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

84 {
85  boost::ignore_unused(name);
86 
87  // Create FlatBuffer BaseLayer
88  auto flatBufferInputBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Input);
89 
90  // Create FlatBuffer BindableBaseLayer
91  auto flatBufferInputBindableBaseLayer = serializer::CreateBindableLayerBase(m_flatBufferBuilder,
92  flatBufferInputBaseLayer,
93  id);
94  // Push layer binding id to outputIds.
95  m_inputIds.push_back(id);
96 
97  // Create the FlatBuffer InputLayer
98  auto flatBufferInputLayer = serializer::CreateInputLayer(m_flatBufferBuilder, flatBufferInputBindableBaseLayer);
99 
100  // Add the AnyLayer to the FlatBufferLayers
101  CreateAnyLayer(flatBufferInputLayer.o, serializer::Layer::Layer_InputLayer);
102 }

◆ VisitInstanceNormalizationLayer()

void VisitInstanceNormalizationLayer ( const armnn::IConnectableLayer layer,
const armnn::InstanceNormalizationDescriptor desc,
const char *  name = nullptr 
)
overridevirtual

Function that an instance normalization layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
desc- Parameters for the instance normalization operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 497 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), InstanceNormalizationDescriptor::m_Beta, InstanceNormalizationDescriptor::m_DataLayout, InstanceNormalizationDescriptor::m_Eps, and InstanceNormalizationDescriptor::m_Gamma.

Referenced by SerializerVisitor::GetSerializedLayers().

501 {
502  boost::ignore_unused(name);
503 
504  auto fbDescriptor = serializer::CreateInstanceNormalizationDescriptor(
505  m_flatBufferBuilder,
506  instanceNormalizationDescriptor.m_Gamma,
507  instanceNormalizationDescriptor.m_Beta,
508  instanceNormalizationDescriptor.m_Eps,
509  GetFlatBufferDataLayout(instanceNormalizationDescriptor.m_DataLayout));
510 
511  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_InstanceNormalization);
512  auto fbLayer = serializer::CreateInstanceNormalizationLayer(m_flatBufferBuilder, fbBaseLayer, fbDescriptor);
513 
514  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_InstanceNormalizationLayer);
515 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitL2NormalizationLayer()

void VisitL2NormalizationLayer ( const armnn::IConnectableLayer layer,
const armnn::L2NormalizationDescriptor desc,
const char *  name = nullptr 
)
overridevirtual

Function that an L2 normalization layer should call back to when its Accept(ILayerVisitor&) function is invoked. Normalization is performed along dimension 1, but requires a 4d input.

Parameters
layer- pointer to the layer which is calling back to this visit function.
desc- Parameters for the L2 normalization operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 517 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), L2NormalizationDescriptor::m_DataLayout, and L2NormalizationDescriptor::m_Eps.

Referenced by SerializerVisitor::GetSerializedLayers().

520 {
521  boost::ignore_unused(name);
522 
523  // Create FlatBuffer BaseLayer
524  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_L2Normalization);
525 
526  // Create the FlatBuffer L2Normalization Descriptor
527  auto fbDescriptor = serializer::CreateL2NormalizationDescriptor(
528  m_flatBufferBuilder,
529  GetFlatBufferDataLayout(l2NormalizationDescriptor.m_DataLayout),
530  l2NormalizationDescriptor.m_Eps);
531 
532  // Create FlatBuffer layer
533  auto fbLayer = serializer::CreateL2NormalizationLayer(m_flatBufferBuilder, fbBaseLayer, fbDescriptor);
534 
535  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_L2NormalizationLayer);
536 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitLogSoftmaxLayer()

void VisitLogSoftmaxLayer ( const armnn::IConnectableLayer layer,
const armnn::LogSoftmaxDescriptor logSoftmaxDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a log softmax layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
logSoftmaxDescriptor- LogSoftmaxDescriptor to configure the log softmax.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 538 of file Serializer.cpp.

References SoftmaxDescriptor::m_Axis, and SoftmaxDescriptor::m_Beta.

Referenced by SerializerVisitor::GetSerializedLayers().

541 {
542  boost::ignore_unused(name);
543 
544  // Create FlatBuffer BaseLayer
545  auto flatBufferLogSoftmaxBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_LogSoftmax);
546 
547  // Create the FlatBuffer LogSoftmaxDescriptor
548  auto flatBufferLogSoftmaxDesc =
549  serializer::CreateLogSoftmaxDescriptor(m_flatBufferBuilder,
550  logSoftmaxDescriptor.m_Beta,
551  logSoftmaxDescriptor.m_Axis);
552 
553  // Create the FlatBuffer LogSoftmaxLayer
554  auto flatBufferLogSoftmaxLayer =
555  serializer::CreateLogSoftmaxLayer(m_flatBufferBuilder,
556  flatBufferLogSoftmaxBaseLayer,
557  flatBufferLogSoftmaxDesc);
558 
559  CreateAnyLayer(flatBufferLogSoftmaxLayer.o, serializer::Layer::Layer_LogSoftmaxLayer);
560 }
float m_Beta
Exponentiation value.
int m_Axis
Scalar, defaulted to the last index (-1), specifying the dimension the activation will be performed o...

◆ VisitLstmLayer()

void VisitLstmLayer ( const armnn::IConnectableLayer layer,
const armnn::LstmDescriptor descriptor,
const armnn::LstmInputParams params,
const char *  name = nullptr 
)
overridevirtual

Function an Lstm layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
descriptor- Parameters controlling the operation of the Lstm operation.
params- The weights and biases for the LSTM cell.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 562 of file Serializer.cpp.

References LstmDescriptor::m_ActivationFunc, LstmInputParams::m_CellBias, LstmInputParams::m_CellLayerNormWeights, LstmInputParams::m_CellToForgetWeights, LstmInputParams::m_CellToInputWeights, LstmInputParams::m_CellToOutputWeights, LstmDescriptor::m_CifgEnabled, LstmDescriptor::m_ClippingThresCell, LstmDescriptor::m_ClippingThresProj, LstmInputParams::m_ForgetGateBias, LstmInputParams::m_ForgetLayerNormWeights, LstmInputParams::m_InputGateBias, LstmInputParams::m_InputLayerNormWeights, LstmInputParams::m_InputToCellWeights, LstmInputParams::m_InputToForgetWeights, LstmInputParams::m_InputToInputWeights, LstmInputParams::m_InputToOutputWeights, LstmDescriptor::m_LayerNormEnabled, LstmInputParams::m_OutputGateBias, LstmInputParams::m_OutputLayerNormWeights, LstmDescriptor::m_PeepholeEnabled, LstmInputParams::m_ProjectionBias, LstmDescriptor::m_ProjectionEnabled, LstmInputParams::m_ProjectionWeights, LstmInputParams::m_RecurrentToCellWeights, LstmInputParams::m_RecurrentToForgetWeights, LstmInputParams::m_RecurrentToInputWeights, and LstmInputParams::m_RecurrentToOutputWeights.

Referenced by SerializerVisitor::GetSerializedLayers().

566 {
567  boost::ignore_unused(name);
568 
569  auto fbLstmBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Lstm);
570 
571  auto fbLstmDescriptor = serializer::CreateLstmDescriptor(
572  m_flatBufferBuilder,
573  descriptor.m_ActivationFunc,
574  descriptor.m_ClippingThresCell,
575  descriptor.m_ClippingThresProj,
576  descriptor.m_CifgEnabled,
577  descriptor.m_PeepholeEnabled,
578  descriptor.m_ProjectionEnabled,
579  descriptor.m_LayerNormEnabled);
580 
581  // Get mandatory input parameters
582  auto inputToForgetWeights = CreateConstTensorInfo(*params.m_InputToForgetWeights);
583  auto inputToCellWeights = CreateConstTensorInfo(*params.m_InputToCellWeights);
584  auto inputToOutputWeights = CreateConstTensorInfo(*params.m_InputToOutputWeights);
585  auto recurrentToForgetWeights = CreateConstTensorInfo(*params.m_RecurrentToForgetWeights);
586  auto recurrentToCellWeights = CreateConstTensorInfo(*params.m_RecurrentToCellWeights);
587  auto recurrentToOutputWeights = CreateConstTensorInfo(*params.m_RecurrentToOutputWeights);
588  auto forgetGateBias = CreateConstTensorInfo(*params.m_ForgetGateBias);
589  auto cellBias = CreateConstTensorInfo(*params.m_CellBias);
590  auto outputGateBias = CreateConstTensorInfo(*params.m_OutputGateBias);
591 
592  //Define optional parameters, these will be set depending on configuration in Lstm descriptor
593  flatbuffers::Offset<serializer::ConstTensor> inputToInputWeights;
594  flatbuffers::Offset<serializer::ConstTensor> recurrentToInputWeights;
595  flatbuffers::Offset<serializer::ConstTensor> cellToInputWeights;
596  flatbuffers::Offset<serializer::ConstTensor> inputGateBias;
597  flatbuffers::Offset<serializer::ConstTensor> projectionWeights;
598  flatbuffers::Offset<serializer::ConstTensor> projectionBias;
599  flatbuffers::Offset<serializer::ConstTensor> cellToForgetWeights;
600  flatbuffers::Offset<serializer::ConstTensor> cellToOutputWeights;
601  flatbuffers::Offset<serializer::ConstTensor> inputLayerNormWeights;
602  flatbuffers::Offset<serializer::ConstTensor> forgetLayerNormWeights;
603  flatbuffers::Offset<serializer::ConstTensor> cellLayerNormWeights;
604  flatbuffers::Offset<serializer::ConstTensor> outputLayerNormWeights;
605 
606  if (!descriptor.m_CifgEnabled)
607  {
608  inputToInputWeights = CreateConstTensorInfo(*params.m_InputToInputWeights);
609  recurrentToInputWeights = CreateConstTensorInfo(*params.m_RecurrentToInputWeights);
610  cellToInputWeights = CreateConstTensorInfo(*params.m_CellToInputWeights);
611  inputGateBias = CreateConstTensorInfo(*params.m_InputGateBias);
612  }
613 
614  if (descriptor.m_ProjectionEnabled)
615  {
616  projectionWeights = CreateConstTensorInfo(*params.m_ProjectionWeights);
617  projectionBias = CreateConstTensorInfo(*params.m_ProjectionBias);
618  }
619 
620  if (descriptor.m_PeepholeEnabled)
621  {
622  cellToForgetWeights = CreateConstTensorInfo(*params.m_CellToForgetWeights);
623  cellToOutputWeights = CreateConstTensorInfo(*params.m_CellToOutputWeights);
624  }
625 
626  if (descriptor.m_LayerNormEnabled)
627  {
628  if (!descriptor.m_CifgEnabled)
629  {
630  inputLayerNormWeights = CreateConstTensorInfo((*params.m_InputLayerNormWeights));
631  }
632  forgetLayerNormWeights = CreateConstTensorInfo(*params.m_ForgetLayerNormWeights);
633  cellLayerNormWeights = CreateConstTensorInfo(*params.m_CellLayerNormWeights);
634  outputLayerNormWeights = CreateConstTensorInfo(*params.m_OutputLayerNormWeights);
635  }
636 
637  auto fbLstmParams = serializer::CreateLstmInputParams(
638  m_flatBufferBuilder,
639  inputToForgetWeights,
640  inputToCellWeights,
641  inputToOutputWeights,
642  recurrentToForgetWeights,
643  recurrentToCellWeights,
644  recurrentToOutputWeights,
645  forgetGateBias,
646  cellBias,
647  outputGateBias,
648  inputToInputWeights,
649  recurrentToInputWeights,
650  cellToInputWeights,
651  inputGateBias,
652  projectionWeights,
653  projectionBias,
654  cellToForgetWeights,
655  cellToOutputWeights,
656  inputLayerNormWeights,
657  forgetLayerNormWeights,
658  cellLayerNormWeights,
659  outputLayerNormWeights);
660 
661  auto fbLstmLayer = serializer::CreateLstmLayer(
662  m_flatBufferBuilder,
663  fbLstmBaseLayer,
664  fbLstmDescriptor,
665  fbLstmParams);
666 
667  CreateAnyLayer(fbLstmLayer.o, serializer::Layer::Layer_LstmLayer);
668 }
bool m_ProjectionEnabled
Enable/disable the projection layer.
const ConstTensor * m_InputToOutputWeights
Definition: LstmParams.hpp:43
const ConstTensor * m_CellToForgetWeights
Definition: LstmParams.hpp:49
const ConstTensor * m_InputToForgetWeights
Definition: LstmParams.hpp:41
float m_ClippingThresCell
Clipping threshold value for the cell state.
const ConstTensor * m_RecurrentToOutputWeights
Definition: LstmParams.hpp:47
bool m_CifgEnabled
Enable/disable cifg (coupled input & forget gate).
const ConstTensor * m_OutputLayerNormWeights
Definition: LstmParams.hpp:60
const ConstTensor * m_InputLayerNormWeights
Definition: LstmParams.hpp:57
const ConstTensor * m_CellBias
Definition: LstmParams.hpp:53
const ConstTensor * m_ForgetLayerNormWeights
Definition: LstmParams.hpp:58
bool m_PeepholeEnabled
Enable/disable peephole.
const ConstTensor * m_OutputGateBias
Definition: LstmParams.hpp:54
const ConstTensor * m_InputToCellWeights
Definition: LstmParams.hpp:42
const ConstTensor * m_RecurrentToCellWeights
Definition: LstmParams.hpp:46
const ConstTensor * m_ProjectionWeights
Definition: LstmParams.hpp:55
const ConstTensor * m_CellToInputWeights
Definition: LstmParams.hpp:48
const ConstTensor * m_RecurrentToForgetWeights
Definition: LstmParams.hpp:45
const ConstTensor * m_CellLayerNormWeights
Definition: LstmParams.hpp:59
const ConstTensor * m_RecurrentToInputWeights
Definition: LstmParams.hpp:44
const ConstTensor * m_ForgetGateBias
Definition: LstmParams.hpp:52
const ConstTensor * m_InputGateBias
Definition: LstmParams.hpp:51
const ConstTensor * m_InputToInputWeights
Definition: LstmParams.hpp:40
const ConstTensor * m_ProjectionBias
Definition: LstmParams.hpp:56
uint32_t m_ActivationFunc
The activation function to use. 0: None, 1: Relu, 3: Relu6, 4: Tanh, 6: Sigmoid.
bool m_LayerNormEnabled
Enable/disable layer normalization.
const ConstTensor * m_CellToOutputWeights
Definition: LstmParams.hpp:50
float m_ClippingThresProj
Clipping threshold value for the projection.

◆ VisitMaximumLayer()

void VisitMaximumLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a Maximum layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 670 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

671 {
672  boost::ignore_unused(name);
673 
674  auto fbMaximumBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Maximum);
675  auto fbMaximumLayer = serializer::CreateMaximumLayer(m_flatBufferBuilder, fbMaximumBaseLayer);
676 
677  CreateAnyLayer(fbMaximumLayer.o, serializer::Layer::Layer_MaximumLayer);
678 }

◆ VisitMeanLayer()

void VisitMeanLayer ( const armnn::IConnectableLayer layer,
const armnn::MeanDescriptor meanDescriptor,
const char *  name 
)
overridevirtual

Function a Mean layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
meanDescriptor- Parameters for the mean operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 680 of file Serializer.cpp.

References MeanDescriptor::m_Axis, and MeanDescriptor::m_KeepDims.

Referenced by SerializerVisitor::GetSerializedLayers().

683 {
684  boost::ignore_unused(name);
685 
686  auto fbMeanBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Mean);
687  auto fbMeanDescriptor = serializer::CreateMeanDescriptor(m_flatBufferBuilder,
688  m_flatBufferBuilder.CreateVector(descriptor.m_Axis),
689  descriptor.m_KeepDims);
690 
691  auto fbMeanLayer = serializer::CreateMeanLayer(m_flatBufferBuilder,
692  fbMeanBaseLayer,
693  fbMeanDescriptor);
694 
695  CreateAnyLayer(fbMeanLayer.o, serializer::Layer::Layer_MeanLayer);
696 }

◆ VisitMergeLayer()

void VisitMergeLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function that a merge layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 708 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

709 {
710  boost::ignore_unused(name);
711 
712  auto fbMergeBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Merge);
713  auto fbMergeLayer = serializer::CreateMergeLayer(m_flatBufferBuilder, fbMergeBaseLayer);
714 
715  CreateAnyLayer(fbMergeLayer.o, serializer::Layer::Layer_MergeLayer);
716 }

◆ VisitMergerLayer()

void VisitMergerLayer ( const armnn::IConnectableLayer layer,
const armnn::MergerDescriptor mergerDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a merger layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
mergerDescriptor- MergerDescriptor (synonym for OriginsDescriptor) to configure the concatenation process. Number of Views must be equal to the number of inputs, and their order must match - e.g. first view corresponds to the first input, second view to the second input, etc....
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 718 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

721 {
722  VisitConcatLayer(layer, mergerDescriptor, name);
723 }
void VisitConcatLayer(const armnn::IConnectableLayer *layer, const armnn::ConcatDescriptor &concatDescriptor, const char *name=nullptr) override
Definition: Serializer.cpp:725

◆ VisitMinimumLayer()

void VisitMinimumLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a Minimum layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 698 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

699 {
700  boost::ignore_unused(name);
701 
702  auto fbMinimumBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Minimum);
703  auto fbMinimumLayer = serializer::CreateMinimumLayer(m_flatBufferBuilder, fbMinimumBaseLayer);
704 
705  CreateAnyLayer(fbMinimumLayer.o, serializer::Layer::Layer_MinimumLayer);
706 }

◆ VisitMultiplicationLayer()

void VisitMultiplicationLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function that a multiplication layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 760 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

761 {
762  boost::ignore_unused(name);
763 
764  auto fbMultiplicationBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Multiplication);
765  auto fbMultiplicationLayer = serializer::CreateMultiplicationLayer(m_flatBufferBuilder,
766  fbMultiplicationBaseLayer);
767 
768  CreateAnyLayer(fbMultiplicationLayer.o, serializer::Layer::Layer_MultiplicationLayer);
769 }

◆ VisitNormalizationLayer()

void VisitNormalizationLayer ( const armnn::IConnectableLayer layer,
const armnn::NormalizationDescriptor normalizationDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a normalization layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
normalizationDescriptor- NormalizationDescriptor to configure the normalization.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1154 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), armnnSerializer::GetFlatBufferNormalizationAlgorithmChannel(), armnnSerializer::GetFlatBufferNormalizationAlgorithmMethod(), NormalizationDescriptor::m_Alpha, NormalizationDescriptor::m_Beta, NormalizationDescriptor::m_DataLayout, NormalizationDescriptor::m_K, NormalizationDescriptor::m_NormChannelType, NormalizationDescriptor::m_NormMethodType, and NormalizationDescriptor::m_NormSize.

Referenced by SerializerVisitor::GetSerializedLayers().

1157 {
1158  boost::ignore_unused(name);
1159 
1160  auto fbNormalizationBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Normalization);
1161 
1162  auto fbNormalizationDescriptor = serializer::CreateNormalizationDescriptor(
1163  m_flatBufferBuilder,
1164  GetFlatBufferNormalizationAlgorithmChannel(descriptor.m_NormChannelType),
1165  GetFlatBufferNormalizationAlgorithmMethod(descriptor.m_NormMethodType),
1166  descriptor.m_NormSize,
1167  descriptor.m_Alpha,
1168  descriptor.m_Beta,
1169  descriptor.m_K,
1170  GetFlatBufferDataLayout(descriptor.m_DataLayout));
1171 
1172  auto flatBufferLayer = serializer::CreateNormalizationLayer(m_flatBufferBuilder,
1173  fbNormalizationBaseLayer,
1174  fbNormalizationDescriptor);
1175 
1176  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_NormalizationLayer);
1177 }
armnnSerializer::NormalizationAlgorithmChannel GetFlatBufferNormalizationAlgorithmChannel(armnn::NormalizationAlgorithmChannel normalizationAlgorithmChannel)
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
armnnSerializer::NormalizationAlgorithmMethod GetFlatBufferNormalizationAlgorithmMethod(armnn::NormalizationAlgorithmMethod normalizationAlgorithmMethod)

◆ VisitOutputLayer()

void VisitOutputLayer ( const armnn::IConnectableLayer layer,
armnn::LayerBindingId  id,
const char *  name = nullptr 
)
overridevirtual

Function an output layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
id- User generated id to uniquely identify a particular output. The same id needs to be specified when passing the outputs to the IRuntime::EnqueueWorkload() function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 105 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

106 {
107  boost::ignore_unused(name);
108 
109  // Create FlatBuffer BaseLayer
110  auto flatBufferOutputBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Output);
111 
112  // Create FlatBuffer BindableBaseLayer
113  auto flatBufferOutputBindableBaseLayer = serializer::CreateBindableLayerBase(m_flatBufferBuilder,
114  flatBufferOutputBaseLayer,
115  id);
116  // Push layer binding id to outputIds.
117  m_outputIds.push_back(id);
118 
119  // Create the FlatBuffer OutputLayer
120  auto flatBufferOutputLayer = serializer::CreateOutputLayer(m_flatBufferBuilder, flatBufferOutputBindableBaseLayer);
121  // Add the AnyLayer to the FlatBufferLayers
122  CreateAnyLayer(flatBufferOutputLayer.o, serializer::Layer::Layer_OutputLayer);
123 }

◆ VisitPadLayer()

void VisitPadLayer ( const armnn::IConnectableLayer layer,
const armnn::PadDescriptor padDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a pad layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
paddings- n by 2 tensor, where n is the rank of the input tensor, such that paddings[i,0] indicates the amount of padding to add in front of dimension i, and paddings[i,1] indicates the amount of padding to add after the end of dimension i
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 771 of file Serializer.cpp.

References PadDescriptor::m_PadList, and PadDescriptor::m_PadValue.

Referenced by SerializerVisitor::GetSerializedLayers().

774 {
775  boost::ignore_unused(name);
776 
777  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Pad);
778 
779  std::vector<unsigned int> padList;
780  for (auto& p: padDescriptor.m_PadList)
781  {
782  padList.push_back(p.first);
783  padList.push_back(p.second);
784  }
785 
786  auto flatBufferPadDesc = serializer::CreatePadDescriptor(m_flatBufferBuilder,
787  m_flatBufferBuilder.CreateVector(padList),
788  padDescriptor.m_PadValue);
789 
790  auto flatBufferPadLayer = serializer::CreatePadLayer(m_flatBufferBuilder,
791  flatBufferBaseLayer,
792  flatBufferPadDesc);
793 
794  CreateAnyLayer(flatBufferPadLayer.o, serializer::Layer::Layer_PadLayer);
795 }
float m_PadValue
Optional value to use for padding, defaults to 0.
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension. First is the number of values to add before the tensor in ...

◆ VisitPermuteLayer()

void VisitPermuteLayer ( const armnn::IConnectableLayer layer,
const armnn::PermuteDescriptor permuteDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a permute layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
permuteDescriptor- PermuteDescriptor to configure the permute.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 797 of file Serializer.cpp.

References PermutationVector::GetSize(), and PermuteDescriptor::m_DimMappings.

Referenced by SerializerVisitor::GetSerializedLayers().

800 {
801  boost::ignore_unused(name);
802 
803  // Create FlatBuffer BaseLayer
804  auto flatBufferPermuteBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Permute);
805 
806  std::vector<unsigned int> dimMappings;
807  for (unsigned int i=0; i<permuteDescriptor.m_DimMappings.GetSize(); ++i)
808  {
809  dimMappings.push_back(permuteDescriptor.m_DimMappings[i]);
810  }
811 
812  auto flatBufferPermuteDesc = serializer::CreatePermuteDescriptor(m_flatBufferBuilder,
813  m_flatBufferBuilder.CreateVector(dimMappings));
814 
815  // Create the FlatBuffer PermuteLayer
816  auto flatBufferPermuteLayer = serializer::CreatePermuteLayer(m_flatBufferBuilder,
817  flatBufferPermuteBaseLayer,
818  flatBufferPermuteDesc);
819 
820  // Add the AnyLayer to the FlatBufferLayers
821  CreateAnyLayer(flatBufferPermuteLayer.o, serializer::Layer::Layer_PermuteLayer);
822 }
PermutationVector m_DimMappings
Indicates how to translate tensor elements from a given source into the target destination, when source and target potentially have different memory layouts e.g. {0U, 3U, 1U, 2U}.
SizeType GetSize() const
Definition: Types.hpp:199

◆ VisitPooling2dLayer()

void VisitPooling2dLayer ( const armnn::IConnectableLayer layer,
const armnn::Pooling2dDescriptor pooling2dDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a pooling layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
pooling2dDescriptor- Pooling2dDescriptor to configure the pooling.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 943 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), armnnSerializer::GetFlatBufferOutputShapeRounding(), armnnSerializer::GetFlatBufferPaddingMethod(), armnnSerializer::GetFlatBufferPoolingAlgorithm(), Pooling2dDescriptor::m_DataLayout, Pooling2dDescriptor::m_OutputShapeRounding, Pooling2dDescriptor::m_PadBottom, Pooling2dDescriptor::m_PaddingMethod, Pooling2dDescriptor::m_PadLeft, Pooling2dDescriptor::m_PadRight, Pooling2dDescriptor::m_PadTop, Pooling2dDescriptor::m_PoolHeight, Pooling2dDescriptor::m_PoolType, Pooling2dDescriptor::m_PoolWidth, Pooling2dDescriptor::m_StrideX, and Pooling2dDescriptor::m_StrideY.

Referenced by SerializerVisitor::GetSerializedLayers().

946 {
947  boost::ignore_unused(name);
948 
949  auto fbPooling2dBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Pooling2d);
950  auto fbPooling2dDescriptor = serializer::CreatePooling2dDescriptor(
951  m_flatBufferBuilder,
952  GetFlatBufferPoolingAlgorithm(pooling2dDescriptor.m_PoolType),
953  pooling2dDescriptor.m_PadLeft,
954  pooling2dDescriptor.m_PadRight,
955  pooling2dDescriptor.m_PadTop,
956  pooling2dDescriptor.m_PadBottom,
957  pooling2dDescriptor.m_PoolWidth,
958  pooling2dDescriptor.m_PoolHeight,
959  pooling2dDescriptor.m_StrideX,
960  pooling2dDescriptor.m_StrideY,
962  GetFlatBufferPaddingMethod(pooling2dDescriptor.m_PaddingMethod),
963  GetFlatBufferDataLayout(pooling2dDescriptor.m_DataLayout));
964 
965  auto fbPooling2dLayer = serializer::CreatePooling2dLayer(m_flatBufferBuilder,
966  fbPooling2dBaseLayer,
967  fbPooling2dDescriptor);
968 
969  CreateAnyLayer(fbPooling2dLayer.o, serializer::Layer::Layer_Pooling2dLayer);
970 }
armnnSerializer::OutputShapeRounding GetFlatBufferOutputShapeRounding(armnn::OutputShapeRounding outputShapeRounding)
uint32_t m_PoolHeight
Pooling height value.
uint32_t m_PadTop
Padding top value in the height dimension.
uint32_t m_PadRight
Padding right value in the width dimension.
armnnSerializer::PaddingMethod GetFlatBufferPaddingMethod(armnn::PaddingMethod paddingMethod)
armnnSerializer::PoolingAlgorithm GetFlatBufferPoolingAlgorithm(armnn::PoolingAlgorithm poolingAlgorithm)
uint32_t m_PoolWidth
Pooling width value.
uint32_t m_PadLeft
Padding left value in the width dimension.
PaddingMethod m_PaddingMethod
The padding method to be used. (Exclude, IgnoreValue).
OutputShapeRounding m_OutputShapeRounding
The rounding method for the output shape. (Floor, Ceiling).
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
PoolingAlgorithm m_PoolType
The pooling algorithm to use (Max. Average, L2).
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
uint32_t m_PadBottom
Padding bottom value in the height dimension.
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.

◆ VisitPreluLayer()

void VisitPreluLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function that a PReLU activation layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 972 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

974 {
975  boost::ignore_unused(name);
976 
977  // Create FlatBuffer BaseLayer
978  auto flatBufferPreluBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Prelu);
979 
980  // Create the FlatBuffer AdditionLayer
981  auto flatBufferPreluLayer = serializer::CreatePreluLayer(m_flatBufferBuilder, flatBufferPreluBaseLayer);
982 
983  // Add the AnyLayer to the FlatBufferLayers
984  CreateAnyLayer(flatBufferPreluLayer.o, serializer::Layer::Layer_PreluLayer);
985 }

◆ VisitQuantizedLstmLayer()

void VisitQuantizedLstmLayer ( const armnn::IConnectableLayer layer,
const armnn::QuantizedLstmInputParams params,
const char *  name = nullptr 
)
overridevirtual

Function a QuantizedLstm layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
params- The weights and biases for the Quantized LSTM cell
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1302 of file Serializer.cpp.

References armnn::Boolean, armnn::Float16, armnn::Float32, QuantizedLstmInputParams::GetCellBias(), TensorInfo::GetDataType(), armnnSerializer::GetFlatBufferConstTensorData(), armnnSerializer::GetFlatBufferDataType(), QuantizedLstmInputParams::GetForgetGateBias(), IConnectableLayer::GetGuid(), BaseTensor< MemoryType >::GetInfo(), QuantizedLstmInputParams::GetInputGateBias(), QuantizedLstmInputParams::GetInputToCellWeights(), QuantizedLstmInputParams::GetInputToForgetWeights(), QuantizedLstmInputParams::GetInputToInputWeights(), QuantizedLstmInputParams::GetInputToOutputWeights(), BaseTensor< MemoryType >::GetMemoryArea(), IConnectableLayer::GetName(), BaseTensor< MemoryType >::GetNumBytes(), TensorShape::GetNumDimensions(), QuantizedLstmInputParams::GetOutputGateBias(), TensorInfo::GetQuantizationOffset(), TensorInfo::GetQuantizationScale(), QuantizedLstmInputParams::GetRecurrentToCellWeights(), QuantizedLstmInputParams::GetRecurrentToForgetWeights(), QuantizedLstmInputParams::GetRecurrentToInputWeights(), QuantizedLstmInputParams::GetRecurrentToOutputWeights(), TensorInfo::GetShape(), armnn::QAsymmU8, armnn::QSymmS16, and armnn::Signed32.

Referenced by SerializerVisitor::GetSerializedLayers().

1305 {
1306  boost::ignore_unused(name);
1307 
1308  auto fbQuantizedLstmBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_QuantizedLstm);
1309 
1310  // Get input parameters
1311  auto inputToInputWeights = CreateConstTensorInfo(params.GetInputToInputWeights());
1312  auto inputToForgetWeights = CreateConstTensorInfo(params.GetInputToForgetWeights());
1313  auto inputToCellWeights = CreateConstTensorInfo(params.GetInputToCellWeights());
1314  auto inputToOutputWeights = CreateConstTensorInfo(params.GetInputToOutputWeights());
1315 
1316  auto recurrentToInputWeights = CreateConstTensorInfo(params.GetRecurrentToInputWeights());
1317  auto recurrentToForgetWeights = CreateConstTensorInfo(params.GetRecurrentToForgetWeights());
1318  auto recurrentToCellWeights = CreateConstTensorInfo(params.GetRecurrentToCellWeights());
1319  auto recurrentToOutputWeights = CreateConstTensorInfo(params.GetRecurrentToOutputWeights());
1320 
1321  auto inputGateBias = CreateConstTensorInfo(params.GetInputGateBias());
1322  auto forgetGateBias = CreateConstTensorInfo(params.GetForgetGateBias());
1323  auto cellBias = CreateConstTensorInfo(params.GetCellBias());
1324  auto outputGateBias = CreateConstTensorInfo(params.GetOutputGateBias());
1325 
1326  auto fbQuantizedLstmParams = serializer::CreateQuantizedLstmInputParams(
1327  m_flatBufferBuilder,
1328  inputToInputWeights,
1329  inputToForgetWeights,
1330  inputToCellWeights,
1331  inputToOutputWeights,
1332  recurrentToInputWeights,
1333  recurrentToForgetWeights,
1334  recurrentToCellWeights,
1335  recurrentToOutputWeights,
1336  inputGateBias,
1337  forgetGateBias,
1338  cellBias,
1339  outputGateBias);
1340 
1341  auto fbQuantizedLstmLayer = serializer::CreateQuantizedLstmLayer(
1342  m_flatBufferBuilder,
1343  fbQuantizedLstmBaseLayer,
1344  fbQuantizedLstmParams);
1345 
1346  CreateAnyLayer(fbQuantizedLstmLayer.o, serializer::Layer::Layer_QuantizedLstmLayer);
1347 }
const ConstTensor & GetInputToForgetWeights() const
const ConstTensor & GetInputGateBias() const
const ConstTensor & GetOutputGateBias() const
const ConstTensor & GetForgetGateBias() const
const ConstTensor & GetRecurrentToInputWeights() const
const ConstTensor & GetCellBias() const
const ConstTensor & GetRecurrentToOutputWeights() const
const ConstTensor & GetInputToInputWeights() const
const ConstTensor & GetRecurrentToForgetWeights() const
const ConstTensor & GetInputToCellWeights() const
const ConstTensor & GetRecurrentToCellWeights() const
const ConstTensor & GetInputToOutputWeights() const

◆ VisitQuantizeLayer()

void VisitQuantizeLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a quantize layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 987 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

988 {
989  boost::ignore_unused(name);
990 
991  auto fbQuantizeBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Quantize);
992  auto fbQuantizeLayer = serializer::CreateQuantizeLayer(m_flatBufferBuilder,
993  fbQuantizeBaseLayer);
994  CreateAnyLayer(fbQuantizeLayer.o, serializer::Layer::Layer_QuantizeLayer);
995 }

◆ VisitReshapeLayer()

void VisitReshapeLayer ( const armnn::IConnectableLayer layer,
const armnn::ReshapeDescriptor reshapeDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a reshape layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
reshapeDescriptor- Parameters for the reshape operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 825 of file Serializer.cpp.

References TensorShape::GetNumDimensions(), and ReshapeDescriptor::m_TargetShape.

Referenced by SerializerVisitor::GetSerializedLayers().

828 {
829  boost::ignore_unused(name);
830 
831  // Create FlatBuffer BaseLayer
832  auto flatBufferReshapeBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Reshape);
833 
834  std::vector<unsigned int> targetShape;
835  for (unsigned int i =0; i < reshapeDescriptor.m_TargetShape.GetNumDimensions(); i++)
836  {
837  targetShape.push_back(reshapeDescriptor.m_TargetShape[i]);
838  }
839 
840  auto flatBufferReshapeDesc = serializer::CreateReshapeDescriptor(m_flatBufferBuilder,
841  m_flatBufferBuilder.CreateVector(targetShape));
842 
843  // Create the FlatBuffer ReshapeLayer
844  auto flatBufferReshapeLayer = serializer::CreateReshapeLayer(m_flatBufferBuilder, flatBufferReshapeBaseLayer,
845  flatBufferReshapeDesc);
846 
847  // Add the AnyLayer to the FlatBufferLayers
848  CreateAnyLayer(flatBufferReshapeLayer.o, serializer::Layer::Layer_ReshapeLayer);
849 }
unsigned int GetNumDimensions() const
Definition: Tensor.hpp:43
TensorShape m_TargetShape
Target shape value.

◆ VisitResizeBilinearLayer()

void VisitResizeBilinearLayer ( const armnn::IConnectableLayer layer,
const armnn::ResizeBilinearDescriptor resizeDesc,
const char *  name = nullptr 
)
overridevirtual

Function that a resize bilinear layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
resizeDesc- Parameters for the resize operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 851 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), ResizeBilinearDescriptor::m_DataLayout, ResizeBilinearDescriptor::m_TargetHeight, and ResizeBilinearDescriptor::m_TargetWidth.

Referenced by SerializerVisitor::GetSerializedLayers().

854 {
855  boost::ignore_unused(name);
856 
857  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_ResizeBilinear);
858 
859  auto flatBufferDescriptor =
860  CreateResizeBilinearDescriptor(m_flatBufferBuilder,
861  resizeDescriptor.m_TargetWidth,
862  resizeDescriptor.m_TargetHeight,
863  GetFlatBufferDataLayout(resizeDescriptor.m_DataLayout));
864 
865  auto flatBufferLayer = serializer::CreateResizeBilinearLayer(m_flatBufferBuilder,
866  flatBufferBaseLayer,
867  flatBufferDescriptor);
868 
869  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ResizeBilinearLayer);
870 }
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitResizeLayer()

void VisitResizeLayer ( const armnn::IConnectableLayer layer,
const armnn::ResizeDescriptor resizeDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a resize layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
resizeDescriptor- Parameters for the resize operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 872 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), armnnSerializer::GetFlatBufferResizeMethod(), ResizeDescriptor::m_DataLayout, ResizeDescriptor::m_Method, ResizeDescriptor::m_TargetHeight, and ResizeDescriptor::m_TargetWidth.

Referenced by SerializerVisitor::GetSerializedLayers().

875 {
876  boost::ignore_unused(name);
877 
878  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Resize);
879 
880  auto flatBufferDescriptor =
881  CreateResizeDescriptor(m_flatBufferBuilder,
882  resizeDescriptor.m_TargetHeight,
883  resizeDescriptor.m_TargetWidth,
884  GetFlatBufferResizeMethod(resizeDescriptor.m_Method),
885  GetFlatBufferDataLayout(resizeDescriptor.m_DataLayout));
886 
887  auto flatBufferLayer = serializer::CreateResizeLayer(m_flatBufferBuilder,
888  flatBufferBaseLayer,
889  flatBufferDescriptor);
890 
891  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_ResizeLayer);
892 }
uint32_t m_TargetHeight
Target height value.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
armnnSerializer::ResizeMethod GetFlatBufferResizeMethod(armnn::ResizeMethod method)
uint32_t m_TargetWidth
Target width value.
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitRsqrtLayer()

void VisitRsqrtLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a Reciprocal of square root layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 894 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

895 {
896  boost::ignore_unused(name);
897 
898  auto fbRsqrtBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Rsqrt);
899  auto fbRsqrtLayer = serializer::CreateRsqrtLayer(m_flatBufferBuilder, fbRsqrtBaseLayer);
900 
901  CreateAnyLayer(fbRsqrtLayer.o, serializer::Layer::Layer_RsqrtLayer);
902 }

◆ VisitSliceLayer()

void VisitSliceLayer ( const armnn::IConnectableLayer layer,
const armnn::SliceDescriptor sliceDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a slice layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
sliceDescriptor- SliceDescriptor to configure the slice operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 904 of file Serializer.cpp.

References SliceDescriptor::m_Begin, and SliceDescriptor::m_Size.

Referenced by SerializerVisitor::GetSerializedLayers().

907 {
908  boost::ignore_unused(name);
909 
910  auto fbSliceBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Slice);
911  auto fbSliceDescriptor = CreateSliceDescriptor(m_flatBufferBuilder,
912  m_flatBufferBuilder.CreateVector(sliceDescriptor.m_Begin),
913  m_flatBufferBuilder.CreateVector(sliceDescriptor.m_Size));
914 
915  auto fbSliceLayer = serializer::CreateSliceLayer(m_flatBufferBuilder, fbSliceBaseLayer, fbSliceDescriptor);
916 
917  CreateAnyLayer(fbSliceLayer.o, serializer::Layer::Layer_SliceLayer);
918 }
std::vector< unsigned int > m_Begin
Beginning indices of the slice in each dimension.
std::vector< unsigned int > m_Size
Size of the slice in each dimension.

◆ VisitSoftmaxLayer()

void VisitSoftmaxLayer ( const armnn::IConnectableLayer layer,
const armnn::SoftmaxDescriptor softmaxDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a softmax layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
softmaxDescriptor- SoftmaxDescriptor to configure the softmax.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 921 of file Serializer.cpp.

References SoftmaxDescriptor::m_Beta.

Referenced by SerializerVisitor::GetSerializedLayers().

924 {
925  boost::ignore_unused(name);
926 
927  // Create FlatBuffer BaseLayer
928  auto flatBufferSoftmaxBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Softmax);
929 
930  // Create the FlatBuffer SoftmaxDescriptor
931  auto flatBufferSoftmaxDesc =
932  serializer::CreateSoftmaxDescriptor(m_flatBufferBuilder, softmaxDescriptor.m_Beta);
933 
934  // Create the FlatBuffer SoftmaxLayer
935  auto flatBufferSoftmaxLayer =
936  serializer::CreateSoftmaxLayer(m_flatBufferBuilder,
937  flatBufferSoftmaxBaseLayer,
938  flatBufferSoftmaxDesc);
939 
940  CreateAnyLayer(flatBufferSoftmaxLayer.o, serializer::Layer::Layer_SoftmaxLayer);
941 }
float m_Beta
Exponentiation value.

◆ VisitSpaceToBatchNdLayer()

void VisitSpaceToBatchNdLayer ( const armnn::IConnectableLayer layer,
const armnn::SpaceToBatchNdDescriptor spaceToBatchNdDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a space to batch layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
spaceToBatchNdDescriptor- Parameters for the space to batch operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1037 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), SpaceToBatchNdDescriptor::m_BlockShape, SpaceToBatchNdDescriptor::m_DataLayout, and SpaceToBatchNdDescriptor::m_PadList.

Referenced by SerializerVisitor::GetSerializedLayers().

1040 {
1041  boost::ignore_unused(name);
1042 
1043  // Create FlatBuffer BaseLayer
1044  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_SpaceToBatchNd);
1045 
1046  std::vector<unsigned int> padList;
1047  padList.reserve(spaceToBatchNdDescriptor.m_PadList.size()*2);
1048  for (auto& pad : spaceToBatchNdDescriptor.m_PadList)
1049  {
1050  padList.push_back(pad.first);
1051  padList.push_back(pad.second);
1052  }
1053 
1054  auto flatBufferDescriptor =
1055  CreateSpaceToBatchNdDescriptor(m_flatBufferBuilder,
1056  m_flatBufferBuilder.CreateVector(spaceToBatchNdDescriptor.m_BlockShape),
1057  m_flatBufferBuilder.CreateVector(padList),
1058  GetFlatBufferDataLayout(spaceToBatchNdDescriptor.m_DataLayout));
1059 
1060  auto flatBufferLayer = serializer::CreateSpaceToBatchNdLayer(m_flatBufferBuilder,
1061  flatBufferBaseLayer,
1062  flatBufferDescriptor);
1063 
1064  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_SpaceToBatchNdLayer);
1065 }
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding values for the input dimension: heightPad{top, bottom} widthPad{left, right}.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
std::vector< unsigned int > m_BlockShape
Block shape value.
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitSpaceToDepthLayer()

void VisitSpaceToDepthLayer ( const armnn::IConnectableLayer layer,
const armnn::SpaceToDepthDescriptor spaceToDepthDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a space to depth layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
spaceToDepthDescriptor- Parameters for the space to depth operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1068 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), SpaceToDepthDescriptor::m_BlockSize, and SpaceToDepthDescriptor::m_DataLayout.

Referenced by SerializerVisitor::GetSerializedLayers().

1071 {
1072  boost::ignore_unused(name);
1073 
1074  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_SpaceToDepth);
1075  auto flatBufferDescriptor =
1076  CreateSpaceToDepthDescriptor(m_flatBufferBuilder,
1077  spaceToDepthDescriptor.m_BlockSize,
1078  GetFlatBufferDataLayout(spaceToDepthDescriptor.m_DataLayout));
1079 
1080  auto flatBufferLayer = serializer::CreateSpaceToDepthLayer(m_flatBufferBuilder,
1081  flatBufferBaseLayer,
1082  flatBufferDescriptor);
1083 
1084  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_SpaceToDepthLayer);
1085 }
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
unsigned int m_BlockSize
Scalar specifying the input block size. It must be >= 1.
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)

◆ VisitSplitterLayer()

void VisitSplitterLayer ( const armnn::IConnectableLayer layer,
const armnn::ViewsDescriptor splitterDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a splitter layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
splitterDescriptor- ViewsDescriptor 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....
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1088 of file Serializer.cpp.

References OriginsDescriptor::GetConcatAxis(), OriginsDescriptor::GetNumDimensions(), ViewsDescriptor::GetNumDimensions(), OriginsDescriptor::GetNumViews(), ViewsDescriptor::GetNumViews(), ViewsDescriptor::GetOrigins(), ViewsDescriptor::GetViewOrigin(), and ViewsDescriptor::GetViewSizes().

Referenced by SerializerVisitor::GetSerializedLayers().

1091 {
1092  boost::ignore_unused(name);
1093 
1094  // Create FlatBuffer ViewOrigins
1095  std::vector<flatbuffers::Offset<UintVector>> flatBufferViewOrigins;
1096  flatBufferViewOrigins.reserve(viewsDescriptor.GetNumViews());
1097 
1098  for(unsigned int vIdx = 0; vIdx < viewsDescriptor.GetNumViews(); ++vIdx)
1099  {
1100  std::vector<uint32_t> viewOrigin;
1101  viewOrigin.reserve(viewsDescriptor.GetNumDimensions());
1102 
1103  // Copy vector
1104  for(unsigned int dIdx = 0; dIdx < viewsDescriptor.GetNumDimensions(); ++dIdx)
1105  {
1106  viewOrigin.push_back(viewsDescriptor.GetViewOrigin(vIdx)[dIdx]);
1107  }
1108 
1109  flatBufferViewOrigins.push_back(CreateUintVector(m_flatBufferBuilder,
1110  m_flatBufferBuilder.CreateVector(viewOrigin)));
1111  }
1112 
1113  // Create FlatBuffer OriginsDescriptor
1114  auto flatBufferOriginDescriptor = CreateOriginsDescriptor(m_flatBufferBuilder,
1115  viewsDescriptor.GetOrigins().GetConcatAxis(),
1116  viewsDescriptor.GetOrigins().GetNumViews(),
1117  viewsDescriptor.GetOrigins().GetNumDimensions(),
1118  m_flatBufferBuilder.CreateVector(flatBufferViewOrigins));
1119 
1120  // Create FlatBuffer ViewOrigins
1121  std::vector<flatbuffers::Offset<UintVector>> flatBufferViewSizes;
1122  flatBufferViewSizes.reserve(viewsDescriptor.GetNumViews());
1123 
1124  for(unsigned int vIdx = 0; vIdx < viewsDescriptor.GetNumViews(); ++vIdx)
1125  {
1126  std::vector<uint32_t> viewSize;
1127  viewSize.reserve(viewsDescriptor.GetNumDimensions());
1128 
1129  // Copy vector
1130  for(unsigned int dIdx = 0; dIdx < viewsDescriptor.GetNumDimensions(); ++dIdx)
1131  {
1132  viewSize.push_back(viewsDescriptor.GetViewSizes(vIdx)[dIdx]);
1133  }
1134 
1135  flatBufferViewSizes.push_back(CreateUintVector(m_flatBufferBuilder,
1136  m_flatBufferBuilder.CreateVector(viewSize)));
1137  }
1138 
1139  // Create FlatBuffer ViewsDescriptor
1140  auto flatBufferViewsDescriptor = CreateViewsDescriptor(m_flatBufferBuilder,
1141  flatBufferOriginDescriptor,
1142  m_flatBufferBuilder.CreateVector(flatBufferViewSizes));
1143 
1144  // Create FlatBuffer BaseLayer
1145  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Splitter);
1146 
1147  auto flatBufferSplitterLayer = serializer::CreateSplitterLayer(m_flatBufferBuilder,
1148  flatBufferBaseLayer,
1149  flatBufferViewsDescriptor);
1150 
1151  CreateAnyLayer(flatBufferSplitterLayer.o, serializer::Layer::Layer_SplitterLayer);
1152 }

◆ VisitStackLayer()

void VisitStackLayer ( const armnn::IConnectableLayer layer,
const armnn::StackDescriptor stackDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a stack layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
stackDescriptor- Parameters for the stack operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1179 of file Serializer.cpp.

References TensorShape::GetNumDimensions(), StackDescriptor::m_Axis, StackDescriptor::m_InputShape, and StackDescriptor::m_NumInputs.

Referenced by SerializerVisitor::GetSerializedLayers().

1182 {
1183  boost::ignore_unused(name);
1184 
1185  auto stackBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Stack);
1186 
1187  std::vector<unsigned int> inputShape;
1188  for (unsigned int i =0; i < stackDescriptor.m_InputShape.GetNumDimensions(); i++)
1189  {
1190  inputShape.push_back(stackDescriptor.m_InputShape[i]);
1191  }
1192 
1193  auto flatBufferStackDescriptor = CreateStackDescriptor(m_flatBufferBuilder,
1194  stackDescriptor.m_Axis,
1195  stackDescriptor.m_NumInputs,
1196  m_flatBufferBuilder.CreateVector(inputShape));
1197 
1198  auto stackLayer = serializer::CreateStackLayer(m_flatBufferBuilder, stackBaseLayer, flatBufferStackDescriptor);
1199  CreateAnyLayer(stackLayer.o, serializer::Layer::Layer_StackLayer);
1200 }
uint32_t m_Axis
0-based axis along which to stack the input tensors.
unsigned int GetNumDimensions() const
Definition: Tensor.hpp:43
TensorShape m_InputShape
Required shape of all input tensors.
uint32_t m_NumInputs
Number of input tensors.

◆ VisitStandInLayer()

void VisitStandInLayer ( const armnn::IConnectableLayer layer,
const armnn::StandInDescriptor standInDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a StandInLayer should call back to when its Accept(ILaterVisitor&) function is invoked

Parameters
layer- pointer to the layer which is calling back to this visit function.
standInDescriptor- Parameters for the stand-in layer.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1202 of file Serializer.cpp.

References StandInDescriptor::m_NumInputs, and StandInDescriptor::m_NumOutputs.

Referenced by SerializerVisitor::GetSerializedLayers().

1205 {
1206  boost::ignore_unused(name);
1207 
1208  auto fbDescriptor = serializer::CreateStandInDescriptor(m_flatBufferBuilder,
1209  standInDescriptor.m_NumInputs,
1210  standInDescriptor.m_NumOutputs);
1211 
1212  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_StandIn);
1213  auto fbLayer = serializer::CreateStandInLayer(m_flatBufferBuilder, fbBaseLayer, fbDescriptor);
1214 
1215  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_StandInLayer);
1216 }
uint32_t m_NumOutputs
Number of output tensors.
uint32_t m_NumInputs
Number of input tensors.

◆ VisitStridedSliceLayer()

void VisitStridedSliceLayer ( const armnn::IConnectableLayer layer,
const armnn::StridedSliceDescriptor stridedSliceDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a strided slice layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
stridedSliceDescriptor- Parameters for the strided slice operation.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1218 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), StridedSliceDescriptor::m_Begin, StridedSliceDescriptor::m_BeginMask, StridedSliceDescriptor::m_DataLayout, StridedSliceDescriptor::m_EllipsisMask, StridedSliceDescriptor::m_End, StridedSliceDescriptor::m_EndMask, StridedSliceDescriptor::m_NewAxisMask, StridedSliceDescriptor::m_ShrinkAxisMask, and StridedSliceDescriptor::m_Stride.

Referenced by SerializerVisitor::GetSerializedLayers().

1221 {
1222  boost::ignore_unused(name);
1223 
1224  auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_StridedSlice);
1225 
1226  auto flatBufferDescriptor =
1227  CreateStridedSliceDescriptor(m_flatBufferBuilder,
1228  m_flatBufferBuilder.CreateVector(stridedSliceDescriptor.m_Begin),
1229  m_flatBufferBuilder.CreateVector(stridedSliceDescriptor.m_End),
1230  m_flatBufferBuilder.CreateVector(stridedSliceDescriptor.m_Stride),
1231  stridedSliceDescriptor.m_BeginMask,
1232  stridedSliceDescriptor.m_EndMask,
1233  stridedSliceDescriptor.m_ShrinkAxisMask,
1234  stridedSliceDescriptor.m_EllipsisMask,
1235  stridedSliceDescriptor.m_NewAxisMask,
1236  GetFlatBufferDataLayout(stridedSliceDescriptor.m_DataLayout));
1237 
1238  auto flatBufferLayer = serializer::CreateStridedSliceLayer(m_flatBufferBuilder,
1239  flatBufferBaseLayer,
1240  flatBufferDescriptor);
1241 
1242  CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_StridedSliceLayer);
1243 }
std::vector< int > m_Stride
Stride values for the input that will be sliced.
int32_t m_NewAxisMask
New axis mask value. If set, the begin, end and stride is disregarded and a new 1 dimension is insert...
std::vector< int > m_Begin
Begin values for the input that will be sliced.
std::vector< int > m_End
End values for the input that will be sliced.
int32_t m_EllipsisMask
Ellipsis mask value.
int32_t m_BeginMask
Begin mask value. If set, then the begin is disregarded and the fullest range is used for the dimensi...
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
int32_t m_ShrinkAxisMask
Shrink axis mask value. If set, the nth specification shrinks the dimensionality by 1...
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
int32_t m_EndMask
End mask value. If set, then the end is disregarded and the fullest range is used for the dimension...

◆ VisitSubtractionLayer()

void VisitSubtractionLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a subtraction layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1245 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

1246 {
1247  boost::ignore_unused(name);
1248 
1249  auto fbSubtractionBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Subtraction);
1250  auto fbSubtractionLayer = serializer::CreateSubtractionLayer(m_flatBufferBuilder, fbSubtractionBaseLayer);
1251 
1252  CreateAnyLayer(fbSubtractionLayer.o, serializer::Layer::Layer_SubtractionLayer);
1253 }

◆ VisitSwitchLayer()

void VisitSwitchLayer ( const armnn::IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Function a switch layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1255 of file Serializer.cpp.

Referenced by SerializerVisitor::GetSerializedLayers().

1256 {
1257  boost::ignore_unused(name);
1258 
1259  auto fbSwitchBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Switch);
1260  auto fbSwitchLayer = serializer::CreateSwitchLayer(m_flatBufferBuilder, fbSwitchBaseLayer);
1261 
1262  CreateAnyLayer(fbSwitchLayer.o, serializer::Layer::Layer_SwitchLayer);
1263 }

◆ VisitTransposeConvolution2dLayer()

void VisitTransposeConvolution2dLayer ( const armnn::IConnectableLayer layer,
const armnn::TransposeConvolution2dDescriptor descriptor,
const armnn::ConstTensor weights,
const armnn::Optional< armnn::ConstTensor > &  biases,
const char *  name = nullptr 
)
overridevirtual

Function that a 2D transpose convolution layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
layer- pointer to the layer which is calling back to this visit function.
descriptor- Description of the 2D transpose convolution layer.
weights- Tensor for the weights data.
biases- Optional tensor for the bias data.
name- Optional name for the layer.

Implements ILayerVisitor.

Definition at line 1265 of file Serializer.cpp.

References armnnSerializer::GetFlatBufferDataLayout(), OptionalBase::has_value(), TransposeConvolution2dDescriptor::m_BiasEnabled, TransposeConvolution2dDescriptor::m_DataLayout, TransposeConvolution2dDescriptor::m_PadBottom, TransposeConvolution2dDescriptor::m_PadLeft, TransposeConvolution2dDescriptor::m_PadRight, TransposeConvolution2dDescriptor::m_PadTop, TransposeConvolution2dDescriptor::m_StrideX, TransposeConvolution2dDescriptor::m_StrideY, and OptionalReferenceSwitch< IsReference, T >::value().

Referenced by SerializerVisitor::GetSerializedLayers().

1271 {
1272  boost::ignore_unused(name);
1273 
1274  auto fbBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Convolution2d);
1275  auto fbDescriptor = CreateTransposeConvolution2dDescriptor(m_flatBufferBuilder,
1276  descriptor.m_PadLeft,
1277  descriptor.m_PadRight,
1278  descriptor.m_PadTop,
1279  descriptor.m_PadBottom,
1280  descriptor.m_StrideX,
1281  descriptor.m_StrideY,
1282  descriptor.m_BiasEnabled,
1284 
1285  // weights & biases
1286  auto fbWeightsConstTensorInfo = CreateConstTensorInfo(weights);
1287  flatbuffers::Offset<serializer::ConstTensor> fbBiasesConstTensorInfo;
1288  if (biases.has_value())
1289  {
1290  fbBiasesConstTensorInfo = CreateConstTensorInfo(biases.value());
1291  }
1292 
1293  auto fbLayer = CreateTransposeConvolution2dLayer(m_flatBufferBuilder,
1294  fbBaseLayer,
1295  fbDescriptor,
1296  fbWeightsConstTensorInfo,
1297  fbBiasesConstTensorInfo);
1298 
1299  CreateAnyLayer(fbLayer.o, serializer::Layer::Layer_TransposeConvolution2dLayer);
1300 }
uint32_t m_PadBottom
Padding bottom value in the height dimension.
uint32_t m_PadTop
Padding top value in the height dimension.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
uint32_t m_PadRight
Padding right value in the width dimension.
uint32_t m_PadLeft
Padding left value in the width dimension.
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
bool m_BiasEnabled
Enable/disable bias.
armnnSerializer::DataLayout GetFlatBufferDataLayout(armnn::DataLayout dataLayout)
bool has_value() const noexcept
Definition: Optional.hpp:53

The documentation for this class was generated from the following files: