From fd627ffaec8fd8801d980b4c91ee7c0607ab6aaf Mon Sep 17 00:00:00 2001 From: Jan Eilers Date: Thu, 25 Feb 2021 17:44:00 +0000 Subject: IVGCVSW-5687 Update Doxygen Docu * Update Doxygen Documentation for 21.02 release Signed-off-by: Jan Eilers Change-Id: I9ed2f9caab038836ea99d7b378d7899fe431a4e5 --- 21.02/classarmnn_1_1_i_network.xhtml | 3710 ++++++++++++++++++++++++++++++++++ 1 file changed, 3710 insertions(+) create mode 100644 21.02/classarmnn_1_1_i_network.xhtml (limited to '21.02/classarmnn_1_1_i_network.xhtml') diff --git a/21.02/classarmnn_1_1_i_network.xhtml b/21.02/classarmnn_1_1_i_network.xhtml new file mode 100644 index 0000000000..2fa33b2902 --- /dev/null +++ b/21.02/classarmnn_1_1_i_network.xhtml @@ -0,0 +1,3710 @@ + + + + + + + + + + + + + +ArmNN: INetwork Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  21.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

Main network class which provides the interface for building up a neural network. + More...

+ +

#include <INetwork.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Status PrintGraph ()
 
IConnectableLayerAddInputLayer (LayerBindingId id, const char *name=nullptr)
 Adds an input layer to the network. More...
 
IConnectableLayerAddArgMinMaxLayer (const ArgMinMaxDescriptor &desc, const char *name=nullptr)
 Adds an ArgMinMax layer to the network. More...
 
IConnectableLayerAddComparisonLayer (const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
 Add a Comparison layer to the network. More...
 
IConnectableLayerAddConcatLayer (const ConcatDescriptor &concatDescriptor, const char *name=nullptr)
 Adds a concatenation layer to the network. More...
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 Adds a 2D convolution layer to the network. More...
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const char *name=nullptr)
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const ConstTensor &biases, const char *name=nullptr)
 
IConnectableLayerAddDepthToSpaceLayer (const DepthToSpaceDescriptor &depthToSpaceDescriptor, const char *name=nullptr)
 Adds a depth to space layer to the network. More...
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 Adds a 2D depthwise convolution layer to the network. More...
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const char *name=nullptr)
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const ConstTensor &biases, const char *name=nullptr)
 
IConnectableLayerAddDequantizeLayer (const char *name=nullptr)
 Adds a Dequantize layer to the network. More...
 
IConnectableLayerAddDetectionPostProcessLayer (const DetectionPostProcessDescriptor &descriptor, const ConstTensor &anchors, const char *name=nullptr)
 Adds a Detection PostProcess layer to the network. More...
 
IConnectableLayerAddElementwiseUnaryLayer (const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
 Add an ElementwiseUnary layer to the network. More...
 
IConnectableLayerAddFillLayer (const FillDescriptor &fillDescriptor, const char *name=nullptr)
 Add an Fill layer to the network. More...
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 Adds a fully connected layer to the network. More...
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const ConstTensor &weights, const char *name=nullptr)
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const ConstTensor &weights, const ConstTensor &biases, const char *name=nullptr)
 
IConnectableLayerAddPermuteLayer (const PermuteDescriptor &permuteDescriptor, const char *name=nullptr)
 Adds a permute layer to the network. More...
 
IConnectableLayerAddBatchToSpaceNdLayer (const BatchToSpaceNdDescriptor &batchToSpaceNdDescriptor, const char *name=nullptr)
 Adds a batch to space ND layer to the network. More...
 
IConnectableLayerAddPooling2dLayer (const Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr)
 Adds a pooling layer to the network. More...
 
IConnectableLayerAddActivationLayer (const ActivationDescriptor &activationDescriptor, const char *name=nullptr)
 Adds an activation layer to the network. More...
 
IConnectableLayerAddNormalizationLayer (const NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr)
 Adds a normalization layer to the network. More...
 
IConnectableLayerAddSliceLayer (const SliceDescriptor &sliceDescriptor, const char *name=nullptr)
 Adds a slice layer to the network. More...
 
IConnectableLayerAddSoftmaxLayer (const SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr)
 Adds a softmax layer to the network. More...
 
IConnectableLayerAddSplitterLayer (const ViewsDescriptor &splitterDescriptor, const char *name=nullptr)
 Adds a splitter layer to the network. More...
 
IConnectableLayerAddMergeLayer (const char *name=nullptr)
 Adds a merge layer to the network. More...
 
IConnectableLayerAddMergerLayer (const MergerDescriptor &mergerDescriptor, const char *name=nullptr)
 Adds a concat layer to the network. More...
 
IConnectableLayerAddAbsLayer (const char *name=nullptr)
 Add absolute layer to the network. More...
 
IConnectableLayerAddAdditionLayer (const char *name=nullptr)
 Adds an addition layer to the network. More...
 
IConnectableLayerAddMultiplicationLayer (const char *name=nullptr)
 Adds a multiplication layer to the network. More...
 
IConnectableLayerAddBatchNormalizationLayer (const BatchNormalizationDescriptor &desc, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr)
 Adds a batch normalization layer to the network. More...
 
IConnectableLayerAddRankLayer (const char *name=nullptr)
 Adds a rank layer to the network. More...
 
IConnectableLayerAddResizeBilinearLayer (const ResizeBilinearDescriptor &resizeDesc, const char *name=nullptr)
 Adds a resize bilinear layer to the network. More...
 
IConnectableLayerAddResizeLayer (const ResizeDescriptor &resizeDescriptor, const char *name=nullptr)
 Adds a resize layer to the network. More...
 
IConnectableLayerAddReduceLayer (const ReduceDescriptor &reduceDescriptor, const char *name=nullptr)
 Adds a reduce layer to the network. More...
 
IConnectableLayerAddInstanceNormalizationLayer (const InstanceNormalizationDescriptor &desc, const char *name=nullptr)
 Adds an instance normalization layer to the network. More...
 
IConnectableLayerAddL2NormalizationLayer (const L2NormalizationDescriptor &desc, const char *name=nullptr)
 Adds an L2 normalization layer to the network. More...
 
IConnectableLayerAddLogSoftmaxLayer (const LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr)
 Adds a log softmax layer to the network. More...
 
IConnectableLayerAddConstantLayer (const ConstTensor &input, const char *name=nullptr)
 Adds a layer with no inputs and a single output, which always corresponds to the passed in constant tensor. More...
 
IConnectableLayerAddReshapeLayer (const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr)
 Adds a reshape layer to the network. More...
 
IConnectableLayerAddSpaceToBatchNdLayer (const SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr)
 Adds a space to batch layer to the network. More...
 
IConnectableLayerAddSpaceToDepthLayer (const SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr)
 Adds a space to depth layer to the network. More...
 
IConnectableLayerAddFloorLayer (const char *name=nullptr)
 Adds a floor layer to the network. More...
 
IConnectableLayerAddOutputLayer (LayerBindingId id, const char *name=nullptr)
 Adds an output layer to the network. More...
 
