ArmNN
 21.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/LstmParams.hpp>
10 #include <armnn/TensorFwd.hpp>
11 #include <armnn/Types.hpp>
12 
13 #include <armnn/INetwork.hpp>
14 
15 #include <string>
16 #include <vector>
17 #include <map>
18 #include <memory>
19 
20 #include "Graph.hpp"
21 #include "Layer.hpp"
22 #include "OptimizedNetworkImpl.hpp"
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 { return *m_Graph; }
38 
40 
41  IConnectableLayer* AddInputLayer(LayerBindingId id, const char* name=nullptr);
42 
44  const char* name = nullptr);
45 
46  IConnectableLayer* AddBatchToSpaceNdLayer(const BatchToSpaceNdDescriptor& batchToSpaceNdDescriptor,
47  const char* name = nullptr);
48 
49  IConnectableLayer* AddCastLayer(const char* name = nullptr);
50 
51  IConnectableLayer* AddComparisonLayer(const ComparisonDescriptor& comparisonDescriptor,
52  const char* name = nullptr);
53 
54  IConnectableLayer* AddConcatLayer(const ConcatDescriptor& concatDescriptor,
55  const char* name = nullptr);
56 
57  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
58  const ConstTensor& weights,
59  const Optional<ConstTensor>& biases,
60  const char* name = nullptr);
61 
62  ARMNN_DEPRECATED_MSG("This AddConvolution2dLayer overload is deprecated")
63  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
64  const ConstTensor& weights,
65  const char* name = nullptr);
66 
67  ARMNN_DEPRECATED_MSG("This AddConvolution2dLayer overload is deprecated")
68  IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
69  const ConstTensor& weights,
70  const ConstTensor& biases,
71  const char* name = nullptr);
72 
73  IConnectableLayer* AddDepthToSpaceLayer(const DepthToSpaceDescriptor& depthToSpaceDescriptor,
74  const char* name = nullptr);
75 
77  const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
78  const ConstTensor& weights,
79  const Optional<ConstTensor>& biases,
80  const char* name = nullptr);
81 
82  ARMNN_DEPRECATED_MSG("This AddDepthwiseConvolution2dLayer overload is deprecated")
84  const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
85  const ConstTensor& weights,
86  const char* name = nullptr);
87 
88  ARMNN_DEPRECATED_MSG("This AddDepthwiseConvolution2dLayer overload is deprecated")
90  const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
91  const ConstTensor& weights,
92  const ConstTensor& biases,
93  const char* name = nullptr);
94 
95  IConnectableLayer* AddDequantizeLayer(const char* name = nullptr);
96 
98  const DetectionPostProcessDescriptor& descriptor,
99  const ConstTensor& anchors,
100  const char* name = nullptr);
101 
102  IConnectableLayer* AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor& elementwiseUnaryDescriptor,
103  const char* name = nullptr);
104 
105  IConnectableLayer* AddFillLayer(const FillDescriptor& fillDescriptor,
106  const char* name = nullptr);
107 
108  IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
109  const Optional<ConstTensor>& weights,
110  const Optional<ConstTensor>& biases,
111  const char* name = nullptr);
112 
113  IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
114  const ConstTensor& weights,
115  const Optional<ConstTensor>& biases,
116  const char* name = nullptr);
117 
118  ARMNN_DEPRECATED_MSG("This AddFullyConnectedLayer overload is deprecated")
119  IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
120  const ConstTensor& weights,
121  const char* name = nullptr);
122 
123  ARMNN_DEPRECATED_MSG("This AddFullyConnectedLayer overload is deprecated")
124  IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
125  const ConstTensor& weights,
126  const ConstTensor& biases,
127  const char* name = nullptr);
128 
129  ARMNN_DEPRECATED_MSG("This AddGatherLayer overload is deprecated")
130  IConnectableLayer* AddGatherLayer(const char* name = nullptr);
131 
132  IConnectableLayer* AddGatherLayer(const GatherDescriptor& gatherDescriptor,
133  const char* name = nullptr);
134 
135  IConnectableLayer* AddPermuteLayer(const PermuteDescriptor& permuteDescriptor,
136  const char* name = nullptr);
137 
138  IConnectableLayer* AddPooling2dLayer(const Pooling2dDescriptor& pooling2dDescriptor,
139  const char* name = nullptr);
140 
141  IConnectableLayer* AddActivationLayer(const ActivationDescriptor& activationDescriptor,
142  const char* name = nullptr);
143 
144  IConnectableLayer* AddNormalizationLayer(const NormalizationDescriptor& normalizationDescriptor,
145  const char* name = nullptr);
146 
147  IConnectableLayer* AddSliceLayer(const SliceDescriptor& sliceDescriptor, const char* name = nullptr);
148 
149  IConnectableLayer* AddSoftmaxLayer(const SoftmaxDescriptor& softmaxDescriptor,
150  const char* name = nullptr);
151 
152  IConnectableLayer* AddSplitterLayer(const ViewsDescriptor& splitterDescriptor,
153  const char* name = nullptr);
154 
155  ARMNN_DEPRECATED_MSG("Use AddConcatLayer instead")
156  IConnectableLayer* AddMergerLayer(const MergerDescriptor& mergerDescriptor,
157  const char* name = nullptr);
158 
159  ARMNN_DEPRECATED_MSG("Use AddElementwiseUnaryLayer instead")
160  IConnectableLayer* AddAbsLayer(const char* name = nullptr);
161 
162  IConnectableLayer* AddAdditionLayer(const char* name = nullptr);
163 
164  IConnectableLayer* AddMultiplicationLayer(const char* name = nullptr);
165 
167  const ConstTensor& mean,
168  const ConstTensor& variance,
169  const ConstTensor& beta,
170  const ConstTensor& gamma,
171  const char* name = nullptr);
172 
173  IConnectableLayer* AddRankLayer(const char* name = nullptr);
174 
175  ARMNN_DEPRECATED_MSG("Use AddResizeLayer instead")
177  const char* name = nullptr);
178 
179  IConnectableLayer* AddResizeLayer(const ResizeDescriptor& resizeDescriptor,
180  const char* name = nullptr);
181 
182  IConnectableLayer* AddReduceLayer(const ReduceDescriptor& reduceDescriptor,
183  const char* name = nullptr);
184 
186  const char* name = nullptr);
187 
189  const char* name = nullptr);
190 
191  IConnectableLayer* AddLogSoftmaxLayer(const LogSoftmaxDescriptor& logSoftmaxDescriptor,
192  const char* name = nullptr);
193 
194  IConnectableLayer* AddConstantLayer(const ConstTensor& input, const char* name = nullptr);
195 
196  IConnectableLayer* AddReshapeLayer(const ReshapeDescriptor& reshapeDescriptor,
197  const char* name = nullptr);
198 
199  IConnectableLayer* AddSpaceToBatchNdLayer(const SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor,
200  const char* name = nullptr);
201 
202  IConnectableLayer* AddSpaceToDepthLayer(const SpaceToDepthDescriptor& spaceToDepthDescriptor,
203  const char* name = nullptr);
204 
205  IConnectableLayer* AddFloorLayer(const char* name = nullptr);
206 
207  IConnectableLayer* AddOutputLayer(LayerBindingId id, const char* name = nullptr);
208 
209  IConnectableLayer* AddLstmLayer(const LstmDescriptor& descriptor,
210  const LstmInputParams& params,
211  const char* name = nullptr);
212 
213  IConnectableLayer* AddDivisionLayer(const char* name = nullptr);
214 
215  IConnectableLayer* AddSubtractionLayer(const char* name = nullptr);
216 
217  IConnectableLayer* AddMaximumLayer(const char* name = nullptr);
218 
219  IConnectableLayer* AddMeanLayer(const MeanDescriptor& meanDescriptor, const char* name = nullptr);
220 
221  IConnectableLayer* AddPadLayer(const PadDescriptor& padDescriptor, const char* name = nullptr);
222 
223  IConnectableLayer* AddQuantizeLayer(const char* name = nullptr);
224 
225  IConnectableLayer* AddStridedSliceLayer(const StridedSliceDescriptor& stridedSliceDescriptor,
226  const char* name = nullptr);
227 
228  IConnectableLayer* AddMinimumLayer(const char* name = nullptr);
229 
230  ARMNN_DEPRECATED_MSG("Use AddComparisonLayer instead")
231  IConnectableLayer* AddGreaterLayer(const char* name = nullptr);
232 
233  ARMNN_DEPRECATED_MSG("Use AddComparisonLayer instead")
234  IConnectableLayer* AddEqualLayer(const char* name = nullptr);
235 
236  ARMNN_DEPRECATED_MSG("Use AddElementwiseUnaryLayer instead")
237  IConnectableLayer* AddRsqrtLayer(const char* name = nullptr);
238 
239  IConnectableLayer* AddMergeLayer(const char* name = nullptr);
240 
241  IConnectableLayer* AddSwitchLayer(const char* name = nullptr);
242 
243  IConnectableLayer* AddPreluLayer(const char* name = nullptr);
244 
246  const ConstTensor& weights,
247  const Optional<ConstTensor>& biases,
248  const char* name = nullptr);
249 
250  IConnectableLayer* AddTransposeLayer(const TransposeDescriptor& transposeDescriptor,
251  const char* name = nullptr);
252 
253  IConnectableLayer* AddStackLayer(const StackDescriptor& stackDescriptor,
254  const char* name = nullptr);
255 
257  const char* name = nullptr);
258 
260  const LstmInputParams& params,
261  const char* name = nullptr);
262 
264  const char* name = nullptr);
265 
266  IConnectableLayer* AddLogicalBinaryLayer(const LogicalBinaryDescriptor& logicalBinaryDescriptor,
267  const char* name = nullptr);
268 
269  void Accept(ILayerVisitor& visitor) const;
270 
271  void ExecuteStrategy(IStrategy& strategy) const;
272 
273 private:
274  IConnectableLayer* AddFullyConnectedLayerImpl(const FullyConnectedDescriptor& fullyConnectedDescriptor,
275  const Optional<ConstTensor>& weights,
276  const Optional<ConstTensor>& biases,
277  const char* name);
278 
279  IConnectableLayer* AddConvolution2dLayerImpl(const Convolution2dDescriptor& convolution2dDescriptor,
280  const ConstTensor& weights,
281  const Optional<ConstTensor>& biases,
282  const char* name);
283 
284  IConnectableLayer* AddDepthwiseConvolution2dLayerImpl(
285  const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
286  const ConstTensor& weights,
287  const Optional<ConstTensor>& biases,
288  const char* name);
289 
290  bool GetShapeInferenceMethod();
291  NetworkOptions m_NetworkOptions;
292 
293  std::unique_ptr<Graph> m_Graph;
294  ModelOptions m_ModelOptions;
295 };
296 
298 {
299  bool m_Warning;
300  bool m_Error;
301 
303  : m_Warning(warning)
304  , m_Error(error)
305  {}
306 
309  {}
310 
311  bool IsOk() const { return !m_Warning && !m_Error; }
312  bool IsWarningOnly() const { return m_Warning && !m_Error; }
313  bool IsError() const { return m_Error; }
314 
315 };
316 
317 using BackendsMap = std::map<BackendId, std::unique_ptr<class IBackendInternal>>;
318 
320  struct BackendSettings& backendSettings);
321 
323  BackendsMap& backends,
324  TensorHandleFactoryRegistry& registry,
325  bool importEnabled,
326  Optional<std::vector<std::string>&> errMessages);
327 
329  BackendSettings& backendSettings,
330  Graph::Iterator& firstLayer,
331  Graph::Iterator& lastLayer,
332  Optional<std::vector<std::string>&> errMessages);
333 
334 } // namespace armnn
IConnectableLayer * AddReduceLayer(const ReduceDescriptor &reduceDescriptor, const char *name=nullptr)
Definition: Network.cpp:2074
IConnectableLayer * AddRsqrtLayer(const char *name=nullptr)
Definition: Network.cpp:2336
OptimizationResult AssignBackends(OptimizedNetworkImpl *optNetObjPtr, BackendSettings &backendSettings, Graph::Iterator &firstLayer, Graph::Iterator &lastLayer, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:888
A ViewsDescriptor for the SplitterLayer.
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:62
IConnectableLayer * AddResizeLayer(const ResizeDescriptor &resizeDescriptor, const char *name=nullptr)
Definition: Network.cpp:2094
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
IConnectableLayer * AddQuantizeLayer(const char *name=nullptr)
Definition: Network.cpp:2310
OptimizationResult(bool warning, bool error)
Definition: Network.hpp:302
IConnectableLayer * AddRankLayer(const char *name=nullptr)
Definition: Network.cpp:2069
A ReshapeDescriptor for the ReshapeLayer.
IConnectableLayer * AddAdditionLayer(const char *name=nullptr)
Definition: Network.cpp:2037
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:78
IConnectableLayer * AddAbsLayer(const char *name=nullptr)
Definition: Network.cpp:2032
IConnectableLayer * AddPooling2dLayer(const Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr)
Definition: Network.cpp:1974
NetworkImpl(NetworkOptions networkOptions={})
Definition: Network.cpp:1734
DataLayout::NCHW false
std::vector< BackendOptions > ModelOptions
IConnectableLayer * AddMergeLayer(const char *name=nullptr)
Definition: Network.cpp:2353
A Convolution2dDescriptor for the Convolution2dLayer.
IConnectableLayer * AddQuantizedLstmLayer(const QuantizedLstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2409
IConnectableLayer * AddConstantLayer(const ConstTensor &input, const char *name=nullptr)
Definition: Network.cpp:2117
IConnectableLayer * AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:1771
IConnectableLayer * AddNormalizationLayer(const NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr)
Definition: Network.cpp:1992
Status PrintGraph()
Definition: Network.cpp:1743
IConnectableLayer * AddMeanLayer(const MeanDescriptor &meanDescriptor, const char *name=nullptr)
Definition: Network.cpp:2300
void ExecuteStrategy(IStrategy &strategy) const
Definition: Network.cpp:2603
IConnectableLayer * AddMinimumLayer(const char *name=nullptr)
Definition: Network.cpp:2021
IConnectableLayer * AddSpaceToDepthLayer(const SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr)
Definition: Network.cpp:2138
std::vector< BackendOptions > NetworkOptions
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
IConnectableLayer * AddActivationLayer(const ActivationDescriptor &activationDescriptor, const char *name=nullptr)
Definition: Network.cpp:1980
Copyright (c) 2021 ARM Limited and Contributors.
LayerList::const_iterator Iterator
Definition: Graph.hpp:50
IConnectableLayer * AddDepthwiseConvolution2dLayer(const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
Definition: Network.cpp:1930
IConnectableLayer * AddLogSoftmaxLayer(const LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr)
Definition: Network.cpp:2111
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:243
A ResizeDescriptor for the ResizeLayer.
A StackDescriptor for the StackLayer.
IConnectableLayer * AddMergerLayer(const MergerDescriptor &mergerDescriptor, const char *name=nullptr)
Definition: Network.cpp:2026
IConnectableLayer * AddFloorLayer(const char *name=nullptr)
Definition: Network.cpp:2144
A PadDescriptor for the PadLayer.
IConnectableLayer * AddMultiplicationLayer(const char *name=nullptr)
Definition: Network.cpp:2042
IConnectableLayer * AddQLstmLayer(const QLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2447
IConnectableLayer * AddStridedSliceLayer(const StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr)
Definition: Network.cpp:2320
IConnectableLayer * AddInputLayer(LayerBindingId id, const char *name=nullptr)
Definition: Network.cpp:1749
std::unique_ptr< NetworkImpl, void(*)(NetworkImpl *network)> NetworkImplPtr
Definition: Network.hpp:28
An LstmDescriptor for the LstmLayer.
IConnectableLayer * AddTransposeConvolution2dLayer(const TransposeConvolution2dDescriptor &descriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
Definition: Network.cpp:2368
IConnectableLayer * AddPreluLayer(const char *name=nullptr)
Definition: Network.cpp:2363
A L2NormalizationDescriptor for the L2NormalizationLayer.
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:56
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:1958
A FullyConnectedDescriptor for the FullyConnectedLayer.
IConnectableLayer * AddFullyConnectedLayer(const FullyConnectedDescriptor &fullyConnectedDescriptor, const Optional< ConstTensor > &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
Definition: Network.cpp:1812
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
Definition: Tensor.hpp:314
A GatherDescriptor for the GatherLayer.
Status
enumeration
Definition: Types.hpp:30
IConnectableLayer * AddDivisionLayer(const char *name=nullptr)
Definition: Network.cpp:2290
IConnectableLayer * AddArgMinMaxLayer(const ArgMinMaxDescriptor &desc, const char *name=nullptr)
Definition: Network.cpp:1986
IConnectableLayer * AddOutputLayer(LayerBindingId id, const char *name=nullptr)
Definition: Network.cpp:2047
IConnectableLayer * AddDequantizeLayer(const char *name=nullptr)
Definition: Network.cpp:2315
IConnectableLayer * AddConcatLayer(const ConcatDescriptor &concatDescriptor, const char *name=nullptr)
Definition: Network.cpp:1848
A StandInDescriptor for the StandIn layer.
A QLstmDescriptor for the QLstmLayer.
IConnectableLayer * AddSwitchLayer(const char *name=nullptr)
Definition: Network.cpp:2358
IConnectableLayer * AddSubtractionLayer(const char *name=nullptr)
Definition: Network.cpp:2295
IConnectableLayer * AddResizeBilinearLayer(const ResizeBilinearDescriptor &resizeDesc, const char *name=nullptr)
Definition: Network.cpp:2080
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:25
IConnectableLayer * AddLogicalBinaryLayer(const LogicalBinaryDescriptor &logicalBinaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:2589
void Accept(ILayerVisitor &visitor) const
Definition: Network.cpp:2595
A SliceDescriptor for the SliceLayer.
IConnectableLayer * AddStandInLayer(const StandInDescriptor &descriptor, const char *name=nullptr)
Definition: Network.cpp:2403
IConnectableLayer * AddPermuteLayer(const PermuteDescriptor &permuteDescriptor, const char *name=nullptr)
Definition: Network.cpp:1968
IConnectableLayer * AddL2NormalizationLayer(const L2NormalizationDescriptor &desc, const char *name=nullptr)
Definition: Network.cpp:2105
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
bool IsWarningOnly() const
Definition: Network.hpp:312
IConnectableLayer * AddTransposeLayer(const TransposeDescriptor &transposeDescriptor, const char *name=nullptr)
Definition: Network.cpp:2390
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:98
IConnectableLayer * AddReshapeLayer(const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr)
Definition: Network.cpp:2126
IConnectableLayer * AddMaximumLayer(const char *name=nullptr)
Definition: Network.cpp:2016
BackendsMap CreateSupportedBackends(TensorHandleFactoryRegistry &handleFactoryRegistry, BackendSettings &backendSettings)
Definition: Network.cpp:1028
IConnectableLayer * AddCastLayer(const char *name=nullptr)
Definition: Network.cpp:1760
IConnectableLayer * AddStackLayer(const StackDescriptor &stackDescriptor, const char *name=nullptr)
Definition: Network.cpp:2396
IConnectableLayer * AddSoftmaxLayer(const SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr)
Definition: Network.cpp:2004
IConnectableLayer * AddGreaterLayer(const char *name=nullptr)
Definition: Network.cpp:2326
IConnectableLayer * AddEqualLayer(const char *name=nullptr)
Definition: Network.cpp:2331
IConnectableLayer * AddFillLayer(const FillDescriptor &fillDescriptor, const char *name=nullptr)
Definition: Network.cpp:1777
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:2132
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
IConnectableLayer * AddComparisonLayer(const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
Definition: Network.cpp:1765
OptimizationResult SelectTensorHandleStrategy(Graph &optGraph, BackendsMap &backends, TensorHandleFactoryRegistry &registry, bool importEnabled, Optional< std::vector< std::string > &> errMessages)
Definition: Network.cpp:1500
#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:2052
IConnectableLayer * AddGatherLayer(const char *name=nullptr)
Definition: Network.cpp:2341
A Pooling2dDescriptor for the Pooling2dLayer.
A NormalizationDescriptor for the NormalizationLayer.
IConnectableLayer * AddDepthToSpaceLayer(const DepthToSpaceDescriptor &depthToSpaceDescriptor, const char *name=nullptr)
Definition: Network.cpp:1924
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
IConnectableLayer * AddConvolution2dLayer(const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
Definition: Network.cpp:1876
IConnectableLayer * AddSplitterLayer(const ViewsDescriptor &splitterDescriptor, const char *name=nullptr)
Definition: Network.cpp:2010
IConnectableLayer * AddBatchToSpaceNdLayer(const BatchToSpaceNdDescriptor &batchToSpaceNdDescriptor, const char *name=nullptr)
Definition: Network.cpp:1754
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
IConnectableLayer * AddLstmLayer(const LstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
Definition: Network.cpp:2149
IConnectableLayer * AddPadLayer(const PadDescriptor &padDescriptor, const char *name=nullptr)
Definition: Network.cpp:2305
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:317
A PermuteDescriptor for the PermuteLayer.
IConnectableLayer * AddSliceLayer(const SliceDescriptor &sliceDescriptor, const char *name=nullptr)
Definition: Network.cpp:1999
IConnectableLayer * AddInstanceNormalizationLayer(const InstanceNormalizationDescriptor &desc, const char *name=nullptr)
Definition: Network.cpp:2099
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 })