ArmNN
 22.05
Network.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
8 #include <armnn/INetwork.hpp>
9 #include <armnn/LstmParams.hpp>
11 #include <armnn/TensorFwd.hpp>
12 #include <armnn/Types.hpp>
13 
14 #include <Graph.hpp>
15 #include <Layer.hpp>
16 #include <OptimizedNetworkImpl.hpp>
18 
19 #include <string>
20 #include <vector>
21 #include <map>
22 #include <memory>
23 
24 namespace armnn
25 {
26 class Graph;
27 
28 using NetworkImplPtr = std::unique_ptr<NetworkImpl, void (*)(NetworkImpl* network)>;
29 
30 /// Private implementation of INetwork.
32 {
33 public:
34  NetworkImpl(NetworkOptions networkOptions = {});
35  ~NetworkImpl();
36 
37  const Graph& GetGraph() const
38  { return *m_Graph; }
39 
41 
42  IConnectableLayer* AddInputLayer(LayerBindingId id, const char* name = nullptr);
43 
44  IConnectableLayer* AddActivationLayer(const ActivationDescriptor& activationDescriptor,
45  const char* name = nullptr);
46 
47  IConnectableLayer* AddAdditionLayer(const char* name = nullptr);
48 
50  const char* name = nullptr);
51 
53  const ConstTensor& mean,
54  const ConstTensor& variance,
55  const ConstTensor& beta,
56  const ConstTensor& gamma,
57  const char* name = nullptr);
58 
59  IConnectableLayer* AddBatchToSpaceNdLayer(const BatchToSpaceNdDescriptor& batchToSpaceNdDescriptor,
60  const char* name = nullptr);
61 
62  IConnectableLayer* AddCastLayer(const char* name = nullptr);
63 
64  IConnectableLayer* AddChannelShuffleLayer(const ChannelShuffleDescriptor& channelShuffleDescriptor,
65  const char* name = nullptr);
66 
67  IConnectableLayer* AddComparisonLayer(const ComparisonDescriptor& comparisonDescriptor,
68  const char* name = nullptr);
69 
70  IConnectableLayer* AddConcatLayer(const ConcatDescriptor& concatDescriptor,
71  const char* name = nullptr);
72 
73  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
74  const char* name = nullptr);
75 
76  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This AddConvolution2dLayer overload is deprecated", "22.11")
77  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
78  const ConstTensor& weights,
79  const Optional<ConstTensor>& biases,
80  const char* name = nullptr);
81 
82  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This AddConvolution2dLayer overload is deprecated", "22.11")
83  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
84  const ConstTensor& weights,
85  const char* name = nullptr);
86 
87  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This AddConvolution2dLayer overload is deprecated", "22.11")
88  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
89  const ConstTensor& weights,
90  const ConstTensor& biases,
91  const char* name = nullptr);
92 
93  IConnectableLayer* AddConvolution3dLayer(const Convolution3dDescriptor& convolution3dDescriptor,
94  const char* name = nullptr);
95 
96  IConnectableLayer* AddConstantLayer(const ConstTensor& input, const char* name = nullptr);
97 
98  IConnectableLayer* AddDepthToSpaceLayer(const DepthToSpaceDescriptor& depthToSpaceDescriptor,
99  const char* name = nullptr);
100 
102  const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
103  const char* name = nullptr);
104 
105  ARMNN_DEPRECATED_MSG("This AddDepthwiseConvolution2dLayer overload is deprecated")
107  const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
108  const ConstTensor& weights,
109  const Optional<ConstTensor>& biases,
110  const char* name = nullptr);
111 
112  IConnectableLayer* AddDequantizeLayer(const char* name = nullptr);
113 
115  const DetectionPostProcessDescriptor& descriptor,
116  const ConstTensor& anchors,
117  const char* name = nullptr);
118 
119  IConnectableLayer* AddDivisionLayer(const char* name = nullptr);
120 
121  IConnectableLayer* AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor& elementwiseUnaryDescriptor,
122  const char* name = nullptr);
123 
124  IConnectableLayer* AddMergeLayer(const char* name = nullptr);
125 
126  IConnectableLayer* AddFillLayer(const FillDescriptor& fillDescriptor,
127  const char* name = nullptr);
128 
129  IConnectableLayer* AddFloorLayer(const char* name = nullptr);
130 
131  IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
132  const char* name = nullptr);
133 
134  IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
135  const Optional<ConstTensor>& weights,
136  const Optional<ConstTensor>& biases,
137  const char* name = nullptr);
138 
139  IConnectableLayer* AddGatherLayer(const GatherDescriptor& gatherDescriptor,
140  const char* name = nullptr);
141 
142  IConnectableLayer* AddGatherNdLayer(const char* name = nullptr);
143 
145  const char* name = nullptr);
146 
148  const char* name = nullptr);
149 
150  IConnectableLayer* AddLogSoftmaxLayer(const LogSoftmaxDescriptor& logSoftmaxDescriptor,
151  const char* name = nullptr);
152 
153  IConnectableLayer* AddLogicalBinaryLayer(const LogicalBinaryDescriptor& logicalBinaryDescriptor,
154  const char* name = nullptr);
155 
156  IConnectableLayer* AddLstmLayer(const LstmDescriptor& descriptor,
157  const LstmInputParams& params,
158  const char* name = nullptr);
159 
160  IConnectableLayer* AddMaximumLayer(const char* name = nullptr);
161 
162  IConnectableLayer* AddMeanLayer(const MeanDescriptor& meanDescriptor, const char* name = nullptr);
163 
164  IConnectableLayer* AddMinimumLayer(const char* name = nullptr);
165 
166  IConnectableLayer* AddMultiplicationLayer(const char* name = nullptr);
167 
168  IConnectableLayer* AddNormalizationLayer(const NormalizationDescriptor& normalizationDescriptor,
169  const char* name = nullptr);
170 
171  IConnectableLayer* AddOutputLayer(LayerBindingId id, const char* name = nullptr);
172 
173  IConnectableLayer* AddPadLayer(const PadDescriptor& padDescriptor, const char* name = nullptr);
174 
175  IConnectableLayer* AddPermuteLayer(const PermuteDescriptor& permuteDescriptor,
176  const char* name = nullptr);
177 
178  IConnectableLayer* AddPooling2dLayer(const Pooling2dDescriptor& pooling2dDescriptor,
179  const char* name = nullptr);
180 
181  IConnectableLayer* AddPooling3dLayer(const Pooling3dDescriptor& pooling3dDescriptor,
182  const char* name = nullptr);
183 
184  IConnectableLayer* AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor,
185  CompiledBlobPtr compiledBlobPtr,
186  const Optional<BackendId>& backend,
187  const char* name = nullptr);
188 
189  IConnectableLayer* AddPreluLayer(const char* name = nullptr);
190 
191  IConnectableLayer* AddQuantizeLayer(const char* name = nullptr);
192 
194  const LstmInputParams& params,
195  const char* name = nullptr);
196 
198  const char* name = nullptr);
199 
200  IConnectableLayer* AddRankLayer(const char* name = nullptr);
201 
202  IConnectableLayer* AddReduceLayer(const ReduceDescriptor& reduceDescriptor,
203  const char* name = nullptr);
204 
205  IConnectableLayer* AddResizeLayer(const ResizeDescriptor& resizeDescriptor,
206  const char* name = nullptr);
207 
208  IConnectableLayer* AddReshapeLayer(const ReshapeDescriptor& reshapeDescriptor,
209  const char* name = nullptr);
210 
211  IConnectableLayer* AddShapeLayer(const char* name = nullptr);
212 
213  IConnectableLayer* AddSliceLayer(const SliceDescriptor& sliceDescriptor, const char* name = nullptr);
214 
215  IConnectableLayer* AddSoftmaxLayer(const SoftmaxDescriptor& softmaxDescriptor,
216  const char* name = nullptr);
217 
218  IConnectableLayer* AddSplitterLayer(const ViewsDescriptor& splitterDescriptor,
219  const char* name = nullptr);
220 
221  IConnectableLayer* AddSpaceToBatchNdLayer(const SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor,
222  const char* name = nullptr);
223 
224  IConnectableLayer* AddSpaceToDepthLayer(const SpaceToDepthDescriptor& spaceToDepthDescriptor,
225  const char* name = nullptr);
226 
227  IConnectableLayer* AddStackLayer(const StackDescriptor& stackDescriptor,
228  const char* name = nullptr);
229 
231  const char* name = nullptr);
232 
233  IConnectableLayer* AddStridedSliceLayer(const StridedSliceDescriptor& stridedSliceDescriptor,
234  const char* name = nullptr);
235 
236  IConnectableLayer* AddSubtractionLayer(const char* name = nullptr);
237 
238  IConnectableLayer* AddSwitchLayer(const char* name = nullptr);
239 
241  const ConstTensor& weights,
242  const Optional<ConstTensor>& biases,
243  const char* name = nullptr);
244 
245  IConnectableLayer* AddTransposeLayer(const TransposeDescriptor& transposeDescriptor,
246  const char* name = nullptr);
247 
249  const LstmInputParams& params,
250  const char* name = nullptr);
251 
252  IConnectableLayer* AddConvertFp16ToFp32Layer(const char* name = nullptr);
253 
254  IConnectableLayer* AddConvertFp32ToFp16Layer(const char* name = nullptr);
255 
257  void Accept(ILayerVisitor& visitor) const;
259 
260  void ExecuteStrategy(IStrategy& strategy) const;
261 
262 private:
263 
264  bool GetShapeInferenceMethod();
265  bool GetAllowExpandedDims();
266  NetworkOptions m_NetworkOptions;
267 
268  std::unique_ptr<Graph> m_Graph;
269  ModelOptions m_ModelOptions;
270 };
271 
273 {
274  bool m_Warning;
275  bool m_Error;
276 
278  : m_Warning(warning), m_Error(error)
279  {}
280 
282  : OptimizationResult(false, false)
283  {}
284 
285  bool IsOk() const
286  { return !m_Warning && !m_Error; }
287  bool IsWarningOnly() const
288  { return m_Warning && !m_Error; }
289  bool IsError() const
290  { return m_Error; }
291 
292 };
293 
294 using BackendsMap = std::map<BackendId, std::unique_ptr<class IBackendInternal>>;
295 
297  struct BackendSettings& backendSettings);
298 
300  BackendsMap& backends,
301  TensorHandleFactoryRegistry& registry,
302  bool importEnabled,
303  Optional<std::vector<std::string>&> errMessages);
304 
306  BackendSettings& backendSettings,
307  Graph::Iterator& firstLayer,
308  Graph::Iterator& lastLayer,
309  Optional<std::vector<std::string>&> errMessages);
310 
311 
313  BackendSettings& backendSettings,
316  Optional<std::vector<std::string>&> errMessages);
317 
318 } // namespace armnn
IConnectableLayers::iterator IConnectableLayerIterator
IConnectableLayer * AddReduceLayer(const ReduceDescriptor &reduceDescriptor, const char *name=nullptr)
Definition: Network.cpp:2230
IConnectableLayer * AddGatherNdLayer(const char *name=nullptr)
Definition: Network.cpp:2479
OptimizationResult AssignBackends(OptimizedNetworkImpl *optNetObjPtr, BackendSettings &backendSettings, Graph::Iterator &firstLayer, Graph::Iterator &lastLayer, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:1018
A ViewsDescriptor for the SplitterLayer.
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:66
ARMNN_NO_DEPRECATE_WARN_BEGIN void Accept(ILayerVisitor &visitor) const
Definition: Network.cpp:2902
IConnectableLayer * AddResizeLayer(const ResizeDescriptor &resizeDescriptor, const char *name=nullptr)
Definition: Network.cpp:2236
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
IConnectableLayer * AddQuantizeLayer(const char *name=nullptr)
Definition: Network.cpp:2457
OptimizationResult(bool warning, bool error)
Definition: Network.hpp:277
IConnectableLayer * AddRankLayer(const char *name=nullptr)
Definition: Network.cpp:2225
A ReshapeDescriptor for the ReshapeLayer.
IConnectableLayer * AddAdditionLayer(const char *name=nullptr)
Definition: Network.cpp:2193
IConnectableLayer * AddChannelShuffleLayer(const ChannelShuffleDescriptor &channelShuffleDescriptor, const char *name=nullptr)
Definition: Network.cpp:1918
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
Definition: Deprecated.hpp:33
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:89
IConnectableLayer * AddPooling2dLayer(const Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr)
Definition: Network.cpp:2135
NetworkImpl(NetworkOptions networkOptions={})
Definition: Network.cpp:1888
std::vector< BackendOptions > ModelOptions
IConnectableLayer * AddMergeLayer(const char *name=nullptr)
Definition: Network.cpp:2484
A Convolution2dDescriptor for the Convolution2dLayer.
IConnectableLayer * AddPrecompiledLayer(const PreCompiledDescriptor &preCompiledDescriptor, CompiledBlobPtr compiledBlobPtr, const Optional< BackendId > &backend, const char *name=nullptr)
Definition: Network.cpp:2868
IConnectableLayer * AddQuantizedLstmLayer(const QuantizedLstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2540
IConnectableLayer * AddConstantLayer(const ConstTensor &input, const char *name=nullptr)
Definition: Network.cpp:2264
IConnectableLayer * AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:1930
IConnectableLayer * AddConvertFp32ToFp16Layer(const char *name=nullptr)
Definition: Network.cpp:2065
IConnectableLayer * AddNormalizationLayer(const NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr)
Definition: Network.cpp:2159
Status PrintGraph()
Definition: Network.cpp:1897
IConnectableLayer * AddMeanLayer(const MeanDescriptor &meanDescriptor, const char *name=nullptr)
Definition: Network.cpp:2447
IConnectableLayer * AddMinimumLayer(const char *name=nullptr)
Definition: Network.cpp:2188
IConnectableLayer * AddConvolution2dLayer(const Convolution2dDescriptor &convolution2dDescriptor, const char *name=nullptr)
Definition: Network.cpp:2030
IConnectableLayer * AddSpaceToDepthLayer(const SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr)
Definition: Network.cpp:2285
std::vector< BackendOptions > NetworkOptions
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
IConnectableLayer * AddDepthwiseConvolution2dLayer(const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const char *name=nullptr)
Definition: Network.cpp:2082
IConnectableLayer * AddActivationLayer(const ActivationDescriptor &activationDescriptor, const char *name=nullptr)
Definition: Network.cpp:2147
Copyright (c) 2021 ARM Limited and Contributors.
LayerList::const_iterator Iterator
Definition: Graph.hpp:53
IConnectableLayer * AddLogSoftmaxLayer(const LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr)
Definition: Network.cpp:2258
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
Private implementation of INetwork.
Definition: Network.hpp:31
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
Definition: Types.hpp:290
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
A StackDescriptor for the StackLayer.
std::unique_ptr< void, CompiledBlobDeleter > CompiledBlobPtr
Definition: INetwork.hpp:245
IConnectableLayer * AddGatherLayer(const GatherDescriptor &gatherDescriptor, const char *name=nullptr)
Definition: Network.cpp:2473
IConnectableLayer * AddFloorLayer(const char *name=nullptr)
Definition: Network.cpp:2291
A PadDescriptor for the PadLayer.
IConnectableLayer * AddMultiplicationLayer(const char *name=nullptr)
Definition: Network.cpp:2198
IConnectableLayer * AddQLstmLayer(const QLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2578
IConnectableLayer * AddStridedSliceLayer(const StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr)
Definition: Network.cpp:2467
IConnectableLayer * AddInputLayer(LayerBindingId id, const char *name=nullptr)
Definition: Network.cpp:1903
An LstmDescriptor for the LstmLayer.
#define ARMNN_NO_DEPRECATE_WARN_END
Definition: Deprecated.hpp:34
IConnectableLayer * AddTransposeConvolution2dLayer(const TransposeConvolution2dDescriptor &descriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
Definition: Network.cpp:2499
IConnectableLayer * AddPreluLayer(const char *name=nullptr)
Definition: Network.cpp:2494
IConnectableLayer * AddConvertFp16ToFp32Layer(const char *name=nullptr)
Definition: Network.cpp:2060
A L2NormalizationDescriptor for the L2NormalizationLayer.
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:67
An OriginsDescriptor for the ConcatLayer.
A ReduceDescriptor for the REDUCE operators.
IConnectableLayer * AddDetectionPostProcessLayer(const DetectionPostProcessDescriptor &descriptor, const ConstTensor &anchors, const char *name=nullptr)
Definition: Network.cpp:2119
A FullyConnectedDescriptor for the FullyConnectedLayer.
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
Definition: Tensor.hpp:327
A GatherDescriptor for the GatherLayer.
Status
enumeration
Definition: Types.hpp:42
IConnectableLayer * AddDivisionLayer(const char *name=nullptr)
Definition: Network.cpp:2437
ARMNN_NO_DEPRECATE_WARN_BEGIN struct ARMNN_DEPRECATED_MSG_REMOVAL_DATE("ResizeBilinearQueueDescriptor is deprecated use ResizeQueueDescriptor instead", "22.08") ResizeBilinearQueueDescriptor
IConnectableLayer * AddPooling3dLayer(const Pooling3dDescriptor &pooling3dDescriptor, const char *name=nullptr)
Definition: Network.cpp:2141
IConnectableLayer * AddArgMinMaxLayer(const ArgMinMaxDescriptor &desc, const char *name=nullptr)
Definition: Network.cpp:2153
IConnectableLayer * AddOutputLayer(LayerBindingId id, const char *name=nullptr)
Definition: Network.cpp:2203
IConnectableLayer * AddDequantizeLayer(const char *name=nullptr)
Definition: Network.cpp:2462
IConnectableLayer * AddConcatLayer(const ConcatDescriptor &concatDescriptor, const char *name=nullptr)
Definition: Network.cpp:2024
A StandInDescriptor for the StandIn layer.
A QLstmDescriptor for the QLstmLayer.
IConnectableLayer * AddSwitchLayer(const char *name=nullptr)
Definition: Network.cpp:2489
IConnectableLayer * AddSubtractionLayer(const char *name=nullptr)
Definition: Network.cpp:2442
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:36
IConnectableLayer * AddLogicalBinaryLayer(const LogicalBinaryDescriptor &logicalBinaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:2720
A SliceDescriptor for the SliceLayer.
A Convolution3dDescriptor for the Convolution3dLayer.
IConnectableLayer * AddStandInLayer(const StandInDescriptor &descriptor, const char *name=nullptr)
Definition: Network.cpp:2534
IConnectableLayer * AddPermuteLayer(const PermuteDescriptor &permuteDescriptor, const char *name=nullptr)
Definition: Network.cpp:2129
A Pooling3dDescriptor for the Pooling3dLayer.
IConnectableLayer * AddL2NormalizationLayer(const L2NormalizationDescriptor &desc, const char *name=nullptr)
Definition: Network.cpp:2252
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
bool IsWarningOnly() const
Definition: Network.hpp:287
IConnectableLayer * AddTransposeLayer(const TransposeDescriptor &transposeDescriptor, const char *name=nullptr)
Definition: Network.cpp:2521
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
IConnectableLayer * AddUnidirectionalSequenceLstmLayer(const UnidirectionalSequenceLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2726
IConnectableLayer * AddFullyConnectedLayer(const FullyConnectedDescriptor &fullyConnectedDescriptor, const char *name=nullptr)
Definition: Network.cpp:1942
IConnectableLayer * AddReshapeLayer(const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr)
Definition: Network.cpp:2273
IConnectableLayer * AddMaximumLayer(const char *name=nullptr)
Definition: Network.cpp:2183
IConnectableLayer * AddShapeLayer(const char *name=nullptr)
Definition: Network.cpp:2241
BackendsMap CreateSupportedBackends(TensorHandleFactoryRegistry &handleFactoryRegistry, BackendSettings &backendSettings)
Definition: Network.cpp:1120
IConnectableLayer * AddCastLayer(const char *name=nullptr)
Definition: Network.cpp:1914
IConnectableLayer * AddStackLayer(const StackDescriptor &stackDescriptor, const char *name=nullptr)
Definition: Network.cpp:2527
IConnectableLayer * AddSoftmaxLayer(const SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr)
Definition: Network.cpp:2171
IConnectableLayer * AddFillLayer(const FillDescriptor &fillDescriptor, const char *name=nullptr)
Definition: Network.cpp:1936
const Graph & GetGraph() const
Definition: Network.hpp:37
A MeanDescriptor for the MeanLayer.
IConnectableLayer * AddSpaceToBatchNdLayer(const SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr)
Definition: Network.cpp:2279
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
IConnectableLayer * AddComparisonLayer(const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
Definition: Network.cpp:1924
OptimizationResult SelectTensorHandleStrategy(Graph &optGraph, BackendsMap &backends, TensorHandleFactoryRegistry &registry, bool importEnabled, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:1601
#define ARMNN_DEPRECATED_MSG(message)
Definition: Deprecated.hpp:43
IConnectableLayer * AddBatchNormalizationLayer(const BatchNormalizationDescriptor &desc, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr)
Definition: Network.cpp:2208
A PreCompiledDescriptor for the PreCompiledLayer.
IConnectableLayer * AddConvolution3dLayer(const Convolution3dDescriptor &convolution3dDescriptor, const char *name=nullptr)
Definition: Network.cpp:2070
A Pooling2dDescriptor for the Pooling2dLayer.
A NormalizationDescriptor for the NormalizationLayer.
IConnectableLayer * AddDepthToSpaceLayer(const DepthToSpaceDescriptor &depthToSpaceDescriptor, const char *name=nullptr)
Definition: Network.cpp:2076
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
ARMNN_NO_DEPRECATE_WARN_END void ExecuteStrategy(IStrategy &strategy) const
Definition: Network.cpp:2911
IConnectableLayer * AddSplitterLayer(const ViewsDescriptor &splitterDescriptor, const char *name=nullptr)
Definition: Network.cpp:2177
IConnectableLayer * AddBatchToSpaceNdLayer(const BatchToSpaceNdDescriptor &batchToSpaceNdDescriptor, const char *name=nullptr)
Definition: Network.cpp:1908
A ChannelShuffleDescriptor for the ChannelShuffle operator.
IConnectableLayer * AddLstmLayer(const LstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2296
IConnectableLayer * AddPadLayer(const PadDescriptor &padDescriptor, const char *name=nullptr)
Definition: Network.cpp:2452
A SoftmaxDescriptor for the SoftmaxLayer.
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A FillDescriptor for the FillLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
std::map< BackendId, std::unique_ptr< class IBackendInternal > > BackendsMap
Definition: Network.hpp:294
A PermuteDescriptor for the PermuteLayer.
std::unique_ptr< NetworkImpl, void(*)(NetworkImpl *network)> NetworkImplPtr
Definition: Network.hpp:28
IConnectableLayer * AddSliceLayer(const SliceDescriptor &sliceDescriptor, const char *name=nullptr)
Definition: Network.cpp:2166
IConnectableLayer * AddInstanceNormalizationLayer(const InstanceNormalizationDescriptor &desc, const char *name=nullptr)
Definition: Network.cpp:2246