IConnectableLayerAddLstmLayer (const LstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 Add a Lstm layer to the network. More...
 
IConnectableLayerAddDivisionLayer (const char *name=nullptr)
 Adds a division layer to the network. More...
 
IConnectableLayerAddSubtractionLayer (const char *name=nullptr)
 Adds a subtraction layer to the network. More...
 
IConnectableLayerAddMaximumLayer (const char *name=nullptr)
 Add a Maximum layer to the network. More...
 
IConnectableLayerAddMeanLayer (const MeanDescriptor &meanDescriptor, const char *name=nullptr)
 Add a Mean layer to the network. More...
 
IConnectableLayerAddPadLayer (const PadDescriptor &padDescriptor, const char *name=nullptr)
 Adds a fully pad layer to the network. More...
 
IConnectableLayerAddQuantizeLayer (const char *name=nullptr)
 Add a quantize layer to the network. More...
 
IConnectableLayerAddStridedSliceLayer (const StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr)
 Adds a strided slice layer to the network. More...
 
IConnectableLayerAddMinimumLayer (const char *name=nullptr)
 Add a Minimum layer to the network. More...
 
IConnectableLayerAddGreaterLayer (const char *name=nullptr)
 Add a Greater layer to the network. More...
 
IConnectableLayerAddEqualLayer (const char *name=nullptr)
 Add a Equal layer to the network. More...
 
IConnectableLayerAddRsqrtLayer (const char *name=nullptr)
 Add Reciprocal of square root layer to the network. More...
 
IConnectableLayerAddGatherLayer (const char *name=nullptr)
 Add Gather layer to the network. More...
 
IConnectableLayerAddGatherLayer (const GatherDescriptor &descriptor, const char *name=nullptr)
 Add Gather layer to the network. More...
 
IConnectableLayerAddSwitchLayer (const char *name=nullptr)
 Adds a switch layer to the network. More...
 
IConnectableLayerAddPreluLayer (const char *name=nullptr)
 Adds a PReLU layer to the network. More...
 
IConnectableLayerAddTransposeConvolution2dLayer (const TransposeConvolution2dDescriptor &descriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 Adds a 2D transpose convolution layer to the network. More...
 
IConnectableLayerAddTransposeLayer (const TransposeDescriptor &transposeDescriptor, const char *name=nullptr)
 Adds a transpose layer to the network. More...
 
IConnectableLayerAddStackLayer (const StackDescriptor &descriptor, const char *name=nullptr)
 Adds a stack layer to the network. More...
 
IConnectableLayerAddStandInLayer (const StandInDescriptor &descriptor, const char *name=nullptr)
 Add a stand-in layer for a type unknown to the Arm NN framework. More...
 
IConnectableLayerAddQuantizedLstmLayer (const QuantizedLstmInputParams &params, const char *name=nullptr)
 Add a QuantizedLstm layer to the network. More...
 
IConnectableLayerAddQLstmLayer (const QLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 Add a QLstm layer to the network. More...
 
IConnectableLayerAddLogicalBinaryLayer (const LogicalBinaryDescriptor &descriptor, const char *name=nullptr)
 Adds a Logical Binary layer to the network. More...
 
void Accept (ILayerVisitor &visitor) const
 
void ExecuteStrategy (IStrategy &strategy) const
 
+ + + + + + + +

+Static Public Member Functions

static INetworkCreateRaw (NetworkOptions networkOptions={})
 
static INetworkPtr Create (NetworkOptions networkOptions={})
 
static void Destroy (INetwork *network)
 
+ + + + + +

+Protected Member Functions

 ~INetwork ()
 
 INetwork (NetworkOptions networkOptions={})
 
+ + + +

+Protected Attributes

std::unique_ptr< NetworkImplpNetworkImpl
 
+ + + + + + + + + + + + +

+Friends

class NetworkQuantizer
 
class TestConnectionPreservation
 
void VisitLayersTopologically (const INetwork *inputNetwork, IStrategy &strategy)
 
TensorInfo GetInputTensorInfo (const INetwork *network)
 
IOptimizedNetworkPtr Optimize (const INetwork &network, const std::vector< BackendId > &backendPreferences, const IDeviceSpec &deviceSpec, const OptimizerOptions &options, Optional< std::vector< std::string > &> messages)
 Create an optimized version of the network. More...
 
+

Detailed Description

+

Main network class which provides the interface for building up a neural network.

+

This object is subsequently required by the IRuntime::Load() method.

+ +

Definition at line 178 of file INetwork.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ~INetwork()

+ +
+
+ + + + + +
+ + + + + + + +
~INetwork ()
+
+protecteddefault
+
+ +

Referenced by INetwork::INetwork().

+ +
+
+ +

◆ INetwork()

+ +
+
+ + + + + +
+ + + + + + + + +
INetwork (NetworkOptions networkOptions = {})
+
+protected
+
+ +

Definition at line 41 of file Network.cpp.

+ +

References INetwork::~INetwork().

+ +

Referenced by INetwork::CreateRaw().

+
41 : pNetworkImpl(new NetworkImpl(networkOptions)) {}
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+

Member Function Documentation

+ +

◆ Accept()

+ +
+
+ + + + + + + + +
void Accept (ILayerVisitorvisitor) const
+
+ +

Definition at line 495 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
496 {
497  return pNetworkImpl->Accept(visitor);
498 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddAbsLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddAbsLayer (const char * name = nullptr)
+
+ +

Add absolute layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 257 of file Network.cpp.

+ +

References armnn::Abs, and INetwork::pNetworkImpl.

+
258 {
259  return pNetworkImpl->AddElementwiseUnaryLayer(ElementwiseUnaryDescriptor(UnaryOperation::Abs), name);
260 }
+
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddActivationLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddActivationLayer (const ActivationDescriptoractivationDescriptor,
const char * name = nullptr 
)
+
+ +

Adds an activation layer to the network.

+
Parameters
+ + + +
activationDescriptor- ActivationDescriptor to configure the activation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 218 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::CreateStartOfLeakyReluNetwork().

+
220 {
221  return pNetworkImpl->AddActivationLayer(activationDescriptor, name);
222 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddAdditionLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddAdditionLayer (const char * name = nullptr)
+
+ +

Adds an addition layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 262 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
263 {
264  return pNetworkImpl->AddAdditionLayer(name);
265 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddArgMinMaxLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddArgMinMaxLayer (const ArgMinMaxDescriptordesc,
const char * name = nullptr 
)
+
+ +

Adds an ArgMinMax layer to the network.

+
Parameters
+ + + +
desc- Parameters for the L2 normalization operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 56 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
58 {
59  return pNetworkImpl->AddArgMinMaxLayer(desc, name);
60 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddBatchNormalizationLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddBatchNormalizationLayer (const BatchNormalizationDescriptordesc,
const ConstTensormean,
const ConstTensorvariance,
const ConstTensorbeta,
const ConstTensorgamma,
const char * name = nullptr 
)
+
+ +

Adds a batch normalization layer to the network.

+
Parameters
+ + + + + +
mean- Pre-calculated mean for each channel.
variance- Pre-calculated variance for each channel.
beta- Per-channel additive factor.
gamma- Per-channel multiplicative factor.
+
+
+
Returns
- Interface for configuring the layer.
+
Parameters
+ + +
name- Optional name for the layer.
+
+
+ +

Definition at line 272 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
278 {
279  return pNetworkImpl->AddBatchNormalizationLayer(desc, mean, variance, beta, gamma, name);
280 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddBatchToSpaceNdLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddBatchToSpaceNdLayer (const BatchToSpaceNdDescriptorbatchToSpaceNdDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a batch to space ND layer to the network.

+
Parameters
+ + + +
batchToSpaceNdDescriptor- Description of the layer.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 206 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
208 {
209  return pNetworkImpl->AddBatchToSpaceNdLayer(batchToSpaceNdDescriptor, name);
210 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddComparisonLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddComparisonLayer (const ComparisonDescriptorcomparisonDescriptor,
const char * name = nullptr 
)
+
+ +

Add a Comparison layer to the network.

+
Parameters
+ + + +
name- Optional name for the layer.
desc- Descriptor for the comparison operation.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 63 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
65 {
66  return pNetworkImpl->AddComparisonLayer(comparisonDescriptor, name);
67 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddConcatLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddConcatLayer (const ConcatDescriptorconcatDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a concatenation layer to the network.

+
Parameters
+ + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 70 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
72 {
73  return pNetworkImpl->AddConcatLayer(concatDescriptor, name);
74 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddConstantLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddConstantLayer (const ConstTensorinput,
const char * name = nullptr 
)
+
+ +

Adds a layer with no inputs and a single output, which always corresponds to the passed in constant tensor.

+
Parameters
+ + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 331 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
333 {
334  return pNetworkImpl->AddConstantLayer(input, name);
335 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddConvolution2dLayer() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddConvolution2dLayer (const Convolution2dDescriptorconvolution2dDescriptor,
const ConstTensorweights,
const Optional< ConstTensor > & biases,
const char * name = nullptr 
)
+
+ +

Adds a 2D convolution layer to the network.

+
Parameters
+ + + + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 77 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
81 {
82  return pNetworkImpl->AddConvolution2dLayer(convolution2dDescriptor, weights, biases, name);
83 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddConvolution2dLayer() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddConvolution2dLayer (const Convolution2dDescriptorconvolution2dDescriptor,
const ConstTensorweights,
const char * name = nullptr 
)
+
+ +

Definition at line 86 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
89 {
90  Optional<ConstTensor> biases;
91  return pNetworkImpl->AddConvolution2dLayer(convolution2dDescriptor, weights, biases, name);
92 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddConvolution2dLayer() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddConvolution2dLayer (const Convolution2dDescriptorconvolution2dDescriptor,
const ConstTensorweights,
const ConstTensorbiases,
const char * name = nullptr 
)
+
+ +

Definition at line 95 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
99 {
100 
101  return pNetworkImpl->AddConvolution2dLayer(convolution2dDescriptor,
102  weights,
104  name);
105 }
+
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddDepthToSpaceLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddDepthToSpaceLayer (const DepthToSpaceDescriptordepthToSpaceDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a depth to space layer to the network.

+
Parameters
+ + + +
depthToSpaceDescriptor- Parameters for the depth to space operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 108 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
110 {
111  return pNetworkImpl->AddDepthToSpaceLayer(depthToSpaceDescriptor, name);
112 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddDepthwiseConvolution2dLayer() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptorconvolution2dDescriptor,
const ConstTensorweights,
const Optional< ConstTensor > & biases,
const char * name = nullptr 
)
+
+ +

Adds a 2D depthwise convolution layer to the network.

+
Parameters
+ + + + + +
convolution2dDescriptor- Description of the 2D depthwise convolution layer.
weights- Tensor for the weights. Expected format: [channelMultiplier, inputChannels, height, width].
biasesOptional tensor for the bias data. If specified, must match the output tensor shape.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 115 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
120 {
121  return pNetworkImpl->AddDepthwiseConvolution2dLayer(convolution2dDescriptor, weights, biases, name);
122 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddDepthwiseConvolution2dLayer() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptorconvolution2dDescriptor,
const ConstTensorweights,
const char * name = nullptr 
)
+
+ +

Definition at line 125 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
129 {
130  Optional<ConstTensor> biases;
131  return pNetworkImpl->AddDepthwiseConvolution2dLayer(convolution2dDescriptor, weights, biases, name);
132 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddDepthwiseConvolution2dLayer() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptorconvolution2dDescriptor,
const ConstTensorweights,
const ConstTensorbiases,
const char * name = nullptr 
)
+
+ +

Definition at line 135 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
140 {
141  return pNetworkImpl->AddDepthwiseConvolution2dLayer(convolution2dDescriptor, weights,
142  armnn::Optional<ConstTensor>(biases), name);
143 }
+
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddDequantizeLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddDequantizeLayer (const char * name = nullptr)
+
+ +

Adds a Dequantize layer to the network.

+
Returns
- Interface for configuring the layer.
+ +

Definition at line 146 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
147 {
148  return pNetworkImpl->AddDequantizeLayer(name);
149 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddDetectionPostProcessLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddDetectionPostProcessLayer (const DetectionPostProcessDescriptordescriptor,
const ConstTensoranchors,
const char * name = nullptr 
)
+
+ +

Adds a Detection PostProcess layer to the network.

+
Parameters
+ + + + +
descriptor- Description of the Detection PostProcess layer.
anchors- Tensor for anchors.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 152 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
156 {
157  return pNetworkImpl->AddDetectionPostProcessLayer(descriptor, anchors, name);
158 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
std::vector< float > anchors({ 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 100.5f, 1.0f, 1.0f })
+
+
+
+ +

◆ AddDivisionLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddDivisionLayer (const char * name = nullptr)
+
+ +

Adds a division layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 371 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
372 {
373  return pNetworkImpl->AddDivisionLayer(name);
374 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddElementwiseUnaryLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddElementwiseUnaryLayer (const ElementwiseUnaryDescriptorelementwiseUnaryDescriptor,
const char * name = nullptr 
)
+
+ +

Add an ElementwiseUnary layer to the network.

+
Parameters
+ + + +
name- Optional name for the layer.
desc- Descriptor for the elementwiseUnary operation.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 161 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
163 {
164  return pNetworkImpl->AddElementwiseUnaryLayer(elementwiseUnaryDescriptor, name);
165 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddEqualLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddEqualLayer (const char * name = nullptr)
+
+ +

Add a Equal layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 418 of file Network.cpp.

+ +

References armnn::Equal, and INetwork::pNetworkImpl.

+
419 {
420  return pNetworkImpl->AddComparisonLayer(ComparisonDescriptor(ComparisonOperation::Equal), name);
421 }
+
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddFillLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddFillLayer (const FillDescriptorfillDescriptor,
const char * name = nullptr 
)
+
+ +

Add an Fill layer to the network.

+
Parameters
+ + + +
name- Optional name for the layer.
fillDescriptor- Descriptor for the fill operation.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 168 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
170 {
171  return pNetworkImpl->AddFillLayer(fillDescriptor, name);
172 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddFloorLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddFloorLayer (const char * name = nullptr)
+
+ +

Adds a floor layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 355 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
356 {
357  return pNetworkImpl->AddFloorLayer(name);
358 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddFullyConnectedLayer() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddFullyConnectedLayer (const FullyConnectedDescriptorfullyConnectedDescriptor,
const ConstTensorweights,
const Optional< ConstTensor > & biases,
const char * name = nullptr 
)
+
+ +

Adds a fully connected layer to the network.

+
Parameters
+ + + + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 175 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
179 {
180  return pNetworkImpl->AddFullyConnectedLayer(fullyConnectedDescriptor, weights, biases, name);
181 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddFullyConnectedLayer() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddFullyConnectedLayer (const FullyConnectedDescriptorfullyConnectedDescriptor,
const ConstTensorweights,
const char * name = nullptr 
)
+
+ +

Definition at line 183 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
186 {
187  Optional<ConstTensor> biases;
188  return pNetworkImpl->AddFullyConnectedLayer(fullyConnectedDescriptor, weights, biases, name);
189 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddFullyConnectedLayer() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddFullyConnectedLayer (const FullyConnectedDescriptorfullyConnectedDescriptor,
const ConstTensorweights,
const ConstTensorbiases,
const char * name = nullptr 
)
+
+ +

Definition at line 191 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
195 {
196  return pNetworkImpl->AddFullyConnectedLayer(fullyConnectedDescriptor, weights,
197  armnn::Optional<ConstTensor>(biases), name);
198 }
+
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddGatherLayer() [1/2]

+ +
+
+ + + + + + + + +
IConnectableLayer * AddGatherLayer (const char * name = nullptr)
+
+ +

Add Gather layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 428 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
429 {
430  GatherDescriptor gatherDescriptor{};
431  return pNetworkImpl->AddGatherLayer(gatherDescriptor, name);
432 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddGatherLayer() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddGatherLayer (const GatherDescriptordescriptor,
const char * name = nullptr 
)
+
+ +

Add Gather layer to the network.

+
Parameters
+ + + +
descriptor- Description of the gather layer.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 434 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
436 {
437  return pNetworkImpl->AddGatherLayer(descriptor, name);
438 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddGreaterLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddGreaterLayer (const char * name = nullptr)
+
+ +

Add a Greater layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 413 of file Network.cpp.

+ +

References armnn::Greater, and INetwork::pNetworkImpl.

+
414 {
415  return pNetworkImpl->AddComparisonLayer(ComparisonDescriptor(ComparisonOperation::Greater), name);
416 }
+
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddInputLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddInputLayer (LayerBindingId id,
const char * name = nullptr 
)
+
+ +

Adds an input layer to the network.

+
Parameters
+ + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 50 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::CreateStartOfLeakyReluNetwork().

+
51 {
52  return pNetworkImpl->AddInputLayer(id, name);
53 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddInstanceNormalizationLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddInstanceNormalizationLayer (const InstanceNormalizationDescriptordesc,
const char * name = nullptr 
)
+
+ +

Adds an instance normalization layer to the network.

+
Parameters
+ + + +
desc- Parameters for the instance normalization operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 313 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
315 {
316  return pNetworkImpl->AddInstanceNormalizationLayer(desc, name);
317 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddL2NormalizationLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddL2NormalizationLayer (const L2NormalizationDescriptordesc,
const char * name = nullptr 
)
+
+ +

Adds an L2 normalization layer to the network.

+

Normalization is performed along dimension 1, but requires a 4d input.

Parameters
+ + + +
desc- Parameters for the L2 normalization operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 319 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
321 {
322  return pNetworkImpl->AddL2NormalizationLayer(desc, name);
323 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddLogicalBinaryLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddLogicalBinaryLayer (const LogicalBinaryDescriptordescriptor,
const char * name = nullptr 
)
+
+ +

Adds a Logical Binary layer to the network.

+
Parameters
+ + + +
descriptor- Description of the Logical Binary layer.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 489 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
491 {
492  return pNetworkImpl->AddLogicalBinaryLayer(descriptor, name);
493 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddLogSoftmaxLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddLogSoftmaxLayer (const LogSoftmaxDescriptorlogSoftmaxDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a log softmax layer to the network.

+
Parameters
+ + + +
logSoftmaxDescriptor- LogSoftmaxDescriptor to configure the log softmax.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 325 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
327 {
328  return pNetworkImpl->AddLogSoftmaxLayer(logSoftmaxDescriptor, name);
329 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddLstmLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddLstmLayer (const LstmDescriptordescriptor,
const LstmInputParamsparams,
const char * name = nullptr 
)
+
+ +

Add a Lstm layer to the network.

+
Parameters
+ + + + +
descriptor- Parameters for the Lstm operation
params- Weights and biases for the LSTM cell
name- Optional name for the layer
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 364 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
367 {
368  return pNetworkImpl->AddLstmLayer(descriptor, params, name);
369 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddMaximumLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddMaximumLayer (const char * name = nullptr)
+
+ +

Add a Maximum layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 381 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
382 {
383  return pNetworkImpl->AddMaximumLayer(name);
384 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddMeanLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddMeanLayer (const MeanDescriptormeanDescriptor,
const char * name = nullptr 
)
+
+ +

Add a Mean layer to the network.

+
Parameters
+ + + +
meanDescriptor- Parameters for the mean operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 386 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
387 {
388  return pNetworkImpl->AddMeanLayer(meanDescriptor, name);
389 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddMergeLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddMergeLayer (const char * name = nullptr)
+
+ +

Adds a merge layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 246 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
247 {
248  return pNetworkImpl->AddMergeLayer(name);
249 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddMergerLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddMergerLayer (const MergerDescriptormergerDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a concat layer to the network.

+
Parameters
+ + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 251 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
253 {
254  return pNetworkImpl->AddConcatLayer(mergerDescriptor, name);
255 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddMinimumLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddMinimumLayer (const char * name = nullptr)
+
+ +

Add a Minimum layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 408 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
409 {
410  return pNetworkImpl->AddMinimumLayer(name);
411 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddMultiplicationLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddMultiplicationLayer (const char * name = nullptr)
+
+ +

Adds a multiplication layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 267 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
268 {
269  return pNetworkImpl->AddMultiplicationLayer(name);
270 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddNormalizationLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddNormalizationLayer (const NormalizationDescriptornormalizationDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a normalization layer to the network.

+
Parameters
+ + + +
normalizationDescriptor- NormalizationDescriptor to configure the normalization.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 224 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
226 {
227  return pNetworkImpl->AddNormalizationLayer(normalizationDescriptor, name);
228 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddOutputLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddOutputLayer (LayerBindingId id,
const char * name = nullptr 
)
+
+ +

Adds an output layer to the network.

+
Parameters
+ + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 359 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::CompleteLeakyReluNetwork().

+
360 {
361  return pNetworkImpl->AddOutputLayer(id, name);
362 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddPadLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddPadLayer (const PadDescriptorpadDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a fully pad layer to the network.

+
Parameters
+ + + +
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 dimonsion i, and paddings[i,1] indicates the amount of padding to add after the end of dimension i
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 391 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
393 {
394  return pNetworkImpl->AddPadLayer(padDescriptor, name);
395 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddPermuteLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddPermuteLayer (const PermuteDescriptorpermuteDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a permute layer to the network.

+
Parameters
+ + + +
permuteDescriptor- PermuteDescriptor to configure the permute.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 200 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
202 {
203  return pNetworkImpl->AddPermuteLayer(permuteDescriptor, name);
204 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddPooling2dLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddPooling2dLayer (const Pooling2dDescriptorpooling2dDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a pooling layer to the network.

+
Parameters
+ + + +
pooling2dDescriptor- Pooling2dDescriptor to configure the pooling.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 212 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
214 {
215  return pNetworkImpl->AddPooling2dLayer(pooling2dDescriptor, name);
216 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddPreluLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddPreluLayer (const char * name = nullptr)
+
+ +

Adds a PReLU layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 445 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
446 {
447  return pNetworkImpl->AddPreluLayer(name);
448 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddQLstmLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddQLstmLayer (const QLstmDescriptordescriptor,
const LstmInputParamsparams,
const char * name = nullptr 
)
+
+ +

Add a QLstm layer to the network.

+
Parameters
+ + + + +
descriptor- Parameters for the QLstm operation
params- Weights and biases for the layer
name- Optional name for the layer
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 482 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
485 {
486  return pNetworkImpl->AddQLstmLayer(descriptor, params, name);
487 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddQuantizedLstmLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddQuantizedLstmLayer (const QuantizedLstmInputParamsparams,
const char * name = nullptr 
)
+
+ +

Add a QuantizedLstm layer to the network.

+
Parameters
+ + + +
params- The weights and biases for the Quantized LSTM cell
name- Optional name for the layer
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 476 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
478 {
479  return pNetworkImpl->AddQuantizedLstmLayer(params, name);
480 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddQuantizeLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddQuantizeLayer (const char * name = nullptr)
+
+ +

Add a quantize layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 397 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
398 {
399  return pNetworkImpl->AddQuantizeLayer(name);
400 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddRankLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddRankLayer (const char * name = nullptr)
+
+ +

Adds a rank layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 282 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
283 {
284  return pNetworkImpl->AddRankLayer(name);
285 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddReduceLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddReduceLayer (const ReduceDescriptorreduceDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a reduce layer to the network.

+
Parameters
+ + + +
ReduceDescriptor- Parameters for the reduce operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 307 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
309 {
310  return pNetworkImpl->AddReduceLayer(reduceDescriptor, name);
311 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddReshapeLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddReshapeLayer (const ReshapeDescriptorreshapeDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a reshape layer to the network.

+
Parameters
+ + + +
reshapeDescriptor- Parameters for the reshape operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 337 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by ITfParser::GetNetworkOutputBindingInfo().

+
339 {
340  return pNetworkImpl->AddReshapeLayer(reshapeDescriptor, name);
341 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddResizeBilinearLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddResizeBilinearLayer (const ResizeBilinearDescriptorresizeDesc,
const char * name = nullptr 
)
+
+ +

Adds a resize bilinear layer to the network.

+
Parameters
+ + + +
resizeDesc- Parameters for the resize operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 287 of file Network.cpp.

+ +

References armnn::Bilinear, ResizeBilinearDescriptor::m_AlignCorners, ResizeDescriptor::m_AlignCorners, ResizeBilinearDescriptor::m_DataLayout, ResizeDescriptor::m_DataLayout, ResizeBilinearDescriptor::m_HalfPixelCenters, ResizeDescriptor::m_HalfPixelCenters, ResizeDescriptor::m_Method, ResizeBilinearDescriptor::m_TargetHeight, ResizeDescriptor::m_TargetHeight, ResizeBilinearDescriptor::m_TargetWidth, ResizeDescriptor::m_TargetWidth, and INetwork::pNetworkImpl.

+
289 {
290  ResizeDescriptor resizeDescriptor;
291  resizeDescriptor.m_Method = ResizeMethod::Bilinear;
292  resizeDescriptor.m_DataLayout = descriptor.m_DataLayout;
293  resizeDescriptor.m_TargetWidth = descriptor.m_TargetWidth;
294  resizeDescriptor.m_TargetHeight = descriptor.m_TargetHeight;
295  resizeDescriptor.m_AlignCorners = descriptor.m_AlignCorners;
296  resizeDescriptor.m_HalfPixelCenters = descriptor.m_HalfPixelCenters;
297 
298  return pNetworkImpl->AddResizeLayer(resizeDescriptor, name);
299 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+ +
+
+
+ +

◆ AddResizeLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddResizeLayer (const ResizeDescriptorresizeDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a resize layer to the network.

+
Parameters
+ + + +
resizeDescriptor- Parameters for the resize operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 301 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
303 {
304  return pNetworkImpl->AddResizeLayer(resizeDescriptor, name);
305 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddRsqrtLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddRsqrtLayer (const char * name = nullptr)
+
+ +

Add Reciprocal of square root layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 423 of file Network.cpp.

+ +

References INetwork::pNetworkImpl, and armnn::Rsqrt.

+
424 {
425  return pNetworkImpl->AddElementwiseUnaryLayer(ElementwiseUnaryDescriptor(UnaryOperation::Rsqrt), name);
426 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+ +
+
+
+ +

◆ AddSliceLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddSliceLayer (const SliceDescriptorsliceDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a slice layer to the network.

+
Parameters
+ + + +
sliceDescriptor- SliceDescriptor to configure the slice operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 230 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
231 {
232  return pNetworkImpl->AddSliceLayer(sliceDescriptor, name);
233 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddSoftmaxLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddSoftmaxLayer (const SoftmaxDescriptorsoftmaxDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a softmax layer to the network.

+

If the data type is QAsymm8, then the output quantization parameters must have a scale of 1/256 and an offset of 0

Parameters
+ + + +
softmaxDescriptor- SoftmaxDescriptor to configure the softmax.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 234 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
236 {
237  return pNetworkImpl->AddSoftmaxLayer(softmaxDescriptor, name);
238 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddSpaceToBatchNdLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddSpaceToBatchNdLayer (const SpaceToBatchNdDescriptorspaceToBatchNdDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a space to batch layer to the network.

+
Parameters
+ + + +
spaceToBatchNdDescriptor- Parameters for the space to batch operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 343 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
345 {
346  return pNetworkImpl->AddSpaceToBatchNdLayer(spaceToBatchNdDescriptor, name);
347 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddSpaceToDepthLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddSpaceToDepthLayer (const SpaceToDepthDescriptorspaceToDepthDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a space to depth layer to the network.

+
Parameters
+ + + +
spaceToDepthDescriptor- Parameters for the space to depth operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 349 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
351 {
352  return pNetworkImpl->AddSpaceToDepthLayer(spaceToDepthDescriptor, name);
353 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddSplitterLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddSplitterLayer (const ViewsDescriptorsplitterDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a splitter layer to the network.

+
Parameters
+ + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 240 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
242 {
243  return pNetworkImpl->AddSplitterLayer(splitterDescriptor, name);
244 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddStackLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddStackLayer (const StackDescriptordescriptor,
const char * name = nullptr 
)
+
+ +

Adds a stack layer to the network.

+
Parameters
+ + + +
descriptor- Description of the stack layer.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 464 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
466 {
467  return pNetworkImpl->AddStackLayer(descriptor, name);
468 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddStandInLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddStandInLayer (const StandInDescriptordescriptor,
const char * name = nullptr 
)
+
+ +

Add a stand-in layer for a type unknown to the Arm NN framework.

+

Note: Due to the nature of this layer, no validation can be performed by the framework. Furthermore, Any model containing this layer cannot make use of dynamic tensors since the tensor sizes cannot be inferred. - Descriptor for the StandIn layer.

Returns
- Interface for configuring the layer.
+ +

Definition at line 470 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
472 {
473  return pNetworkImpl->AddStandInLayer(descriptor, name);
474 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddStridedSliceLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddStridedSliceLayer (const StridedSliceDescriptorstridedSliceDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a strided slice layer to the network.

+
Parameters
+ + + +
StridedSliceDescriptor- Parameters for the strided slice operation.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 402 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
404 {
405  return pNetworkImpl->AddStridedSliceLayer(stridedSliceDescriptor, name);
406 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddSubtractionLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddSubtractionLayer (const char * name = nullptr)
+
+ +

Adds a subtraction layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 376 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by armnn::GetVector().

+
377 {
378  return pNetworkImpl->AddSubtractionLayer(name);
379 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddSwitchLayer()

+ +
+
+ + + + + + + + +
IConnectableLayer * AddSwitchLayer (const char * name = nullptr)
+
+ +

Adds a switch layer to the network.

+
Parameters
+ + +
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 440 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
441 {
442  return pNetworkImpl->AddSwitchLayer(name);
443 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddTransposeConvolution2dLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddTransposeConvolution2dLayer (const TransposeConvolution2dDescriptordescriptor,
const ConstTensorweights,
const Optional< ConstTensor > & biases,
const char * name = nullptr 
)
+
+ +

Adds a 2D transpose convolution layer to the network.

+
Parameters
+ + + + + +
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.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 450 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
454 {
455  return pNetworkImpl->AddTransposeConvolution2dLayer(descriptor, weights, biases, name);
456 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ AddTransposeLayer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
IConnectableLayer * AddTransposeLayer (const TransposeDescriptortransposeDescriptor,
const char * name = nullptr 
)
+
+ +

Adds a transpose layer to the network.

+
Parameters
+ + + +
transposeDescriptor- TransposeDescriptor to configure the transpose.
name- Optional name for the layer.
+
+
+
Returns
- Interface for configuring the layer.
+ +

Definition at line 458 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
460 {
461  return pNetworkImpl->AddTransposeLayer(transposeDescriptor, name);
462 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ Create()

+ + + +

◆ CreateRaw()

+ +
+
+ + + + + +
+ + + + + + + + +
armnn::INetwork * CreateRaw (NetworkOptions networkOptions = {})
+
+static
+
+ +

Definition at line 505 of file Network.cpp.

+ +

References INetwork::INetwork().

+ +

Referenced by INetwork::Create().

+
506 {
507  return new INetwork(networkOptions);
508 }
INetwork(NetworkOptions networkOptions={})
Definition: Network.cpp:41
+
+
+
+ +

◆ Destroy()

+ +
+
+ + + + + +
+ + + + + + + + +
void Destroy (INetworknetwork)
+
+static
+
+ +

Definition at line 515 of file Network.cpp.

+ +

Referenced by INetwork::Create().

+
516 {
517  delete network;
518 }
+
+
+ +

◆ ExecuteStrategy()

+ +
+
+ + + + + + + + +
void ExecuteStrategy (IStrategystrategy) const
+
+ +

Definition at line 500 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+ +

Referenced by ISerializer::SerializerImpl::Serialize().

+
501 {
502  return pNetworkImpl->ExecuteStrategy(strategy);
503 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+ +

◆ PrintGraph()

+ +
+
+ + + + + + + +
Status PrintGraph ()
+
+ +

Definition at line 45 of file Network.cpp.

+ +

References INetwork::pNetworkImpl.

+
46 {
47  return pNetworkImpl->PrintGraph();
48 }
std::unique_ptr< NetworkImpl > pNetworkImpl
Definition: INetwork.hpp:693
+
+
+
+

Friends And Related Function Documentation

+ +

◆ GetInputTensorInfo

+ +
+
+ + + + + +
+ + + + + + + + +
TensorInfo GetInputTensorInfo (const INetworknetwork)
+
+friend
+
+ +

Definition at line 80 of file QuantizerTest.cpp.

+
81 {
82  for (auto&& inputLayer : network->pNetworkImpl->GetGraph().GetInputLayers())
83  {
84  ARMNN_ASSERT_MSG(inputLayer->GetNumOutputSlots() == 1, "Input layer should have exactly 1 output slot");
85  return inputLayer->GetOutputSlot(0).GetTensorInfo();
86  }
87  throw InvalidArgumentException("Network has no input layers");
88 }
#define ARMNN_ASSERT_MSG(COND, MSG)
Definition: Assert.hpp:15
+
+
+
+ +

◆ NetworkQuantizer

+ +
+
+ + + + + +
+ + + + +
friend class NetworkQuantizer
+
+friend
+
+ +

Definition at line 681 of file INetwork.hpp.

+ +
+
+ +

◆ Optimize

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IOptimizedNetworkPtr Optimize (const INetworknetwork,
const std::vector< BackendId > & backendPreferences,
const IDeviceSpecdeviceSpec,
const OptimizerOptionsoptions = OptimizerOptions(),
Optional< std::vector< std::string > &> messages = EmptyOptional() 
)
+
+friend
+
+ +

Create an optimized version of the network.

+
Parameters
+ + + + + + +
networkINetwork description of the network to be optimized.
backendPreferencesThe choice of the backend ordered by user preferences.
deviceSpecDeviceSpec object as queried from the runtime. See IRuntime::GetDeviceSpec()
messagesIf there are failures or warnings a string describing same will be added to the vector
optionsOptimizerOptions object with optimizer configuration options
+
+
+
Returns
An IOptimizedNetworkPtr interface to the optimized network, throws an exception derived from armnn::Exception if process fails.
+ +

Definition at line 1502 of file Network.cpp.

+
1507 {
1508  if (backendPreferences.empty())
1509  {
1510  throw InvalidArgumentException("Invoked Optimize with no backends specified");
1511  }
1512 
1513  if (options.m_ReduceFp32ToFp16 && options.m_ReduceFp32ToBf16)
1514  {
1515  throw InvalidArgumentException("BFloat16 and Float16 optimization cannot be enabled at the same time.");
1516  }
1517 
1518  std::unique_ptr<Graph> graph = std::make_unique<Graph>(inNetwork.pNetworkImpl->GetGraph());
1519 
1520  auto optNet = IOptimizedNetworkPtr(new IOptimizedNetwork(std::move(graph), options.m_ModelOptions),
1522 
1523  IOptimizedNetwork* optNetObjPtr = optNet.get();
1524 
1525  // Get the optimized graph
1526  Graph& optGraph = optNetObjPtr->pOptimizedNetworkImpl->GetGraph();
1527 
1528  // Perform AddBroadcastReshapeLayer optimisation
1529  using namespace optimizations;
1531 
1532  // Infer the tensor infos for all output slots. Throws an exception on failure
1533  optGraph.InferTensorInfos();
1534 
1535  // Perform optimisation passes
1541  MovePermuteUp(),
1542  MoveTransposeUp(),
1543  PermuteAsReshape(),
1553 
1554  // If Fp32 to Fp16 optimization is set convert Fp32 network to Fp16
1555  if (options.m_ReduceFp32ToFp16)
1556  {
1559  }
1560 
1561  // If Fp32 to Bf16 optimization is set convert Fp32 network to Bf16
1562  // Convert input of Convolution2d and FullyConnected from Fp32 to Bf16
1563  // Only Constant weight of Convolution2d and FullyConnected are converted from Fp32 to Bf16
1564  if (options.m_ReduceFp32ToBf16)
1565  {
1567  }
1568 
1569  // Initialize backend settings
1570  BackendSettings backendSettings(backendPreferences, deviceSpec);
1571  if (backendSettings.GetAvailablePreferredBackends().empty())
1572  {
1573  std::stringstream failureMsg;
1574  failureMsg << "None of the preferred backends " << backendPreferences
1575  << " are supported. Current platform provides " << backendSettings.m_SupportedBackends;
1576  ReportError(failureMsg.str(), messages);
1577  throw InvalidArgumentException(failureMsg.str());
1578  }
1579 
1580  // Create a map to temporarily hold initialized backend objects
1581  TensorHandleFactoryRegistry tensorHandleFactoryRegistry;
1582  BackendsMap backends = CreateSupportedBackends(tensorHandleFactoryRegistry, backendSettings);
1583 
1584  // Assign an available backend to each layer
1585  Graph::Iterator firstLayer = optGraph.begin();
1586  Graph::Iterator lastLayer = optGraph.end();
1587  OptimizationResult assignBackendsResult = AssignBackends(optNetObjPtr->pOptimizedNetworkImpl.get(),
1588  backendSettings,
1589  firstLayer,
1590  lastLayer,
1591  messages);
1592  if (assignBackendsResult.m_Error)
1593  {
1594  // Failed to assign a backend to each layer
1595  throw InvalidArgumentException("Failed to assign a backend to each layer");
1596  }
1597 
1600 
1601  // Apply the backend-specific optimizations
1602  OptimizationResult backendOptimizationResult = ApplyBackendOptimizations(optNetObjPtr->pOptimizedNetworkImpl.get(),
1603  backendSettings,
1604  backends,
1605  options.m_ModelOptions,
1606  messages);
1607  if (backendOptimizationResult.m_Error)
1608  {
1609  // Failed to apply the backend-specific optimizations
1610  throw InvalidArgumentException("Failed to apply the backend-specific optimizations");
1611  }
1612 
1613  // If the debug flag is set, then insert a DebugLayer after each layer
1614  // Doing this after applying the backend optimizations as they might have changed some layers
1615  if (options.m_Debug)
1616  {
1618  }
1619 
1620  // Calculate the compatibility strategies for tensor handles
1621  OptimizationResult strategyResult = SelectTensorHandleStrategy(optGraph,
1622  backends,
1623  tensorHandleFactoryRegistry,
1624  options.m_ImportEnabled,
1625  messages);
1626  if (strategyResult.m_Error)
1627  {
1628  // Failed to apply the backend-specific optimizations
1630  }
1631 
1632  // Based on the tensor handle strategy determined above, insert copy layers where required.
1633  optGraph.AddCompatibilityLayers(backends, tensorHandleFactoryRegistry);
1634 
1635  // Convert constants
1638 
1639  // Run backend specific optimizations (deprecated)
1640  for (auto&& chosenBackend : backendSettings.m_SelectedBackends)
1641  {
1642  auto factoryFun = BackendRegistryInstance().GetFactory(chosenBackend);
1643  auto backendPtr = factoryFun();
1644  ARMNN_ASSERT(backendPtr.get() != nullptr);
1645 
1647  auto backendSpecificOptimizations = backendPtr->GetOptimizations();
1649 
1650  if (!backendSpecificOptimizations.empty())
1651  {
1652  Optimizer::Pass(optNetObjPtr->pOptimizedNetworkImpl->GetGraph(), backendSpecificOptimizations);
1653  }
1654  }
1655 
1656  return optNet;
1657 }
OptimizeForConnection< Layer, PermuteLayer, SquashEqualSiblingsImpl< PermuteLayer > > SquashEqualPermuteSiblings
+
void ReportError(const std::string &errorMessage, Optional< std::vector< std::string > &> errorMessages)
Definition: Network.cpp:563
+
OptimizationResult AssignBackends(OptimizedNetworkImpl *optNetObjPtr, BackendSettings &backendSettings, Graph::Iterator &firstLayer, Graph::Iterator &lastLayer, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:869
+
FactoryFunction GetFactory(const BackendId &id) const
+
OptimizeForConnection< PermuteLayer, PermuteLayer, OptimizeInversePermutesImpl< PermuteLayer > > OptimizeInversePermutes
+
Optimizer::Optimizations MakeOptimizations(Args &&... args)
Definition: Optimizer.hpp:43
+
OptimizeForConnection< TransposeLayer, TransposeLayer, OptimizeInversePermutesImpl< TransposeLayer > > OptimizeInverseTransposes
+
OptimizeForConnection< TransposeLayer, BatchToSpaceNdLayer, PermuteAndBatchToSpaceAsDepthToSpaceImpl< TransposeLayer > > TransposeAndBatchToSpaceAsDepthToSpace
+
OptimizeForExclusiveConnection< DepthwiseConvolution2dLayer, BatchNormalizationLayer, FuseBatchNorm< DepthwiseConvolution2dLayer, armnn::DataType::Float32 > > FuseBatchNormIntoDepthwiseConvolution2DFloat32
+
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
Definition: Deprecated.hpp:33
+
static void Pass(Graph &graph, const Optimizations &optimizations)
Definition: Optimizer.cpp:16
+
OptimizeForExclusiveConnection< DepthwiseConvolution2dLayer, BatchNormalizationLayer, FuseBatchNorm< DepthwiseConvolution2dLayer, armnn::DataType::Float16 > > FuseBatchNormIntoDepthwiseConvolution2DFloat16
+
OptimizeForExclusiveConnection< Convolution2dLayer, BatchNormalizationLayer, FuseBatchNorm< Convolution2dLayer, armnn::DataType::Float16 > > FuseBatchNormIntoConvolution2DFloat16
+
OptimizeForExclusiveConnection< Convolution2dLayer, BatchNormalizationLayer, FuseBatchNorm< Convolution2dLayer, armnn::DataType::Float32 > > FuseBatchNormIntoConvolution2DFloat32
+
BackendRegistry & BackendRegistryInstance()
+
OptimizeForConnection< Layer, ReshapeLayer, SquashEqualSiblingsImpl< ReshapeLayer > > SquashEqualReshapeSiblings
+
OptimizeForConnection< Layer, TransposeLayer, MoveTransposeUpImpl > MoveTransposeUp
+
OptimizeForConnection< PadLayer, Convolution2dLayer, FoldPadIntoConvolution2dImpl > FoldPadIntoConvolution2d
+
LayerList::const_iterator Iterator
Definition: Graph.hpp:50
+
OptimizeForType< Layer, AddDebugImpl > InsertDebugLayer
Definition: AddDebug.hpp:34
+
OptimizeForConnection< ReshapeLayer, ReshapeLayer, OptimizeConsecutiveReshapesImpl > OptimizeConsecutiveReshapes
+
OptimizeForConnection< ConvertFp16ToFp32Layer, ConvertFp32ToFp16Layer, OptimizeInverseConversionsImpl > OptimizeInverseConversionsFp16
+
OptimizeForConnection< PermuteLayer, BatchToSpaceNdLayer, PermuteAndBatchToSpaceAsDepthToSpaceImpl< PermuteLayer > > PermuteAndBatchToSpaceAsDepthToSpace
+
OptimizeForConnection< Layer, PermuteLayer, MovePermuteUpImpl > MovePermuteUp
+
ConvertConstants< Float32ToFloat16, IsFloat16Layer > ConvertConstantsFloatToHalf
+
OptimizeForType< TransposeLayer, TransposeAsReshapeImpl > TransposeAsReshape
+
#define ARMNN_NO_DEPRECATE_WARN_END
Definition: Deprecated.hpp:34
+
OptimizationResult ApplyBackendOptimizations(OptimizedNetworkImpl *optNetObjPtr, BackendSettings &backendSettings, BackendsMap &backends, const ModelOptions &modelOptions, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:1028
+
std::unique_ptr< IOptimizedNetwork, void(*)(IOptimizedNetwork *network)> IOptimizedNetworkPtr
Definition: INetwork.hpp:174
+
#define ARMNN_ASSERT(COND)
Definition: Assert.hpp:14
+
OptimizeForType< PermuteLayer, PermuteAsReshapeImpl > PermuteAsReshape
+
OptimizeForConnection< Layer, TransposeLayer, SquashEqualSiblingsImpl< TransposeLayer > > SquashEqualTransposeSiblings
+
ConvertConstants< Float16ToFloat32, IsFloat32Layer > ConvertConstantsHalfToFloat
+
BackendsMap CreateSupportedBackends(TensorHandleFactoryRegistry &handleFactoryRegistry, BackendSettings &backendSettings)
Definition: Network.cpp:1009
+
OptimizeForConnection< ConvertFp32ToFp16Layer, ConvertFp16ToFp32Layer, OptimizeInverseConversionsImpl > OptimizeInverseConversionsFp32
+
OptimizeForType< Layer, ConvertFp32NetworkToFp16Impl > Fp32NetworkToFp16Converter
+
OptimizationResult SelectTensorHandleStrategy(Graph &optGraph, BackendsMap &backends, TensorHandleFactoryRegistry &registry, bool importEnabled, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:1434
+
OptimizeForType< Layer, AddBroadcastReshapeLayerImpl > AddBroadcastReshapeLayer
+
static void Destroy(IOptimizedNetwork *network)
Definition: Network.cpp:532
+
OptimizeForType< Layer, ConvertFp32NetworkToBf16Impl > Fp32NetworkToBf16Converter
+
std::map< BackendId, std::unique_ptr< class IBackendInternal > > BackendsMap
Definition: Network.hpp:310
+
+
+
+ +

◆ TestConnectionPreservation

+ +
+
+ + + + + +
+ + + + +
friend class TestConnectionPreservation
+
+friend
+
+ +

Definition at line 683 of file INetwork.hpp.

+ +
+
+ +

◆ VisitLayersTopologically

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void VisitLayersTopologically (const INetworkinputNetwork,
IStrategystrategy 
)
+
+friend
+
+ +

Definition at line 73 of file QuantizerTest.cpp.

+
74 {
75  auto graph = inputNetwork->pNetworkImpl->GetGraph().TopologicalSort();
76 
77  ApplyStrategyToLayers(graph, visitor);
78 }
void ApplyStrategyToLayers(const LayerContainer &layerContainer, IStrategy &strategy)
+
+
+
+

Member Data Documentation

+ +

◆ pNetworkImpl

+ +
+
+ + + + + +
+ + + + +
std::unique_ptr<NetworkImpl> pNetworkImpl
+
+protected
+
+ +

Definition at line 693 of file INetwork.hpp.

+ +

Referenced by INetwork::Accept(), INetwork::AddAbsLayer(), INetwork::AddActivationLayer(), INetwork::AddAdditionLayer(), INetwork::AddArgMinMaxLayer(), INetwork::AddBatchNormalizationLayer(), INetwork::AddBatchToSpaceNdLayer(), INetwork::AddComparisonLayer(), INetwork::AddConcatLayer(), INetwork::AddConstantLayer(), INetwork::AddConvolution2dLayer(), INetwork::AddDepthToSpaceLayer(), INetwork::AddDepthwiseConvolution2dLayer(), INetwork::AddDequantizeLayer(), INetwork::AddDetectionPostProcessLayer(), INetwork::AddDivisionLayer(), INetwork::AddElementwiseUnaryLayer(), INetwork::AddEqualLayer(), INetwork::AddFillLayer(), INetwork::AddFloorLayer(), INetwork::AddFullyConnectedLayer(), INetwork::AddGatherLayer(), INetwork::AddGreaterLayer(), INetwork::AddInputLayer(), INetwork::AddInstanceNormalizationLayer(), INetwork::AddL2NormalizationLayer(), INetwork::AddLogicalBinaryLayer(), INetwork::AddLogSoftmaxLayer(), INetwork::AddLstmLayer(), INetwork::AddMaximumLayer(), INetwork::AddMeanLayer(), INetwork::AddMergeLayer(), INetwork::AddMergerLayer(), INetwork::AddMinimumLayer(), INetwork::AddMultiplicationLayer(), INetwork::AddNormalizationLayer(), INetwork::AddOutputLayer(), INetwork::AddPadLayer(), INetwork::AddPermuteLayer(), INetwork::AddPooling2dLayer(), INetwork::AddPreluLayer(), INetwork::AddQLstmLayer(), INetwork::AddQuantizedLstmLayer(), INetwork::AddQuantizeLayer(), INetwork::AddRankLayer(), INetwork::AddReduceLayer(), INetwork::AddReshapeLayer(), INetwork::AddResizeBilinearLayer(), INetwork::AddResizeLayer(), INetwork::AddRsqrtLayer(), INetwork::AddSliceLayer(), INetwork::AddSoftmaxLayer(), INetwork::AddSpaceToBatchNdLayer(), INetwork::AddSpaceToDepthLayer(), INetwork::AddSplitterLayer(), INetwork::AddStackLayer(), INetwork::AddStandInLayer(), INetwork::AddStridedSliceLayer(), INetwork::AddSubtractionLayer(), INetwork::AddSwitchLayer(), INetwork::AddTransposeConvolution2dLayer(), INetwork::AddTransposeLayer(), INetwork::ExecuteStrategy(), armnn::GetInputTensorInfo(), armnn::Optimize(), INetwork::PrintGraph(), and armnn::VisitLayersTopologically().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + -- cgit v1.2.1