ArmNN
 23.05
Descriptors.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include "Deprecated.hpp"
8 #include "DescriptorsFwd.hpp" // Required for class equivalence declarations.
9 #include "Tensor.hpp"
10 #include "Types.hpp"
11 #include <armnn/Exceptions.hpp>
12 
13 #include <cstdint>
14 #include <iterator>
15 #include <utility>
16 #include <vector>
17 
18 namespace armnn
19 {
20 
21 /// Base class for all descriptors.
23 {
24  virtual bool IsNull() const { return false; }
25  virtual ~BaseDescriptor() = default;
26 };
27 
28 /// Null Descriptor used as a return value from the IConnectableLayer GetParameters method
29 /// by layers which do not have a descriptor
31 {
32  bool IsNull() const override { return true; }
33 };
34 
35 /// An ActivationDescriptor for the ActivationLayer.
37 {
40  , m_A(0)
41  , m_B(0)
42  {}
43 
45  float a = 0,
46  float b = 0)
47  : m_Function(activation)
48  , m_A(a)
49  , m_B(b)
50  {}
51 
52  bool operator ==(const ActivationDescriptor &rhs) const
53  {
54  return m_Function == rhs.m_Function && m_A == rhs.m_B && m_B == rhs.m_B;
55  }
56 
57  /// @brief The activation function to use
58  /// (Sigmoid, TanH, Linear, ReLu, BoundedReLu, SoftReLu, LeakyReLu, Abs, Sqrt, Square, Elu).
60  /// Alpha upper bound value used by the activation functions. (BoundedReLu, Linear, TanH, Elu).
61  float m_A;
62  /// Beta lower bound value used by the activation functions. (BoundedReLu, Linear, TanH).
63  float m_B;
64 };
65 
66 /// An ArgMinMaxDescriptor for ArgMinMaxLayer
68 {
71  , m_Axis(-1)
73  {}
74 
75  bool operator ==(const ArgMinMaxDescriptor &rhs) const
76  {
77  return m_Function == rhs.m_Function && m_Axis == rhs.m_Axis && m_Output_Type == rhs.m_Output_Type;
78  }
79 
80  /// Specify if the function is to find Min or Max.
82  /// Axis to reduce across the input tensor.
83  int m_Axis;
84  /// Deprecated and will be removed in future release.
86 };
87 
88 /// A ComparisonDescriptor for the ComparisonLayer
90 {
93  {}
94 
96  : m_Operation(operation)
97  {}
98 
99  bool operator ==(const ComparisonDescriptor &rhs) const
100  {
101  return m_Operation == rhs.m_Operation;
102  }
103 
104  /// Specifies the comparison operation to execute
106 };
107 
108 /// A ElementwiseBinaryDescriptor for the ElementwiseBinaryLayer
110 {
113  {}
114 
116  : m_Operation(operation)
117  {}
118 
120  {
121  return m_Operation == rhs.m_Operation;
122  }
123 
124  /// Specifies the elementwiseBinary operation to execute
126 };
127 
128 /// A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer
130 {
133  {}
134 
136  : m_Operation(operation)
137  {}
138 
140  {
141  return m_Operation == rhs.m_Operation;
142  }
143 
144  /// Specifies the elementwiseUnary operation to execute
146 };
147 
148 /// A PermuteDescriptor for the PermuteLayer.
150 {
152  : m_DimMappings{}
153  {}
154 
156  : m_DimMappings(dimMappings)
157  {}
158 
159  bool operator ==(const PermuteDescriptor &rhs) const
160  {
161  return m_DimMappings.IsEqual(rhs.m_DimMappings);
162  }
163 
164  /// @brief Indicates how to translate tensor elements from a given source into the target destination, when
165  /// source and target potentially have different memory layouts e.g.
166  /// Input Shape {1, 1, 4, 4}
167  /// Permutation Vector {0, 2, 3, 1}
168  /// Output Shape {1, 4, 1, 4}
169  /// dim "0" goes into index 0 ([ 1, X, X, X ])
170  /// dim "1" goes into index 2 ([ 1, X, 1, X ])
171  /// dim "2" goes into index 3 ([ 1, X, 1, 4 ])
172  /// dim "3" goes into index 1 ([ 1, 4, 1, 4 ])
174 };
175 
176 /// A SoftmaxDescriptor for the SoftmaxLayer.
178 {
180  : m_Beta(1.0f)
181  , m_Axis(-1)
182  {}
183 
184  bool operator ==(const SoftmaxDescriptor& rhs) const
185  {
186  return m_Beta == rhs.m_Beta && m_Axis == rhs.m_Axis;
187  }
188 
189  /// Exponentiation value.
190  float m_Beta;
191  /// Scalar, defaulted to the last index (-1), specifying the dimension the activation will be performed on.
192  int m_Axis;
193 };
194 
195 /// A LogSoftmaxDescriptor for the LogSoftmaxLayer
197 
198 /// @brief An OriginsDescriptor for the ConcatLayer.
199 /// Descriptor to configure the concatenation process. Number of views must be equal to the number of inputs, and
200 /// their order must match - e.g. first view corresponds to the first input, second view to the second input, etc.
202 {
204  OriginsDescriptor(uint32_t numViews, uint32_t numDimensions = 4);
205  OriginsDescriptor(const OriginsDescriptor& other);
207 
209 
211 
212  bool operator ==(const OriginsDescriptor& rhs) const;
213 
214  /// @Brief Set the view origin coordinates. The arguments are: view, dimension, value.
215  /// If the view is greater than or equal to GetNumViews(), then the view argument is out of range.
216  /// If the coord is greater than or equal to GetNumDimensions(), then the coord argument is out of range.
217  Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value);
218  /// Get the number of views.
219  uint32_t GetNumViews() const;
220  /// Get the number of dimensions.
221  uint32_t GetNumDimensions() const;
222  /// Return the view origin at the int value idx.
223  const uint32_t* GetViewOrigin(uint32_t idx) const;
224  /// @brief Reorders the viewOrigins in accordance with the indices presented in newOrdering array.
225  /// The number of views must match number of elements in the new ordering array.
226  void ReorderOrigins(unsigned int* newOrdering, unsigned int numNewOrdering);
227  /// Swap the ViewsDescriptor values first and second.
228  friend void swap(OriginsDescriptor& first, OriginsDescriptor& second);
229  /// Set the concatenation axis value.
230  void SetConcatAxis(unsigned int concatAxis);
231  /// Get the concatenation axis value.
232  unsigned int GetConcatAxis() const;
233 
234 private:
235  unsigned int m_ConcatAxis;
236  uint32_t m_NumViews;
237  uint32_t m_NumDimensions;
238  uint32_t** m_ViewOrigins;
239 };
240 
241 /// @brief A ViewsDescriptor for the SplitterLayer.
242 /// Descriptor to configure the splitting process. Number of Views must be equal to the number of outputs, and
243 /// their order must match - e.g. first view corresponds to the first output, second view to the second output, etc.
245 {
246  ViewsDescriptor(uint32_t numViews, uint32_t numDimensions = 4);
247  ViewsDescriptor(const ViewsDescriptor& other);
248  ViewsDescriptor();
250 
252 
254 
255  bool operator ==(const ViewsDescriptor& rhs) const;
256 
257  /// @Brief Set the view origin coordinates. The arguments are: view, dimension, value.
258  /// If the view is greater than or equal to GetNumViews(), then the view argument is out of range.
259  /// If the coord is greater than or equal to GetNumDimensions(), then the coord argument is out of range.
260  Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value);
261  /// @brief Set the size of the views. The arguments are: view, dimension, value.
262  /// If the view is greater than or equal to GetNumViews(), then the view argument is out of range.
263  /// If the coord is greater than or equal to GetNumDimensions(), then the coord argument is out of range.
264  Status SetViewSize(uint32_t view, uint32_t coord, uint32_t value);
265 
266  /// Get the number of views.
267  uint32_t GetNumViews() const;
268  /// Get the number of dimensions.
269  uint32_t GetNumDimensions() const;
270  /// Get the view origin at the int value idx.
271  const uint32_t* GetViewOrigin(uint32_t idx) const;
272  /// Get the view sizes at the int value idx.
273  const uint32_t* GetViewSizes(uint32_t idx) const;
274  /// Get the View Origins
275  const OriginsDescriptor& GetOrigins() const;
276 
277  /// Swap the ViewsDescriptor value first and second.
278  friend void swap(ViewsDescriptor& first, ViewsDescriptor& second);
279 private:
280  OriginsDescriptor m_Origins;
281  uint32_t** m_ViewSizes;
282 };
283 
284 
285 /// @brief Convenience template to create an OriginsDescriptor to use when creating a ConcatLayer for performing
286 /// concatenation of a number of input tensors.
287 template <typename TensorShapeIt>
289  TensorShapeIt last,
290  unsigned int concatenationDimension)
291 {
292  auto numInputs = std::distance(first, last);
293 
294  if (numInputs < 2)
295  {
296  throw InvalidArgumentException("Concatenation requires at least 2 inputs");
297  }
298 
299  const auto& firstInputShape = *first;
300 
301  const unsigned int numDimensions = firstInputShape.GetNumDimensions();
302  for (auto it = first + 1; it != last; ++it)
303  {
304  if (it->GetNumDimensions() != numDimensions)
305  {
306  throw InvalidArgumentException("All inputs to concatenation must have the same number of dimensions");
307  }
308  }
309 
310  if (concatenationDimension >= numDimensions)
311  {
312  throw InvalidArgumentException("concatenationDimension must be between 0 and the number of dimensions.");
313  }
314 
315  for (auto it = first; it != last; ++it)
316  {
317  for (unsigned int d = 0; d < numDimensions; ++d)
318  {
319  const bool dimSizeOk = (d == concatenationDimension) || (firstInputShape[d] == (*it)[d]);
320  if (!dimSizeOk)
321  {
322  throw InvalidArgumentException("All inputs to concatenation must be the same size along all dimensions "
323  " except the concatenation dimension");
324  }
325  }
326  }
327 
328  OriginsDescriptor viewsDescriptor(static_cast<uint32_t>(numInputs), numDimensions);
329  viewsDescriptor.SetConcatAxis(concatenationDimension);
330 
331  uint32_t viewIndex = 0u;
332  uint32_t coordAlongConcatDim = 0u;
333  for (auto it = first; it != last; ++it)
334  {
335  const auto& inputShape = *it;
336 
337  for (unsigned int i = 0; i < concatenationDimension; ++i)
338  {
339  viewsDescriptor.SetViewOriginCoord(viewIndex, i, 0);
340  }
341 
342  viewsDescriptor.SetViewOriginCoord(viewIndex, concatenationDimension, coordAlongConcatDim);
343  unsigned int dimSize = inputShape[concatenationDimension];
344  coordAlongConcatDim += dimSize;
345 
346 
347  for (unsigned int i = concatenationDimension + 1; i < numDimensions; ++i)
348  {
349  viewsDescriptor.SetViewOriginCoord(viewIndex, i, 0);
350  }
351 
352  ++viewIndex;
353  }
354 
355  return viewsDescriptor;
356 }
357 
358 /// A Pooling2dDescriptor for the Pooling2dLayer.
360 {
363  , m_PadLeft(0)
364  , m_PadRight(0)
365  , m_PadTop(0)
366  , m_PadBottom(0)
367  , m_PoolWidth(0)
368  , m_PoolHeight(0)
369  , m_StrideX(0)
370  , m_StrideY(0)
374  {}
375 
376  bool operator ==(const Pooling2dDescriptor& rhs) const
377  {
378  return m_PoolType == rhs.m_PoolType &&
379  m_PadLeft == rhs.m_PadLeft &&
380  m_PadRight == rhs.m_PadRight &&
381  m_PadTop == rhs.m_PadTop &&
382  m_PadBottom == rhs.m_PadBottom &&
383  m_PoolWidth == rhs.m_PoolWidth &&
384  m_PoolHeight == rhs.m_PoolHeight &&
385  m_StrideX == rhs.m_StrideX &&
386  m_StrideY == rhs.m_StrideY &&
389  m_DataLayout == rhs.m_DataLayout;
390  }
391 
392  /// The pooling algorithm to use (Max. Average, L2).
394  /// Padding left value in the width dimension.
395  uint32_t m_PadLeft;
396  /// Padding right value in the width dimension.
397  uint32_t m_PadRight;
398  /// Padding top value in the height dimension.
399  uint32_t m_PadTop;
400  /// Padding bottom value in the height dimension.
401  uint32_t m_PadBottom;
402  /// Pooling width value.
403  uint32_t m_PoolWidth;
404  /// Pooling height value.
405  uint32_t m_PoolHeight;
406  /// Stride value when proceeding through input for the width dimension.
407  uint32_t m_StrideX;
408  /// Stride value when proceeding through input for the height dimension.
409  uint32_t m_StrideY;
410  /// The rounding method for the output shape. (Floor, Ceiling).
412  /// The padding method to be used. (Exclude, IgnoreValue).
414  /// The data layout to be used (NCHW, NHWC).
416 };
417 
418 /// A Pooling3dDescriptor for the Pooling3dLayer.
420 {
423  , m_PadLeft(0)
424  , m_PadRight(0)
425  , m_PadTop(0)
426  , m_PadBottom(0)
427  , m_PadFront(0)
428  , m_PadBack(0)
429  , m_PoolWidth(0)
430  , m_PoolHeight(0)
431  , m_PoolDepth(0)
432  , m_StrideX(0)
433  , m_StrideY(0)
434  , m_StrideZ(0)
438  {}
439 
440  bool operator ==(const Pooling3dDescriptor& rhs) const
441  {
442  return m_PoolType == rhs.m_PoolType &&
443  m_PadLeft == rhs.m_PadLeft &&
444  m_PadRight == rhs.m_PadRight &&
445  m_PadTop == rhs.m_PadTop &&
446  m_PadBottom == rhs.m_PadBottom &&
447  m_PadFront == rhs.m_PadFront &&
448  m_PadBack == rhs.m_PadBack &&
449  m_PoolWidth == rhs.m_PoolWidth &&
450  m_PoolHeight == rhs.m_PoolHeight &&
451  m_PoolDepth == rhs.m_PoolDepth &&
452  m_StrideX == rhs.m_StrideX &&
453  m_StrideY == rhs.m_StrideY &&
454  m_StrideZ == rhs.m_StrideZ &&
457  m_DataLayout == rhs.m_DataLayout;
458  }
459 
460  /// The pooling algorithm to use (Max. Average, L2).
462  /// Padding left value in the width dimension.
463  uint32_t m_PadLeft;
464  /// Padding right value in the width dimension.
465  uint32_t m_PadRight;
466  /// Padding top value in the height dimension.
467  uint32_t m_PadTop;
468  /// Padding bottom value in the height dimension.
469  uint32_t m_PadBottom;
470  /// Padding front value in the depth dimension.
471  uint32_t m_PadFront;
472  /// Padding back value in the depth dimension.
473  uint32_t m_PadBack;
474  /// Pooling width value.
475  uint32_t m_PoolWidth;
476  /// Pooling height value.
477  uint32_t m_PoolHeight;
478  /// Pooling depth value.
479  uint32_t m_PoolDepth;
480  /// Stride value when proceeding through input for the width dimension.
481  uint32_t m_StrideX;
482  /// Stride value when proceeding through input for the height dimension.
483  uint32_t m_StrideY;
484  /// Stride value when proceeding through input for the depth dimension.
485  uint32_t m_StrideZ;
486  /// The rounding method for the output shape. (Floor, Ceiling).
488  /// The padding method to be used. (Exclude, IgnoreValue).
490  /// The data layout to be used (NCDHW, NDHWC).
492 };
493 
494 /// A FullyConnectedDescriptor for the FullyConnectedLayer.
496 {
498  : m_BiasEnabled(false)
499  , m_TransposeWeightMatrix(false)
500  , m_ConstantWeights(true)
501  {}
502 
503  bool operator ==(const FullyConnectedDescriptor& rhs) const
504  {
505  return m_BiasEnabled == rhs.m_BiasEnabled
508  }
509 
510  /// Get the number of inputs.
511  uint32_t GetNumInputs() const;
512 
513  /// Enable/disable bias.
515  /// Enable/disable transpose weight matrix.
517  /// Enable/disable constant weights and biases.
519 };
520 
521 /// A Convolution2dDescriptor for the Convolution2dLayer.
523 {
525  : m_PadLeft(0)
526  , m_PadRight(0)
527  , m_PadTop(0)
528  , m_PadBottom(0)
529  , m_StrideX(1)
530  , m_StrideY(1)
531  , m_DilationX(1)
532  , m_DilationY(1)
533  , m_BiasEnabled(false)
535  {}
536 
537  bool operator ==(const Convolution2dDescriptor& rhs) const
538  {
539  return m_PadLeft == rhs.m_PadLeft &&
540  m_PadRight == rhs.m_PadRight &&
541  m_PadTop == rhs.m_PadTop &&
542  m_PadBottom == rhs.m_PadBottom &&
543  m_StrideX == rhs.m_StrideX &&
544  m_StrideY == rhs.m_StrideY &&
545  m_DilationX == rhs.m_DilationX &&
546  m_DilationY == rhs.m_DilationY &&
547  m_BiasEnabled == rhs.m_BiasEnabled &&
548  m_DataLayout == rhs.m_DataLayout;
549  }
550  uint32_t GetNumInputs() const;
551 
552 
553  /// Padding left value in the width dimension.
554  uint32_t m_PadLeft;
555  /// Padding right value in the width dimension.
556  uint32_t m_PadRight;
557  /// Padding top value in the height dimension.
558  uint32_t m_PadTop;
559  /// Padding bottom value in the height dimension.
560  uint32_t m_PadBottom;
561  /// Stride value when proceeding through input for the width dimension.
562  uint32_t m_StrideX;
563  /// Stride value when proceeding through input for the height dimension.
564  uint32_t m_StrideY;
565  /// Dilation along x axis
566  uint32_t m_DilationX;
567  /// Dilation along y axis
568  uint32_t m_DilationY;
569  /// Enable/disable bias.
571  /// The data layout to be used (NCHW, NHWC).
573 };
574 
575 /// A Convolution3dDescriptor for the Convolution3dLayer.
577 {
579  : m_PadLeft(0)
580  , m_PadRight(0)
581  , m_PadTop(0)
582  , m_PadBottom(0)
583  , m_PadFront(0)
584  , m_PadBack(0)
585  , m_StrideX(1)
586  , m_StrideY(1)
587  , m_StrideZ(1)
588  , m_DilationX(1)
589  , m_DilationY(1)
590  , m_DilationZ(1)
591  , m_BiasEnabled(false)
593  {}
594 
595  bool operator ==(const Convolution3dDescriptor& rhs) const
596  {
597  return m_PadLeft == rhs.m_PadLeft &&
598  m_PadRight == rhs.m_PadRight &&
599  m_PadTop == rhs.m_PadTop &&
600  m_PadBottom == rhs.m_PadBottom &&
601  m_PadFront == rhs.m_PadFront &&
602  m_PadBack == rhs.m_PadBack &&
603  m_StrideX == rhs.m_StrideX &&
604  m_StrideY == rhs.m_StrideY &&
605  m_StrideZ == rhs.m_StrideZ &&
606  m_DilationX == rhs.m_DilationX &&
607  m_DilationY == rhs.m_DilationY &&
608  m_DilationZ == rhs.m_DilationZ &&
609  m_BiasEnabled == rhs.m_BiasEnabled &&
610  m_DataLayout == rhs.m_DataLayout;
611  }
612 
613  /// Get the number of views/inputs.
614  uint32_t GetNumInputs() const;
615 
616  /// Padding left value in the width dimension.
617  uint32_t m_PadLeft;
618  /// Padding right value in the width dimension.
619  uint32_t m_PadRight;
620  /// Padding top value in the height dimension.
621  uint32_t m_PadTop;
622  /// Padding bottom value in the height dimension.
623  uint32_t m_PadBottom;
624  /// Padding front value in the depth dimension.
625  uint32_t m_PadFront;
626  /// Padding back value in the depth dimension.
627  uint32_t m_PadBack;
628  /// Stride value when proceeding through input for the width dimension.
629  uint32_t m_StrideX;
630  /// Stride value when proceeding through input for the height dimension.
631  uint32_t m_StrideY;
632  /// Stride value when proceeding through input for the depth dimension.
633  uint32_t m_StrideZ;
634  /// Dilation along x axis
635  uint32_t m_DilationX;
636  /// Dilation along y axis
637  uint32_t m_DilationY;
638  /// Dilation along z axis
639  uint32_t m_DilationZ;
640  /// Enable/disable bias.
642  /// The data layout to be used (NDHWC, NCDHW).
644 };
645 
646 /// A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
648 {
650  : m_PadLeft(0)
651  , m_PadRight(0)
652  , m_PadTop(0)
653  , m_PadBottom(0)
654  , m_StrideX(1)
655  , m_StrideY(1)
656  , m_DilationX(1)
657  , m_DilationY(1)
658  , m_BiasEnabled(false)
660  {}
661 
663  {
664  return m_PadLeft == rhs.m_PadLeft &&
665  m_PadRight == rhs.m_PadRight &&
666  m_PadTop == rhs.m_PadTop &&
667  m_PadBottom == rhs.m_PadBottom &&
668  m_StrideX == rhs.m_StrideX &&
669  m_StrideY == rhs.m_StrideY &&
670  m_DilationX == rhs.m_DilationX &&
671  m_DilationY == rhs.m_DilationY &&
672  m_BiasEnabled == rhs.m_BiasEnabled &&
673  m_DataLayout == rhs.m_DataLayout;
674  }
675 
676  /// Get the number of views/inputs.
677  uint32_t GetNumInputs() const;
678 
679  /// Padding left value in the width dimension.
680  uint32_t m_PadLeft;
681  /// Padding right value in the width dimension.
682  uint32_t m_PadRight;
683  /// Padding top value in the height dimension.
684  uint32_t m_PadTop;
685  /// Padding bottom value in the height dimension.
686  uint32_t m_PadBottom;
687  /// Stride value when proceeding through input for the width dimension.
688  uint32_t m_StrideX;
689  /// Stride value when proceeding through input for the height dimension.
690  uint32_t m_StrideY;
691  /// Dilation factor value for width dimension.
692  uint32_t m_DilationX;
693  /// Dilation factor value for height dimension.
694  uint32_t m_DilationY;
695  /// Enable/disable bias.
697  /// The data layout to be used (NCHW, NHWC).
699 };
700 
702 {
704  : m_MaxDetections(0)
708  , m_NmsIouThreshold(0)
709  , m_NumClasses(0)
710  , m_UseRegularNms(false)
711  , m_ScaleX(0)
712  , m_ScaleY(0)
713  , m_ScaleW(0)
714  , m_ScaleH(0)
715  {}
716 
718  {
719  return m_MaxDetections == rhs.m_MaxDetections &&
724  m_NumClasses == rhs.m_NumClasses &&
726  m_ScaleX == rhs.m_ScaleX &&
727  m_ScaleY == rhs.m_ScaleY &&
728  m_ScaleW == rhs.m_ScaleW &&
729  m_ScaleH == rhs.m_ScaleH;
730  }
731 
732  /// Maximum numbers of detections.
733  uint32_t m_MaxDetections;
734  /// Maximum numbers of classes per detection, used in Fast NMS.
736  /// Detections per classes, used in Regular NMS.
738  /// NMS score threshold.
740  /// Intersection over union threshold.
742  /// Number of classes.
743  uint32_t m_NumClasses;
744  /// Use Regular NMS.
746  /// Center size encoding scale x.
747  float m_ScaleX;
748  /// Center size encoding scale y.
749  float m_ScaleY;
750  /// Center size encoding scale weight.
751  float m_ScaleW;
752  /// Center size encoding scale height.
753  float m_ScaleH;
754 };
755 
756 /// A NormalizationDescriptor for the NormalizationLayer.
758 {
762  , m_NormSize(0)
763  , m_Alpha(0.f)
764  , m_Beta(0.f)
765  , m_K(0.f)
767  {}
768 
769  bool operator ==(const NormalizationDescriptor& rhs) const
770  {
771  return m_NormChannelType == rhs.m_NormChannelType &&
773  m_NormSize == rhs.m_NormSize &&
774  m_Alpha == rhs.m_Alpha &&
775  m_Beta == rhs.m_Beta &&
776  m_K == rhs.m_K &&
777  m_DataLayout == rhs.m_DataLayout;
778  }
779 
780  /// Normalization channel algorithm to use (Across, Within).
782  /// Normalization method algorithm to use (LocalBrightness, LocalContrast).
784  /// Depth radius value.
785  uint32_t m_NormSize;
786  /// Alpha value for the normalization equation.
787  float m_Alpha;
788  /// Beta value for the normalization equation.
789  float m_Beta;
790  /// Kappa value used for the across channel normalization equation.
791  float m_K;
792  /// The data layout to be used (NCHW, NHWC).
794 };
795 
796 /// A L2NormalizationDescriptor for the L2NormalizationLayer.
798 {
800  : m_Eps(1e-12f)
802  {}
803 
804  bool operator ==(const L2NormalizationDescriptor& rhs) const
805  {
806  return m_Eps == rhs.m_Eps && m_DataLayout == rhs.m_DataLayout;
807  }
808 
809  /// Used to avoid dividing by zero.
810  float m_Eps;
811  /// The data layout to be used (NCHW, NHWC).
813 };
814 
815 /// A BatchNormalizationDescriptor for the BatchNormalizationLayer.
817 {
819  : m_Eps(0.0001f)
821  {}
822 
824  {
825  return m_Eps == rhs.m_Eps && m_DataLayout == rhs.m_DataLayout;
826  }
827 
828  /// Value to add to the variance. Used to avoid dividing by zero.
829  float m_Eps;
830  /// The data layout to be used (NCHW, NHWC).
832 };
833 
834 /// An InstanceNormalizationDescriptor for InstanceNormalizationLayer
836 {
838  : m_Gamma(1.0f)
839  , m_Beta(0.0f)
840  , m_Eps(1e-12f)
842  {}
843 
845  {
846  return m_Gamma == rhs.m_Gamma &&
847  m_Beta == rhs.m_Beta &&
848  m_Eps == rhs.m_Eps &&
849  m_DataLayout == rhs.m_DataLayout;
850  }
851 
852  /// Gamma, the scale scalar value applied for the normalized tensor. Defaults to 1.0.
853  float m_Gamma;
854  /// Beta, the offset scalar value applied for the normalized tensor. Defaults to 1.0.
855  float m_Beta;
856  /// Epsilon, small scalar value added to variance to avoid dividing by zero. Defaults to 1e-12f.
857  float m_Eps;
858  /// The data layout to be used (NCHW, NHWC).
860 };
861 
862 /// A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
864 {
866  : m_BlockShape({1, 1})
867  , m_Crops({{0, 0}, {0, 0}})
869  {}
870 
871  BatchToSpaceNdDescriptor(std::vector<unsigned int> blockShape,
872  std::vector<std::pair<unsigned int, unsigned int>> crops)
873  : m_BlockShape(blockShape)
874  , m_Crops(crops)
876  {}
877 
878  bool operator ==(const BatchToSpaceNdDescriptor& rhs) const
879  {
880  return m_BlockShape == rhs.m_BlockShape &&
881  m_Crops == rhs.m_Crops &&
882  m_DataLayout == rhs.m_DataLayout;
883  }
884 
885  /// Block shape values.
886  std::vector<unsigned int> m_BlockShape;
887  /// The values to crop from the input dimension.
888  std::vector<std::pair<unsigned int, unsigned int>> m_Crops;
889  /// The data layout to be used (NCHW, NHWC).
891 };
892 
893 /// A FakeQuantizationDescriptor for the FakeQuantizationLayer.
895 {
897  : m_Min(-6.0f)
898  , m_Max(6.0f)
899  {}
900 
902  {
903  return m_Min == rhs.m_Min && m_Max == rhs.m_Max;
904  }
905 
906  /// Minimum value.
907  float m_Min;
908  /// Maximum value.
909  float m_Max;
910 };
911 
912 /// A FillDescriptor for the FillLayer
914 {
916  : m_Value(0)
917  {}
918 
919  FillDescriptor(const float& value)
920  : m_Value(value)
921  {}
922 
923  bool operator ==(const FillDescriptor& rhs) const
924  {
925  return m_Value == rhs.m_Value;
926  }
927 
928  float m_Value;
929 };
930 
931 /// A GatherDescriptor for the GatherLayer.
933 {
935  : m_Axis(0)
936  {}
937 
938  GatherDescriptor(int32_t axis)
939  : m_Axis(axis)
940  {}
941 
942  bool operator ==(const GatherDescriptor& rhs) const
943  {
944  return m_Axis == rhs.m_Axis;
945  }
946 
947  /// The axis in params to gather indices from
948  int32_t m_Axis;
949 };
950 
951 /// A ResizeDescriptor for the ResizeLayer.
953 {
955  : m_TargetWidth(0)
956  , m_TargetHeight(0)
959  , m_AlignCorners(false)
960  , m_HalfPixelCenters(false)
961  {}
962 
963  bool operator ==(const ResizeDescriptor& rhs) const
964  {
965  return m_TargetWidth == rhs.m_TargetWidth &&
967  m_Method == rhs.m_Method &&
968  m_DataLayout == rhs.m_DataLayout &&
971  }
972 
973  /// Target width value.
974  uint32_t m_TargetWidth;
975  /// Target height value.
976  uint32_t m_TargetHeight;
977  /// The Interpolation method to use
978  /// (Bilinear, NearestNeighbor).
980  /// The data layout to be used (NCHW, NHWC).
982  /// Aligned corners
984  /// Half Pixel Centers
986 };
987 
988 
989 /// A ReshapeDescriptor for the ReshapeLayer.
991 {
993  : m_TargetShape()
994  {}
995 
997  : m_TargetShape(shape)
998  {}
999 
1000  bool operator ==(const ReshapeDescriptor& rhs) const
1001  {
1002  return m_TargetShape == rhs.m_TargetShape;
1003  }
1004 
1005  /// Target shape value.
1007 };
1008 
1009 /// A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
1011 {
1013  : m_BlockShape({1, 1})
1014  , m_PadList({{0, 0}, {0, 0}})
1016  {}
1017 
1018  SpaceToBatchNdDescriptor(const std::vector<unsigned int>& blockShape,
1019  const std::vector<std::pair<unsigned int, unsigned int>>& padList)
1020  : m_BlockShape(blockShape)
1021  , m_PadList(padList)
1023  {}
1024 
1025  bool operator ==(const SpaceToBatchNdDescriptor& rhs) const
1026  {
1027  return m_BlockShape == rhs.m_BlockShape &&
1028  m_PadList == rhs.m_PadList &&
1029  m_DataLayout == rhs.m_DataLayout;
1030  }
1031 
1032  /// Block shape value.
1033  std::vector<unsigned int> m_BlockShape;
1034  /// @brief Specifies the padding values for the input dimension:
1035  /// heightPad{top, bottom} widthPad{left, right}.
1036  std::vector<std::pair<unsigned int, unsigned int>> m_PadList;
1037  /// The data layout to be used (NCHW, NHWC).
1039 };
1040 
1041 /// A SpaceToDepthDescriptor for the SpaceToDepthLayer
1043 {
1046  {}
1047 
1048  SpaceToDepthDescriptor(unsigned int blockSize, DataLayout dataLayout)
1049  : m_BlockSize(blockSize)
1050  , m_DataLayout(dataLayout)
1051  {}
1052 
1053  bool operator ==(const SpaceToDepthDescriptor& rhs) const
1054  {
1055  return m_BlockSize == rhs.m_BlockSize && m_DataLayout == rhs.m_DataLayout;
1056  }
1057 
1058  /// Scalar specifying the input block size. It must be >= 1
1059  unsigned int m_BlockSize;
1060 
1061  /// The data layout to be used (NCHW, NHWC).
1063 };
1064 
1065 /// A DepthToSpaceDescriptor for the DepthToSpaceLayer
1067 
1068 /// An LstmDescriptor for the LstmLayer.
1070 {
1072  : m_ActivationFunc(1) // 0: None, 1: Relu, 3: Relu6, 4: Tanh, 6: Sigmoid
1073  , m_ClippingThresCell(0.0)
1074  , m_ClippingThresProj(0.0)
1075  , m_CifgEnabled(true)
1076  , m_PeepholeEnabled(false)
1077  , m_ProjectionEnabled(false)
1078  , m_LayerNormEnabled(false)
1079  , m_TimeMajor(false)
1085  , m_HiddenStateScale(0.0)
1086  {}
1087 
1088  bool operator ==(const LstmDescriptor& rhs) const
1089  {
1090  return m_ActivationFunc == rhs.m_ActivationFunc &&
1093  m_CifgEnabled == rhs.m_CifgEnabled &&
1096  m_TimeMajor == rhs.m_TimeMajor &&
1103  }
1104 
1105  /// @brief The activation function to use.
1106  /// 0: None, 1: Relu, 3: Relu6, 4: Tanh, 6: Sigmoid.
1108  /// Clipping threshold value for the cell state.
1110  /// Clipping threshold value for the projection.
1112  /// Enable/disable cifg (coupled input & forget gate).
1114  /// Enable/disable peephole.
1116  /// Enable/disable the projection layer.
1118  /// Enable/disable layer normalization
1120  /// Enable/disable time major
1122  /// Input intermediate quantization scale
1124  /// Forget intermediate quantization scale
1126  /// Cell intermediate quantization scale
1128  /// Output intermediate quantization scale
1130  /// Hidden State zero point
1132  /// Hidden State quantization scale
1134 };
1135 
1137 
1138 /// A MeanDescriptor for the MeanLayer.
1140 {
1142  : m_Axis()
1143  , m_KeepDims(false)
1144  {}
1145 
1146  MeanDescriptor(const std::vector<unsigned int>& axis, bool keepDims)
1147  : m_Axis(axis)
1148  , m_KeepDims(keepDims)
1149  {}
1150 
1151  bool operator ==(const MeanDescriptor& rhs) const
1152  {
1153  return m_Axis == rhs.m_Axis && m_KeepDims == rhs.m_KeepDims;
1154  }
1155 
1156  /// Values for the dimensions to reduce.
1157  std::vector<unsigned int> m_Axis;
1158  /// Enable/disable keep dimensions. If true, then the reduced dimensions that are of length 1 are kept.
1160 };
1161 
1162 /// A PadDescriptor for the PadLayer.
1164 {
1166  {}
1167 
1168  PadDescriptor(const std::vector<std::pair<unsigned int, unsigned int>>& padList,
1169  const float& padValue = 0,
1170  const PaddingMode& paddingMode = PaddingMode::Constant)
1171  : m_PadList(padList)
1172  , m_PadValue(padValue)
1173  , m_PaddingMode(paddingMode)
1174  {}
1175 
1176  bool operator ==(const PadDescriptor& rhs) const
1177  {
1178  return m_PadList == rhs.m_PadList && m_PadValue == rhs.m_PadValue && m_PaddingMode == rhs.m_PaddingMode;
1179  }
1180 
1181  /// @brief Specifies the padding for input dimension.
1182  /// First is the number of values to add before the tensor in the dimension.
1183  /// Second is the number of values to add after the tensor in the dimension.
1184  /// The number of pairs should match the number of dimensions in the input tensor.
1185  std::vector<std::pair<unsigned int, unsigned int>> m_PadList;
1186 
1187  /// Optional value to use for padding, defaults to 0
1188  float m_PadValue;
1189 
1190  /// Specifies the Padding mode (Constant, Reflect or Symmetric)
1192 };
1193 
1194 /// A SliceDescriptor for the SliceLayer.
1196 {
1197  SliceDescriptor(const std::vector<unsigned int>& begin, const std::vector<unsigned int>& size)
1198  : m_Begin(begin)
1199  , m_Size(size)
1200  {}
1201 
1203  {}
1204 
1205  bool operator ==(const SliceDescriptor& rhs) const
1206  {
1207  return m_Begin == rhs.m_Begin && m_Size == rhs.m_Size;
1208  }
1209 
1210  /// Beginning indices of the slice in each dimension.
1211  std::vector<unsigned int> m_Begin;
1212 
1213  /// Size of the slice in each dimension.
1214  std::vector<unsigned int> m_Size;
1215 };
1216 
1217 /// A StackDescriptor for the StackLayer.
1219 {
1221  : m_Axis(0)
1222  , m_NumInputs(0)
1223  , m_InputShape()
1224  {}
1225 
1226  StackDescriptor(uint32_t axis, uint32_t numInputs, const TensorShape& inputShape)
1227  : m_Axis(axis)
1228  , m_NumInputs(numInputs)
1229  , m_InputShape(inputShape)
1230  {}
1231 
1232  bool operator ==(const StackDescriptor& rhs) const
1233  {
1234  return m_Axis == rhs.m_Axis &&
1235  m_NumInputs == rhs.m_NumInputs &&
1236  m_InputShape == rhs.m_InputShape;
1237  }
1238 
1239  /// 0-based axis along which to stack the input tensors.
1240  uint32_t m_Axis;
1241  /// Number of input tensors.
1242  uint32_t m_NumInputs;
1243  /// Required shape of all input tensors.
1245 };
1246 
1247 /// A StandInDescriptor for the StandIn layer
1249 {
1251 
1252  StandInDescriptor(uint32_t numInputs, uint32_t numOutputs)
1253  : m_NumInputs(numInputs)
1254  , m_NumOutputs(numOutputs)
1255  {}
1256 
1257  bool operator ==(const StandInDescriptor& rhs) const
1258  {
1259  return m_NumInputs == rhs.m_NumInputs &&
1260  m_NumOutputs == rhs.m_NumOutputs;
1261  }
1262 
1263  /// Number of input tensors
1264  uint32_t m_NumInputs = 0;
1265  /// Number of output tensors
1266  uint32_t m_NumOutputs = 0;
1267 };
1268 
1269 /// A StridedSliceDescriptor for the StridedSliceLayer.
1271 {
1272  StridedSliceDescriptor(const std::vector<int>& begin,
1273  const std::vector<int>& end,
1274  const std::vector<int>& stride)
1275  : m_Begin(begin)
1276  , m_End(end)
1277  , m_Stride(stride)
1278  , m_BeginMask(0)
1279  , m_EndMask(0)
1280  , m_ShrinkAxisMask(0)
1281  , m_EllipsisMask(0)
1282  , m_NewAxisMask(0)
1284  {}
1285 
1287  : StridedSliceDescriptor({}, {}, {})
1288  {}
1289 
1290  bool operator ==(const StridedSliceDescriptor& rhs) const
1291  {
1292  return m_Begin == rhs.m_Begin &&
1293  m_End == rhs.m_End &&
1294  m_Stride == rhs.m_Stride &&
1295  m_BeginMask == rhs.m_BeginMask &&
1296  m_EndMask == rhs.m_EndMask &&
1298  m_EllipsisMask == rhs.m_EllipsisMask &&
1299  m_NewAxisMask == rhs.m_NewAxisMask &&
1300  m_DataLayout == rhs.m_DataLayout;
1301  }
1302 
1303  int GetStartForAxis(const TensorShape& inputShape, unsigned int axis) const;
1304  int GetStopForAxis(const TensorShape& inputShape,
1305  unsigned int axis,
1306  int startForAxis) const;
1307 
1308  /// Begin values for the input that will be sliced.
1309  std::vector<int> m_Begin;
1310  /// End values for the input that will be sliced.
1311  std::vector<int> m_End;
1312  /// Stride values for the input that will be sliced.
1313  std::vector<int> m_Stride;
1314 
1315  /// @brief Begin mask value. If set, then the begin is disregarded and the fullest
1316  /// range is used for the dimension.
1317  int32_t m_BeginMask;
1318  /// @brief End mask value. If set, then the end is disregarded and the fullest range
1319  /// is used for the dimension.
1320  int32_t m_EndMask;
1321  /// Shrink axis mask value. If set, the nth specification shrinks the dimensionality by 1.
1323  /// Ellipsis mask value.
1325  /// @brief New axis mask value. If set, the begin, end and stride is disregarded and
1326  /// a new 1 dimension is inserted to this location of the output tensor.
1327  int32_t m_NewAxisMask;
1328 
1329  /// The data layout to be used (NCHW, NHWC).
1331 };
1332 
1333 /// A PreCompiledDescriptor for the PreCompiledLayer.
1335 {
1336  PreCompiledDescriptor(unsigned int numInputSlots = 1u, unsigned int numOutputSlots = 1u)
1337  : m_NumInputSlots(numInputSlots), m_NumOutputSlots(numOutputSlots)
1338  {}
1339 
1340  ~PreCompiledDescriptor() = default;
1341 
1342  unsigned int m_NumInputSlots;
1343  unsigned int m_NumOutputSlots;
1344 };
1345 
1346 /// A QLstmDescriptor for the QLstmLayer.
1348 {
1350  : m_CellClip(0.0)
1351  , m_ProjectionClip(0.0)
1352  , m_CifgEnabled(true)
1353  , m_PeepholeEnabled(false)
1354  , m_ProjectionEnabled(false)
1355  , m_LayerNormEnabled(false)
1361  , m_HiddenStateScale(0.0)
1362  {}
1363 
1364  bool operator ==(const QLstmDescriptor& rhs) const
1365  {
1366  return m_CellClip == rhs.m_CellClip &&
1368  m_CifgEnabled == rhs.m_CifgEnabled &&
1378  }
1379 
1380  /// Clipping threshold value for the cell state
1381  float m_CellClip;
1382  /// Clipping threshold value for the projection
1384  /// Enable/disable CIFG (coupled input & forget gate).
1386  /// Enable/disable peephole
1388  /// Enable/disable the projection layer
1390  /// Enable/disable layer normalization
1392  /// Input intermediate quantization scale
1394  /// Forget intermediate quantization scale
1396  /// Cell intermediate quantization scale
1398  /// Output intermediate quantization scale
1400  /// Hidden State zero point
1402  /// Hidden State quantization scale
1404 };
1405 
1406 /// A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
1408 {
1410  m_PadLeft(0),
1411  m_PadRight(0),
1412  m_PadTop(0),
1413  m_PadBottom(0),
1414  m_StrideX(0),
1415  m_StrideY(0),
1416  m_BiasEnabled(false),
1418  m_OutputShapeEnabled(false)
1419  {}
1420 
1422  {
1423  return m_PadLeft == rhs.m_PadLeft &&
1424  m_PadRight == rhs.m_PadRight &&
1425  m_PadTop == rhs.m_PadTop &&
1426  m_PadBottom == rhs.m_PadBottom &&
1427  m_StrideX == rhs.m_StrideX &&
1428  m_StrideY == rhs.m_StrideY &&
1429  m_BiasEnabled == rhs.m_BiasEnabled &&
1430  m_DataLayout == rhs.m_DataLayout &&
1433  }
1434 
1435  /// Padding left value in the width dimension.
1436  uint32_t m_PadLeft;
1437  /// Padding right value in the width dimension.
1438  uint32_t m_PadRight;
1439  /// Padding top value in the height dimension.
1440  uint32_t m_PadTop;
1441  /// Padding bottom value in the height dimension.
1442  uint32_t m_PadBottom;
1443  /// Stride value when proceeding through input for the width dimension.
1444  uint32_t m_StrideX;
1445  /// Stride value when proceeding through input for the height dimension.
1446  uint32_t m_StrideY;
1447  /// Enable/disable bias.
1449  /// The data layout to be used (NCHW, NHWC).
1451  /// Output shape if it has been specified.
1453  std::vector<unsigned int> m_OutputShape;
1454 };
1455 
1456 /// A TransposeDescriptor for the TransposeLayer.
1458 {
1460  : m_DimMappings{}
1461  {}
1462 
1464  : m_DimMappings(dimMappings)
1465  {}
1466 
1467  bool operator ==(const TransposeDescriptor &rhs) const
1468  {
1469  return m_DimMappings.IsEqual(rhs.m_DimMappings);
1470  }
1471 
1472  /// @brief Indicates how to translate tensor elements from a given source into the target destination, when
1473  /// source and target potentially have different memory layouts e.g.
1474  /// Input Shape {1, 1, 4, 4}
1475  /// Permutation Vector {0, 2, 3, 1}
1476  /// Output Shape {1, 4, 4, 1}
1477  /// dim "0" of input goes into index 0 ([ 1, X, X, X])
1478  /// dim "2" of input goes into index 1 ([ 1, 4, X, X ])
1479  /// dim "3" of input goes into index 2 ([ 1, 4, 4, X ])
1480  /// dim "1" of input goes into index 3 ([ 1, 4, 4, 1 ])
1482 };
1483 
1484 /// A LogicalBinaryDescriptor for the LogicalBinaryLayer
1486 {
1489  {}
1490 
1492  : m_Operation(operation)
1493  {}
1494 
1495  bool operator ==(const LogicalBinaryDescriptor &rhs) const
1496  {
1497  return m_Operation == rhs.m_Operation;
1498  }
1499 
1500  /// Specifies the logical operation to execute
1502 };
1503 
1504 /// A ReduceDescriptor for the REDUCE operators.
1506 {
1508  : m_KeepDims(false)
1509  , m_vAxis()
1511  {}
1512 
1513  bool operator ==(const ReduceDescriptor& rhs) const
1514  {
1515  return m_KeepDims == rhs.m_KeepDims &&
1516  m_vAxis == rhs.m_vAxis &&
1518  }
1519 
1520  /// if true then output shape has no change.
1522  /// The indices of the dimensions to reduce.
1523  std::vector<uint32_t> m_vAxis;
1524  /// Specifies the reduction operation to execute
1526 };
1527 
1528 /// A ChannelShuffleDescriptor for the ChannelShuffle operator
1530 {
1532  : m_NumGroups(0), m_Axis(0)
1533  {}
1534 
1535  ChannelShuffleDescriptor(const uint32_t& numGroups, const uint32_t& axis)
1536  : m_NumGroups(numGroups), m_Axis(axis)
1537  {}
1538 
1539  bool operator ==(const ChannelShuffleDescriptor& rhs) const
1540  {
1541  return m_NumGroups == rhs.m_NumGroups;
1542  }
1543 
1544  /// Number of groups for the channel shuffle operation
1545  uint32_t m_NumGroups;
1546  /// Axis to apply channel shuffle operation on
1547  uint32_t m_Axis;
1548 };
1549 
1550 /// A BatchMatMulDescriptor for the BatchMatMul operator
1552 {
1553  BatchMatMulDescriptor(bool transposeX = false,
1554  bool transposeY = false,
1555  bool adjointX = false,
1556  bool adjointY = false,
1557  DataLayout dataLayoutX = DataLayout::NCHW,
1558  DataLayout dataLayoutY = DataLayout::NCHW)
1559  : m_TransposeX(transposeX)
1560  , m_TransposeY(transposeY)
1561  , m_AdjointX(adjointX)
1562  , m_AdjointY(adjointY)
1563  , m_DataLayoutX(dataLayoutX)
1564  , m_DataLayoutY(dataLayoutY)
1565  {}
1566 
1567  bool operator ==(const BatchMatMulDescriptor &rhs) const
1568  {
1569  return m_TransposeX == rhs.m_TransposeX &&
1570  m_TransposeY == rhs.m_TransposeY &&
1571  m_AdjointX == rhs.m_AdjointX &&
1572  m_AdjointY == rhs.m_AdjointY &&
1573  m_DataLayoutX == rhs.m_DataLayoutX &&
1575  }
1576 
1577  /// Transpose the slices of each input tensor
1578  /// Transpose and Adjoint can not both be set to true for the same tensor at the same time
1581 
1582  /// Adjoint the slices of each input tensor
1583  /// Transpose and Adjoint can not both be set to true for the same tensor at the same time
1586 
1587  /// Data layout of each input tensor, such as NHWC/NDHWC (leave as default for arbitrary layout)
1590 
1591  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. Use ABI Stable "
1592  "GetAxesToMul(DataLayout dataLayout, const TensorShape& tensorShape) instead.",
1593  "23.05")
1594  static std::pair<std::pair<unsigned int, unsigned int>, std::pair<unsigned int, unsigned int>> GetAxesToMul(
1595  const BatchMatMulDescriptor& desc,
1596  const TensorShape& tensorXShape,
1597  const TensorShape& tensorYShape);
1598 
1599  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. Use ABI Stable "
1600  "GetAxesNotMul(DataLayout dataLayout, const TensorShape& tensorShape) instead.",
1601  "23.05")
1602  static std::pair<std::vector<unsigned int>, std::vector<unsigned int>> GetAxesNotMul(
1603  const BatchMatMulDescriptor& desc,
1604  const TensorShape& inputXShape,
1605  const TensorShape& inputYShape);
1606 
1607  /// Static helper to get the two axes (for each input) for multiplication
1608  static std::pair<unsigned int, unsigned int> GetAxesToMul(
1609  DataLayout dataLayout,
1610  const TensorShape& tensorShape);
1611 
1612  /// Static helper to get the axes (for each input) that will not be multiplied together
1613  static std::vector<unsigned int> GetAxesNotMul(
1614  DataLayout dataLayout,
1615  const TensorShape& tensorShape);
1616 
1617  /// Static helper to get the axes which will be transposed
1619  DataLayout dataLayout,
1620  const TensorShape& tensorShape);
1621 };
1622 
1623 } // namespace armnn
armnn::ViewsDescriptor::operator=
ViewsDescriptor & operator=(ViewsDescriptor rhs)
Definition: Descriptors.cpp:268
armnn::QLstmDescriptor::m_CellClip
float m_CellClip
Clipping threshold value for the cell state.
Definition: Descriptors.hpp:1381
armnn::QLstmDescriptor::m_LayerNormEnabled
bool m_LayerNormEnabled
Enable/disable layer normalization.
Definition: Descriptors.hpp:1391
armnn::ActivationFunction::Abs
@ Abs
armnn::TransposeConvolution2dDescriptor::m_OutputShapeEnabled
bool m_OutputShapeEnabled
Output shape if it has been specified.
Definition: Descriptors.hpp:1452
armnn::ElementwiseUnaryDescriptor::ElementwiseUnaryDescriptor
ElementwiseUnaryDescriptor()
Definition: Descriptors.hpp:131
armnn::LogicalBinaryDescriptor::LogicalBinaryDescriptor
LogicalBinaryDescriptor(LogicalBinaryOperation operation)
Definition: Descriptors.hpp:1491
armnn::Pooling3dDescriptor::m_PadTop
uint32_t m_PadTop
Padding top value in the height dimension.
Definition: Descriptors.hpp:467
armnn::ChannelShuffleDescriptor::ChannelShuffleDescriptor
ChannelShuffleDescriptor(const uint32_t &numGroups, const uint32_t &axis)
Definition: Descriptors.hpp:1535
armnn::InstanceNormalizationDescriptor::m_Eps
float m_Eps
Epsilon, small scalar value added to variance to avoid dividing by zero. Defaults to 1e-12f.
Definition: Descriptors.hpp:857
armnn::Pooling2dDescriptor::m_StrideY
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
Definition: Descriptors.hpp:409
armnn::ComparisonDescriptor::ComparisonDescriptor
ComparisonDescriptor(ComparisonOperation operation)
Definition: Descriptors.hpp:95
armnn::NullDescriptor
Null Descriptor used as a return value from the IConnectableLayer GetParameters method by layers whic...
Definition: Descriptors.hpp:30
armnn::StackDescriptor::StackDescriptor
StackDescriptor()
Definition: Descriptors.hpp:1220
armnn::L2NormalizationDescriptor::m_Eps
float m_Eps
Used to avoid dividing by zero.
Definition: Descriptors.hpp:810
armnn::StandInDescriptor::operator==
bool operator==(const StandInDescriptor &rhs) const
Definition: Descriptors.hpp:1257
armnn::Convolution2dDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:572
armnn::NormalizationAlgorithmMethod
NormalizationAlgorithmMethod
Definition: Types.hpp:210
armnn::LstmDescriptor::m_TimeMajor
bool m_TimeMajor
Enable/disable time major.
Definition: Descriptors.hpp:1121
armnn::StackDescriptor::m_InputShape
TensorShape m_InputShape
Required shape of all input tensors.
Definition: Descriptors.hpp:1244
armnn::OutputShapeRounding
OutputShapeRounding
Definition: Types.hpp:218
armnn::BatchMatMulDescriptor::m_TransposeX
bool m_TransposeX
Transpose the slices of each input tensor Transpose and Adjoint can not both be set to true for the s...
Definition: Descriptors.hpp:1579
armnn::TransposeConvolution2dDescriptor::m_PadBottom
uint32_t m_PadBottom
Padding bottom value in the height dimension.
Definition: Descriptors.hpp:1442
armnn::Convolution2dDescriptor::GetNumInputs
uint32_t GetNumInputs() const
Definition: Descriptors.cpp:443
armnn::Convolution2dDescriptor::m_BiasEnabled
bool m_BiasEnabled
Enable/disable bias.
Definition: Descriptors.hpp:570
armnn::PadDescriptor::operator==
bool operator==(const PadDescriptor &rhs) const
Definition: Descriptors.hpp:1176
armnn::FakeQuantizationDescriptor::operator==
bool operator==(const FakeQuantizationDescriptor &rhs) const
Definition: Descriptors.hpp:901
armnn::ViewsDescriptor::GetNumViews
uint32_t GetNumViews() const
Get the number of views.
Definition: Descriptors.cpp:295
armnn::ReshapeDescriptor::ReshapeDescriptor
ReshapeDescriptor()
Definition: Descriptors.hpp:992
armnn::QLstmDescriptor::m_ProjectionClip
float m_ProjectionClip
Clipping threshold value for the projection.
Definition: Descriptors.hpp:1383
armnn::Pooling3dDescriptor::m_StrideX
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
Definition: Descriptors.hpp:481
armnn::ViewsDescriptor::GetViewOrigin
const uint32_t * GetViewOrigin(uint32_t idx) const
Get the view origin at the int value idx.
Definition: Descriptors.cpp:305
armnn::TransposeConvolution2dDescriptor::m_PadLeft
uint32_t m_PadLeft
Padding left value in the width dimension.
Definition: Descriptors.hpp:1436
armnn::QLstmDescriptor::QLstmDescriptor
QLstmDescriptor()
Definition: Descriptors.hpp:1349
armnn::FullyConnectedDescriptor::m_BiasEnabled
bool m_BiasEnabled
Enable/disable bias.
Definition: Descriptors.hpp:514
armnn::NormalizationAlgorithmChannel
NormalizationAlgorithmChannel
Definition: Types.hpp:204
armnn::GatherDescriptor
A GatherDescriptor for the GatherLayer.
Definition: Descriptors.hpp:932
armnn::NormalizationDescriptor
A NormalizationDescriptor for the NormalizationLayer.
Definition: Descriptors.hpp:757
armnn::ComparisonOperation::Equal
@ Equal
armnn::TransposeDescriptor
A TransposeDescriptor for the TransposeLayer.
Definition: Descriptors.hpp:1457
armnn::QLstmDescriptor::m_ForgetIntermediateScale
float m_ForgetIntermediateScale
Forget intermediate quantization scale.
Definition: Descriptors.hpp:1395
armnn::BatchNormalizationDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:831
armnn::SliceDescriptor::operator==
bool operator==(const SliceDescriptor &rhs) const
Definition: Descriptors.hpp:1205
armnn::TransposeConvolution2dDescriptor::m_PadTop
uint32_t m_PadTop
Padding top value in the height dimension.
Definition: Descriptors.hpp:1440
armnn::ElementwiseUnaryDescriptor
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:129
armnn::StandInDescriptor::StandInDescriptor
StandInDescriptor(uint32_t numInputs, uint32_t numOutputs)
Definition: Descriptors.hpp:1252
armnn::PadDescriptor
A PadDescriptor for the PadLayer.
Definition: Descriptors.hpp:1163
armnn::StackDescriptor::StackDescriptor
StackDescriptor(uint32_t axis, uint32_t numInputs, const TensorShape &inputShape)
Definition: Descriptors.hpp:1226
armnn::SliceDescriptor::SliceDescriptor
SliceDescriptor()
Definition: Descriptors.hpp:1202
armnn::DataLayout
DataLayout
Definition: Types.hpp:62
armnn::SoftmaxDescriptor
A SoftmaxDescriptor for the SoftmaxLayer.
Definition: Descriptors.hpp:177
armnn::OriginsDescriptor::GetNumViews
uint32_t GetNumViews() const
Get the number of views.
Definition: Descriptors.cpp:187
armnn::Convolution2dDescriptor::Convolution2dDescriptor
Convolution2dDescriptor()
Definition: Descriptors.hpp:524
armnn::ArgMinMaxDescriptor::ArgMinMaxDescriptor
ArgMinMaxDescriptor()
Definition: Descriptors.hpp:69
armnn::Convolution2dDescriptor::m_DilationY
uint32_t m_DilationY
Dilation along y axis.
Definition: Descriptors.hpp:568
armnn::LogicalBinaryOperation::LogicalAnd
@ LogicalAnd
armnn::ComparisonDescriptor::m_Operation
ComparisonOperation m_Operation
Specifies the comparison operation to execute.
Definition: Descriptors.hpp:105
armnn::Convolution2dDescriptor::m_PadBottom
uint32_t m_PadBottom
Padding bottom value in the height dimension.
Definition: Descriptors.hpp:560
armnn::StackDescriptor
A StackDescriptor for the StackLayer.
Definition: Descriptors.hpp:1218
armnn::SliceDescriptor
A SliceDescriptor for the SliceLayer.
Definition: Descriptors.hpp:1195
armnn::OriginsDescriptor::GetNumDimensions
uint32_t GetNumDimensions() const
Get the number of dimensions.
Definition: Descriptors.cpp:192
armnn::ActivationDescriptor::ActivationDescriptor
ActivationDescriptor(armnn::ActivationFunction activation, float a=0, float b=0)
Definition: Descriptors.hpp:44
armnn::BatchToSpaceNdDescriptor::m_Crops
std::vector< std::pair< unsigned int, unsigned int > > m_Crops
The values to crop from the input dimension.
Definition: Descriptors.hpp:888
armnn::Convolution3dDescriptor::m_PadLeft
uint32_t m_PadLeft
Padding left value in the width dimension.
Definition: Descriptors.hpp:617
armnn::BinaryOperation
BinaryOperation
Definition: Types.hpp:137
armnn::ResizeDescriptor::ResizeDescriptor
ResizeDescriptor()
Definition: Descriptors.hpp:954
armnn::OutputShapeRounding::Floor
@ Floor
armnn::ActivationDescriptor
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:36
armnn::ReduceDescriptor::m_ReduceOperation
ReduceOperation m_ReduceOperation
Specifies the reduction operation to execute.
Definition: Descriptors.hpp:1525
armnn::ReshapeDescriptor::operator==
bool operator==(const ReshapeDescriptor &rhs) const
Definition: Descriptors.hpp:1000
armnn::Pooling3dDescriptor::m_PadRight
uint32_t m_PadRight
Padding right value in the width dimension.
Definition: Descriptors.hpp:465
armnn::FillDescriptor::FillDescriptor
FillDescriptor()
Definition: Descriptors.hpp:915
armnn::StridedSliceDescriptor::StridedSliceDescriptor
StridedSliceDescriptor(const std::vector< int > &begin, const std::vector< int > &end, const std::vector< int > &stride)
Definition: Descriptors.hpp:1272
armnn::LstmDescriptor
An LstmDescriptor for the LstmLayer.
Definition: Descriptors.hpp:1069
armnn::FullyConnectedDescriptor
A FullyConnectedDescriptor for the FullyConnectedLayer.
Definition: Descriptors.hpp:495
armnn::ViewsDescriptor::operator==
bool operator==(const ViewsDescriptor &rhs) const
Definition: Descriptors.cpp:274
armnn::StridedSliceDescriptor::m_BeginMask
int32_t m_BeginMask
Begin mask value.
Definition: Descriptors.hpp:1317
armnn::BatchMatMulDescriptor::BatchMatMulDescriptor
BatchMatMulDescriptor(bool transposeX=false, bool transposeY=false, bool adjointX=false, bool adjointY=false, DataLayout dataLayoutX=DataLayout::NCHW, DataLayout dataLayoutY=DataLayout::NCHW)
Definition: Descriptors.hpp:1553
armnn::ChannelShuffleDescriptor::m_NumGroups
uint32_t m_NumGroups
Number of groups for the channel shuffle operation.
Definition: Descriptors.hpp:1545
armnn::StandInDescriptor::m_NumInputs
uint32_t m_NumInputs
Number of input tensors.
Definition: Descriptors.hpp:1264
armnn::Convolution3dDescriptor::m_DilationY
uint32_t m_DilationY
Dilation along y axis.
Definition: Descriptors.hpp:637
armnn::OriginsDescriptor::ReorderOrigins
void ReorderOrigins(unsigned int *newOrdering, unsigned int numNewOrdering)
Reorders the viewOrigins in accordance with the indices presented in newOrdering array.
Definition: Descriptors.cpp:204
armnn::TransposeConvolution2dDescriptor::m_OutputShape
std::vector< unsigned int > m_OutputShape
Definition: Descriptors.hpp:1453
armnn::ArgMinMaxDescriptor::m_Axis
int m_Axis
Axis to reduce across the input tensor.
Definition: Descriptors.hpp:83
armnn::SpaceToBatchNdDescriptor::m_PadList
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding values for the input dimension: heightPad{top, bottom} widthPad{left,...
Definition: Descriptors.hpp:1036
armnn::TransposeDescriptor::TransposeDescriptor
TransposeDescriptor()
Definition: Descriptors.hpp:1459
armnn::BatchMatMulDescriptor
A BatchMatMulDescriptor for the BatchMatMul operator.
Definition: Descriptors.hpp:1551
armnn::ComparisonDescriptor::operator==
bool operator==(const ComparisonDescriptor &rhs) const
Definition: Descriptors.hpp:99
armnn::PermuteDescriptor::m_DimMappings
PermutationVector m_DimMappings
Indicates how to translate tensor elements from a given source into the target destination,...
Definition: Descriptors.hpp:173
armnn::DepthwiseConvolution2dDescriptor::GetNumInputs
uint32_t GetNumInputs() const
Get the number of views/inputs.
Definition: Descriptors.cpp:453
armnn::ResizeDescriptor
A ResizeDescriptor for the ResizeLayer.
Definition: Descriptors.hpp:952
armnn::ArgMinMaxDescriptor::m_Output_Type
armnn::DataType m_Output_Type
Deprecated and will be removed in future release.
Definition: Descriptors.hpp:85
armnn::FullyConnectedDescriptor::m_ConstantWeights
bool m_ConstantWeights
Enable/disable constant weights and biases.
Definition: Descriptors.hpp:518
armnn::StridedSliceDescriptor
A StridedSliceDescriptor for the StridedSliceLayer.
Definition: Descriptors.hpp:1270
armnn::Pooling2dDescriptor::m_PoolHeight
uint32_t m_PoolHeight
Pooling height value.
Definition: Descriptors.hpp:405
armnn::StridedSliceDescriptor::m_Begin
std::vector< int > m_Begin
Begin values for the input that will be sliced.
Definition: Descriptors.hpp:1309
armnn::SpaceToDepthDescriptor::operator==
bool operator==(const SpaceToDepthDescriptor &rhs) const
Definition: Descriptors.hpp:1053
armnn::ReduceDescriptor::m_vAxis
std::vector< uint32_t > m_vAxis
The indices of the dimensions to reduce.
Definition: Descriptors.hpp:1523
armnn::Pooling3dDescriptor
A Pooling3dDescriptor for the Pooling3dLayer.
Definition: Descriptors.hpp:419
armnn::ReduceDescriptor
A ReduceDescriptor for the REDUCE operators.
Definition: Descriptors.hpp:1505
armnn::TransposeConvolution2dDescriptor::m_BiasEnabled
bool m_BiasEnabled
Enable/disable bias.
Definition: Descriptors.hpp:1448
armnn::OriginsDescriptor::GetViewOrigin
const uint32_t * GetViewOrigin(uint32_t idx) const
Return the view origin at the int value idx.
Definition: Descriptors.cpp:197
armnn::OriginsDescriptor::OriginsDescriptor
OriginsDescriptor()
Definition: Descriptors.cpp:82
armnn::OriginsDescriptor::SetConcatAxis
void SetConcatAxis(unsigned int concatAxis)
Set the concatenation axis value.
Definition: Descriptors.cpp:158
armnn::Convolution2dDescriptor::m_DilationX
uint32_t m_DilationX
Dilation along x axis.
Definition: Descriptors.hpp:566
armnn::DetectionPostProcessDescriptor::m_MaxDetections
uint32_t m_MaxDetections
Maximum numbers of detections.
Definition: Descriptors.hpp:733
armnn::ElementwiseBinaryDescriptor::operator==
bool operator==(const ElementwiseBinaryDescriptor &rhs) const
Definition: Descriptors.hpp:119
armnn::OriginsDescriptor::swap
friend void swap(OriginsDescriptor &first, OriginsDescriptor &second)
Swap the ViewsDescriptor values first and second.
Definition: Descriptors.cpp:350
armnn::Pooling3dDescriptor::m_PoolWidth
uint32_t m_PoolWidth
Pooling width value.
Definition: Descriptors.hpp:475
armnn::ComparisonDescriptor
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:89
armnn::LstmDescriptor::operator==
bool operator==(const LstmDescriptor &rhs) const
Definition: Descriptors.hpp:1088
armnn::OriginsDescriptor::operator==
bool operator==(const OriginsDescriptor &rhs) const
Definition: Descriptors.cpp:135
armnn::DataType::Signed32
@ Signed32
armnn::StandInDescriptor
A StandInDescriptor for the StandIn layer.
Definition: Descriptors.hpp:1248
armnn::Pooling3dDescriptor::m_OutputShapeRounding
OutputShapeRounding m_OutputShapeRounding
The rounding method for the output shape. (Floor, Ceiling).
Definition: Descriptors.hpp:487
armnn::StridedSliceDescriptor::operator==
bool operator==(const StridedSliceDescriptor &rhs) const
Definition: Descriptors.hpp:1290
armnn::LstmDescriptor::m_CifgEnabled
bool m_CifgEnabled
Enable/disable cifg (coupled input & forget gate).
Definition: Descriptors.hpp:1113
armnn::Pooling2dDescriptor::m_PoolType
PoolingAlgorithm m_PoolType
The pooling algorithm to use (Max. Average, L2).
Definition: Descriptors.hpp:393
ARMNN_DEPRECATED_MSG_REMOVAL_DATE
#define ARMNN_DEPRECATED_MSG_REMOVAL_DATE(message, removed_in_release)
Definition: Deprecated.hpp:44
armnn::LstmDescriptor::m_LayerNormEnabled
bool m_LayerNormEnabled
Enable/disable layer normalization.
Definition: Descriptors.hpp:1119
armnn::LogicalBinaryDescriptor::m_Operation
LogicalBinaryOperation m_Operation
Specifies the logical operation to execute.
Definition: Descriptors.hpp:1501
armnn::LogicalBinaryDescriptor::operator==
bool operator==(const LogicalBinaryDescriptor &rhs) const
Definition: Descriptors.hpp:1495
armnn::ViewsDescriptor
A ViewsDescriptor for the SplitterLayer.
Definition: Descriptors.hpp:244
armnn::SpaceToDepthDescriptor::SpaceToDepthDescriptor
SpaceToDepthDescriptor(unsigned int blockSize, DataLayout dataLayout)
Definition: Descriptors.hpp:1048
armnn::DepthwiseConvolution2dDescriptor::m_BiasEnabled
bool m_BiasEnabled
Enable/disable bias.
Definition: Descriptors.hpp:696
armnn::MeanDescriptor::m_Axis
std::vector< unsigned int > m_Axis
Values for the dimensions to reduce.
Definition: Descriptors.hpp:1157
armnn::DetectionPostProcessDescriptor::m_ScaleX
float m_ScaleX
Center size encoding scale x.
Definition: Descriptors.hpp:747
armnn::Pooling3dDescriptor::m_PadLeft
uint32_t m_PadLeft
Padding left value in the width dimension.
Definition: Descriptors.hpp:463
armnn::Convolution2dDescriptor::m_PadTop
uint32_t m_PadTop
Padding top value in the height dimension.
Definition: Descriptors.hpp:558
armnn::Pooling2dDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:415
armnn::StridedSliceDescriptor::StridedSliceDescriptor
StridedSliceDescriptor()
Definition: Descriptors.hpp:1286
armnn::StridedSliceDescriptor::m_NewAxisMask
int32_t m_NewAxisMask
New axis mask value.
Definition: Descriptors.hpp:1327
armnn::Convolution2dDescriptor::m_PadRight
uint32_t m_PadRight
Padding right value in the width dimension.
Definition: Descriptors.hpp:556
armnn::Convolution3dDescriptor::m_DilationX
uint32_t m_DilationX
Dilation along x axis.
Definition: Descriptors.hpp:635
armnn::OriginsDescriptor::GetConcatAxis
unsigned int GetConcatAxis() const
Get the concatenation axis value.
Definition: Descriptors.cpp:162
armnn::InstanceNormalizationDescriptor::InstanceNormalizationDescriptor
InstanceNormalizationDescriptor()
Definition: Descriptors.hpp:837
armnn::PreCompiledDescriptor
A PreCompiledDescriptor for the PreCompiledLayer.
Definition: Descriptors.hpp:1334
armnn::Convolution3dDescriptor::m_DilationZ
uint32_t m_DilationZ
Dilation along z axis.
Definition: Descriptors.hpp:639
armnn::SpaceToBatchNdDescriptor::operator==
bool operator==(const SpaceToBatchNdDescriptor &rhs) const
Definition: Descriptors.hpp:1025
armnn::FullyConnectedDescriptor::operator==
bool operator==(const FullyConnectedDescriptor &rhs) const
Definition: Descriptors.hpp:503
armnn::Pooling2dDescriptor::m_StrideX
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
Definition: Descriptors.hpp:407
armnn::InstanceNormalizationDescriptor::operator==
bool operator==(const InstanceNormalizationDescriptor &rhs) const
Definition: Descriptors.hpp:844
armnn::DepthwiseConvolution2dDescriptor::m_StrideX
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
Definition: Descriptors.hpp:688
armnn::ArgMinMaxFunction
ArgMinMaxFunction
Definition: Types.hpp:102
armnn::DepthwiseConvolution2dDescriptor::m_DilationX
uint32_t m_DilationX
Dilation factor value for width dimension.
Definition: Descriptors.hpp:692
armnn::LogicalBinaryDescriptor::LogicalBinaryDescriptor
LogicalBinaryDescriptor()
Definition: Descriptors.hpp:1487
armnn::DetectionPostProcessDescriptor::m_NmsScoreThreshold
float m_NmsScoreThreshold
NMS score threshold.
Definition: Descriptors.hpp:739
armnn::QLstmDescriptor::operator==
bool operator==(const QLstmDescriptor &rhs) const
Definition: Descriptors.hpp:1364
armnn::LstmDescriptor::LstmDescriptor
LstmDescriptor()
Definition: Descriptors.hpp:1071
armnn::PaddingMode::Constant
@ Constant
armnn::L2NormalizationDescriptor::operator==
bool operator==(const L2NormalizationDescriptor &rhs) const
Definition: Descriptors.hpp:804
armnn::LstmDescriptor::m_InputIntermediateScale
float m_InputIntermediateScale
Input intermediate quantization scale.
Definition: Descriptors.hpp:1123
armnn::ViewsDescriptor::GetNumDimensions
uint32_t GetNumDimensions() const
Get the number of dimensions.
Definition: Descriptors.cpp:300
armnn::NormalizationDescriptor::m_NormMethodType
NormalizationAlgorithmMethod m_NormMethodType
Normalization method algorithm to use (LocalBrightness, LocalContrast).
Definition: Descriptors.hpp:783
armnn::QLstmDescriptor::m_CellIntermediateScale
float m_CellIntermediateScale
Cell intermediate quantization scale.
Definition: Descriptors.hpp:1397
armnn::DepthwiseConvolution2dDescriptor::m_PadLeft
uint32_t m_PadLeft
Padding left value in the width dimension.
Definition: Descriptors.hpp:680
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition: 01_00_quick_start.dox:6
armnn::StridedSliceDescriptor::GetStopForAxis
int GetStopForAxis(const TensorShape &inputShape, unsigned int axis, int startForAxis) const
Definition: Descriptors.cpp:393
armnn::Convolution3dDescriptor::m_PadTop
uint32_t m_PadTop
Padding top value in the height dimension.
Definition: Descriptors.hpp:621
armnn::StandInDescriptor::m_NumOutputs
uint32_t m_NumOutputs
Number of output tensors.
Definition: Descriptors.hpp:1266
armnn::FillDescriptor::m_Value
float m_Value
Definition: Descriptors.hpp:928
armnn::QLstmDescriptor::m_OutputIntermediateScale
float m_OutputIntermediateScale
Output intermediate quantization scale.
Definition: Descriptors.hpp:1399
armnn::DetectionPostProcessDescriptor::m_DetectionsPerClass
uint32_t m_DetectionsPerClass
Detections per classes, used in Regular NMS.
Definition: Descriptors.hpp:737
armnn::PreCompiledDescriptor::m_NumOutputSlots
unsigned int m_NumOutputSlots
Definition: Descriptors.hpp:1343
armnn::ReshapeDescriptor::ReshapeDescriptor
ReshapeDescriptor(const TensorShape &shape)
Definition: Descriptors.hpp:996
armnn::DetectionPostProcessDescriptor::m_ScaleH
float m_ScaleH
Center size encoding scale height.
Definition: Descriptors.hpp:753
armnn::ViewsDescriptor::SetViewOriginCoord
Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value)
@Brief Set the view origin coordinates.
Definition: Descriptors.cpp:310
armnn::NormalizationDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:793
armnn::DepthwiseConvolution2dDescriptor::m_PadTop
uint32_t m_PadTop
Padding top value in the height dimension.
Definition: Descriptors.hpp:684
armnn::BatchToSpaceNdDescriptor
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
Definition: Descriptors.hpp:863
armnn::OriginsDescriptor::~OriginsDescriptor
~OriginsDescriptor()
Definition: Descriptors.cpp:120
armnn::Convolution3dDescriptor::m_PadFront
uint32_t m_PadFront
Padding front value in the depth dimension.
Definition: Descriptors.hpp:625
armnn::SpaceToDepthDescriptor
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
Definition: Descriptors.hpp:1042
armnn::StridedSliceDescriptor::m_End
std::vector< int > m_End
End values for the input that will be sliced.
Definition: Descriptors.hpp:1311
armnn::ComparisonDescriptor::ComparisonDescriptor
ComparisonDescriptor()
Definition: Descriptors.hpp:91
armnn::LstmDescriptor::m_CellIntermediateScale
float m_CellIntermediateScale
Cell intermediate quantization scale.
Definition: Descriptors.hpp:1127
armnn::Pooling2dDescriptor::Pooling2dDescriptor
Pooling2dDescriptor()
Definition: Descriptors.hpp:361
armnn::DetectionPostProcessDescriptor::m_ScaleW
float m_ScaleW
Center size encoding scale weight.
Definition: Descriptors.hpp:751
armnn::ResizeDescriptor::m_AlignCorners
bool m_AlignCorners
Aligned corners.
Definition: Descriptors.hpp:983
armnn::PadDescriptor::PadDescriptor
PadDescriptor(const std::vector< std::pair< unsigned int, unsigned int >> &padList, const float &padValue=0, const PaddingMode &paddingMode=PaddingMode::Constant)
Definition: Descriptors.hpp:1168
armnn::LogicalBinaryOperation
LogicalBinaryOperation
Definition: Types.hpp:118
armnn::DetectionPostProcessDescriptor
Definition: Descriptors.hpp:701
armnn::ElementwiseUnaryDescriptor::m_Operation
UnaryOperation m_Operation
Specifies the elementwiseUnary operation to execute.
Definition: Descriptors.hpp:145
armnn::ViewsDescriptor::swap
friend void swap(ViewsDescriptor &first, ViewsDescriptor &second)
Swap the ViewsDescriptor value first and second.
Definition: Descriptors.cpp:359
armnn::ResizeMethod::NearestNeighbor
@ NearestNeighbor
armnn::BatchToSpaceNdDescriptor::operator==
bool operator==(const BatchToSpaceNdDescriptor &rhs) const
Definition: Descriptors.hpp:878
armnn::TensorShape
Definition: Tensor.hpp:20
armnn::FillDescriptor
A FillDescriptor for the FillLayer.
Definition: Descriptors.hpp:913
armnn::Convolution3dDescriptor::m_StrideZ
uint32_t m_StrideZ
Stride value when proceeding through input for the depth dimension.
Definition: Descriptors.hpp:633
armnn::ActivationDescriptor::operator==
bool operator==(const ActivationDescriptor &rhs) const
Definition: Descriptors.hpp:52
armnn::PoolingAlgorithm
PoolingAlgorithm
Definition: Types.hpp:147
armnn::ResizeMethod
ResizeMethod
Definition: Types.hpp:163
armnn::ReduceOperation::Sum
@ Sum
armnn::PadDescriptor::m_PaddingMode
PaddingMode m_PaddingMode
Specifies the Padding mode (Constant, Reflect or Symmetric)
Definition: Descriptors.hpp:1191
armnn::ResizeDescriptor::m_TargetHeight
uint32_t m_TargetHeight
Target height value.
Definition: Descriptors.hpp:976
armnn::SpaceToDepthDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:1062
armnn::DepthwiseConvolution2dDescriptor::m_DilationY
uint32_t m_DilationY
Dilation factor value for height dimension.
Definition: Descriptors.hpp:694
armnn::GatherDescriptor::m_Axis
int32_t m_Axis
The axis in params to gather indices from.
Definition: Descriptors.hpp:948
armnn::ElementwiseBinaryDescriptor::ElementwiseBinaryDescriptor
ElementwiseBinaryDescriptor()
Definition: Descriptors.hpp:111
armnn::DataLayout::NCHW
@ NCHW
armnn::Pooling3dDescriptor::m_PadFront
uint32_t m_PadFront
Padding front value in the depth dimension.
Definition: Descriptors.hpp:471
armnn::ReduceOperation
ReduceOperation
Definition: Types.hpp:154
armnn::BatchMatMulDescriptor::operator==
bool operator==(const BatchMatMulDescriptor &rhs) const
Definition: Descriptors.hpp:1567
armnn::ArgMinMaxDescriptor::m_Function
ArgMinMaxFunction m_Function
Specify if the function is to find Min or Max.
Definition: Descriptors.hpp:81
armnn::FakeQuantizationDescriptor::m_Max
float m_Max
Maximum value.
Definition: Descriptors.hpp:909
armnn::DepthwiseConvolution2dDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:698
armnn::SoftmaxDescriptor::m_Axis
int m_Axis
Scalar, defaulted to the last index (-1), specifying the dimension the activation will be performed o...
Definition: Descriptors.hpp:192
armnn::LstmDescriptor::m_HiddenStateScale
float m_HiddenStateScale
Hidden State quantization scale.
Definition: Descriptors.hpp:1133
armnn::PadDescriptor::m_PadList
std::vector< std::pair< unsigned int, unsigned int > > m_PadList
Specifies the padding for input dimension.
Definition: Descriptors.hpp:1185
armnn::NormalizationAlgorithmChannel::Across
@ Across
armnn::Convolution2dDescriptor::m_PadLeft
uint32_t m_PadLeft
Padding left value in the width dimension.
Definition: Descriptors.hpp:554
armnn::BatchMatMulDescriptor::m_DataLayoutX
DataLayout m_DataLayoutX
Data layout of each input tensor, such as NHWC/NDHWC (leave as default for arbitrary layout)
Definition: Descriptors.hpp:1588
armnn::DepthwiseConvolution2dDescriptor
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
Definition: Descriptors.hpp:647
armnn::PadDescriptor::PadDescriptor
PadDescriptor()
Definition: Descriptors.hpp:1165
armnn::MeanDescriptor
A MeanDescriptor for the MeanLayer.
Definition: Descriptors.hpp:1139
armnn::NormalizationAlgorithmMethod::LocalBrightness
@ LocalBrightness
Krichevsky 2012: Local Brightness Normalization.
armnn::ActivationFunction::Sigmoid
@ Sigmoid
armnn::BatchNormalizationDescriptor::operator==
bool operator==(const BatchNormalizationDescriptor &rhs) const
Definition: Descriptors.hpp:823
armnn::LstmDescriptor::m_HiddenStateZeroPoint
int32_t m_HiddenStateZeroPoint
Hidden State zero point.
Definition: Descriptors.hpp:1131
armnn::FillDescriptor::operator==
bool operator==(const FillDescriptor &rhs) const
Definition: Descriptors.hpp:923
armnn::NormalizationDescriptor::m_NormSize
uint32_t m_NormSize
Depth radius value.
Definition: Descriptors.hpp:785
armnn::L2NormalizationDescriptor::L2NormalizationDescriptor
L2NormalizationDescriptor()
Definition: Descriptors.hpp:799
armnn::Pooling3dDescriptor::m_PadBack
uint32_t m_PadBack
Padding back value in the depth dimension.
Definition: Descriptors.hpp:473
armnn::DataLayout::NCDHW
@ NCDHW
armnn::ViewsDescriptor::ViewsDescriptor
ViewsDescriptor()
Definition: Descriptors.cpp:216
armnn::BatchToSpaceNdDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:890
armnn::Pooling2dDescriptor::m_PadBottom
uint32_t m_PadBottom
Padding bottom value in the height dimension.
Definition: Descriptors.hpp:401
armnn::Pooling3dDescriptor::m_StrideZ
uint32_t m_StrideZ
Stride value when proceeding through input for the depth dimension.
Definition: Descriptors.hpp:485
armnn::SoftmaxDescriptor::SoftmaxDescriptor
SoftmaxDescriptor()
Definition: Descriptors.hpp:179
armnn::Convolution2dDescriptor::operator==
bool operator==(const Convolution2dDescriptor &rhs) const
Definition: Descriptors.hpp:537
armnn::StandInDescriptor::StandInDescriptor
StandInDescriptor()
Definition: Descriptors.hpp:1250
armnn::ChannelShuffleDescriptor::m_Axis
uint32_t m_Axis
Axis to apply channel shuffle operation on.
Definition: Descriptors.hpp:1547
armnn::Pooling2dDescriptor::operator==
bool operator==(const Pooling2dDescriptor &rhs) const
Definition: Descriptors.hpp:376
armnn::MeanDescriptor::MeanDescriptor
MeanDescriptor(const std::vector< unsigned int > &axis, bool keepDims)
Definition: Descriptors.hpp:1146
armnn::L2NormalizationDescriptor
A L2NormalizationDescriptor for the L2NormalizationLayer.
Definition: Descriptors.hpp:797
armnn::PermuteDescriptor::PermuteDescriptor
PermuteDescriptor()
Definition: Descriptors.hpp:151
armnn::TransposeConvolution2dDescriptor::TransposeConvolution2dDescriptor
TransposeConvolution2dDescriptor()
Definition: Descriptors.hpp:1409
armnn::BaseDescriptor::~BaseDescriptor
virtual ~BaseDescriptor()=default
armnn::PermuteDescriptor::PermuteDescriptor
PermuteDescriptor(const PermutationVector &dimMappings)
Definition: Descriptors.hpp:155
armnn::ChannelShuffleDescriptor
A ChannelShuffleDescriptor for the ChannelShuffle operator.
Definition: Descriptors.hpp:1529
armnn::Convolution3dDescriptor
A Convolution3dDescriptor for the Convolution3dLayer.
Definition: Descriptors.hpp:576
armnn::LstmDescriptor::m_PeepholeEnabled
bool m_PeepholeEnabled
Enable/disable peephole.
Definition: Descriptors.hpp:1115
armnn::ArgMinMaxFunction::Min
@ Min
armnn::ComparisonOperation
ComparisonOperation
Definition: Types.hpp:108
armnn::BatchMatMulDescriptor::m_TransposeY
bool m_TransposeY
Definition: Descriptors.hpp:1580
armnn::PaddingMode
PaddingMode
The padding mode controls whether the padding should be filled with constant values (Constant),...
Definition: Types.hpp:197
armnn::SpaceToBatchNdDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:1038
armnn::ChannelShuffleDescriptor::ChannelShuffleDescriptor
ChannelShuffleDescriptor()
Definition: Descriptors.hpp:1531
armnn::ResizeDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:981
armnn::SpaceToDepthDescriptor::m_BlockSize
unsigned int m_BlockSize
Scalar specifying the input block size. It must be >= 1.
Definition: Descriptors.hpp:1059
armnn::Convolution2dDescriptor
A Convolution2dDescriptor for the Convolution2dLayer.
Definition: Descriptors.hpp:522
armnn::UnaryOperation
UnaryOperation
Definition: Types.hpp:124
armnn::NormalizationDescriptor::operator==
bool operator==(const NormalizationDescriptor &rhs) const
Definition: Descriptors.hpp:769
armnn::StackDescriptor::m_NumInputs
uint32_t m_NumInputs
Number of input tensors.
Definition: Descriptors.hpp:1242
armnn::Pooling2dDescriptor::m_PoolWidth
uint32_t m_PoolWidth
Pooling width value.
Definition: Descriptors.hpp:403
armnn::TransposeConvolution2dDescriptor::m_PadRight
uint32_t m_PadRight
Padding right value in the width dimension.
Definition: Descriptors.hpp:1438
armnn::BatchNormalizationDescriptor
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
Definition: Descriptors.hpp:816
armnn::GatherDescriptor::GatherDescriptor
GatherDescriptor(int32_t axis)
Definition: Descriptors.hpp:938
armnn::FillDescriptor::FillDescriptor
FillDescriptor(const float &value)
Definition: Descriptors.hpp:919
armnn::FakeQuantizationDescriptor::FakeQuantizationDescriptor
FakeQuantizationDescriptor()
Definition: Descriptors.hpp:896
armnn::Pooling3dDescriptor::m_PoolType
PoolingAlgorithm m_PoolType
The pooling algorithm to use (Max. Average, L2).
Definition: Descriptors.hpp:461
Tensor.hpp
armnn::QLstmDescriptor
A QLstmDescriptor for the QLstmLayer.
Definition: Descriptors.hpp:1347
armnn::ActivationDescriptor::m_A
float m_A
Alpha upper bound value used by the activation functions. (BoundedReLu, Linear, TanH,...
Definition: Descriptors.hpp:61
armnn::MeanDescriptor::operator==
bool operator==(const MeanDescriptor &rhs) const
Definition: Descriptors.hpp:1151
armnn::Pooling3dDescriptor::m_PoolDepth
uint32_t m_PoolDepth
Pooling depth value.
Definition: Descriptors.hpp:479
armnn::InstanceNormalizationDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:859
armnn::Convolution3dDescriptor::m_StrideX
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
Definition: Descriptors.hpp:629
armnn::Pooling3dDescriptor::m_PaddingMethod
PaddingMethod m_PaddingMethod
The padding method to be used. (Exclude, IgnoreValue).
Definition: Descriptors.hpp:489
armnn::BatchToSpaceNdDescriptor::BatchToSpaceNdDescriptor
BatchToSpaceNdDescriptor(std::vector< unsigned int > blockShape, std::vector< std::pair< unsigned int, unsigned int >> crops)
Definition: Descriptors.hpp:871
armnn::ArgMinMaxFunction::Max
@ Max
armnn::Status
Status
Definition: Types.hpp:42
armnn::SoftmaxDescriptor::m_Beta
float m_Beta
Exponentiation value.
Definition: Descriptors.hpp:190
armnn::StridedSliceDescriptor::GetStartForAxis
int GetStartForAxis(const TensorShape &inputShape, unsigned int axis) const
Definition: Descriptors.cpp:366
armnn::ActivationDescriptor::ActivationDescriptor
ActivationDescriptor()
Definition: Descriptors.hpp:38
DescriptorsFwd.hpp
armnn::LstmDescriptor::m_OutputIntermediateScale
float m_OutputIntermediateScale
Output intermediate quantization scale.
Definition: Descriptors.hpp:1129
armnn::ResizeDescriptor::m_Method
ResizeMethod m_Method
The Interpolation method to use (Bilinear, NearestNeighbor).
Definition: Descriptors.hpp:979
armnn::ElementwiseUnaryDescriptor::ElementwiseUnaryDescriptor
ElementwiseUnaryDescriptor(UnaryOperation operation)
Definition: Descriptors.hpp:135
armnn::Convolution3dDescriptor::m_StrideY
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
Definition: Descriptors.hpp:631
armnn::Pooling2dDescriptor::m_PadLeft
uint32_t m_PadLeft
Padding left value in the width dimension.
Definition: Descriptors.hpp:395
armnn::QLstmDescriptor::m_HiddenStateScale
float m_HiddenStateScale
Hidden State quantization scale.
Definition: Descriptors.hpp:1403
armnn::TransposeDescriptor::m_DimMappings
PermutationVector m_DimMappings
Indicates how to translate tensor elements from a given source into the target destination,...
Definition: Descriptors.hpp:1481
armnn::Convolution3dDescriptor::m_PadRight
uint32_t m_PadRight
Padding right value in the width dimension.
Definition: Descriptors.hpp:619
armnn::PaddingMethod
PaddingMethod
The padding method modifies the output of pooling layers.
Definition: Types.hpp:185
armnn::QLstmDescriptor::m_HiddenStateZeroPoint
int32_t m_HiddenStateZeroPoint
Hidden State zero point.
Definition: Descriptors.hpp:1401
armnn::SpaceToBatchNdDescriptor::SpaceToBatchNdDescriptor
SpaceToBatchNdDescriptor()
Definition: Descriptors.hpp:1012
armnn::StridedSliceDescriptor::m_Stride
std::vector< int > m_Stride
Stride values for the input that will be sliced.
Definition: Descriptors.hpp:1313
armnn::DataLayout::NHWC
@ NHWC
armnn::LstmDescriptor::m_ForgetIntermediateScale
float m_ForgetIntermediateScale
Forget intermediate quantization scale.
Definition: Descriptors.hpp:1125
armnn::ReduceDescriptor::operator==
bool operator==(const ReduceDescriptor &rhs) const
Definition: Descriptors.hpp:1513
armnn::SliceDescriptor::SliceDescriptor
SliceDescriptor(const std::vector< unsigned int > &begin, const std::vector< unsigned int > &size)
Definition: Descriptors.hpp:1197
armnn::DetectionPostProcessDescriptor::m_NumClasses
uint32_t m_NumClasses
Number of classes.
Definition: Descriptors.hpp:743
armnn::Pooling2dDescriptor::m_PadTop
uint32_t m_PadTop
Padding top value in the height dimension.
Definition: Descriptors.hpp:399
armnn::ActivationDescriptor::m_Function
ActivationFunction m_Function
The activation function to use (Sigmoid, TanH, Linear, ReLu, BoundedReLu, SoftReLu,...
Definition: Descriptors.hpp:59
armnn::Convolution2dDescriptor::m_StrideX
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
Definition: Descriptors.hpp:562
armnn::NormalizationDescriptor::m_K
float m_K
Kappa value used for the across channel normalization equation.
Definition: Descriptors.hpp:791
armnn::Convolution3dDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NDHWC, NCDHW).
Definition: Descriptors.hpp:643
armnn::TransposeConvolution2dDescriptor::operator==
bool operator==(const TransposeConvolution2dDescriptor &rhs) const
Definition: Descriptors.hpp:1421
armnn::PreCompiledDescriptor::~PreCompiledDescriptor
~PreCompiledDescriptor()=default
armnn::PadDescriptor::m_PadValue
float m_PadValue
Optional value to use for padding, defaults to 0.
Definition: Descriptors.hpp:1188
armnn::PermutationVector
Definition: Types.hpp:306
armnn::BatchToSpaceNdDescriptor::m_BlockShape
std::vector< unsigned int > m_BlockShape
Block shape values.
Definition: Descriptors.hpp:886
armnn::StridedSliceDescriptor::m_ShrinkAxisMask
int32_t m_ShrinkAxisMask
Shrink axis mask value. If set, the nth specification shrinks the dimensionality by 1.
Definition: Descriptors.hpp:1322
armnn::SpaceToBatchNdDescriptor::m_BlockShape
std::vector< unsigned int > m_BlockShape
Block shape value.
Definition: Descriptors.hpp:1033
armnn::NormalizationDescriptor::m_Beta
float m_Beta
Beta value for the normalization equation.
Definition: Descriptors.hpp:789
armnn::FullyConnectedDescriptor::FullyConnectedDescriptor
FullyConnectedDescriptor()
Definition: Descriptors.hpp:497
armnn::SliceDescriptor::m_Size
std::vector< unsigned int > m_Size
Size of the slice in each dimension.
Definition: Descriptors.hpp:1214
armnn::LstmDescriptor::m_ClippingThresCell
float m_ClippingThresCell
Clipping threshold value for the cell state.
Definition: Descriptors.hpp:1109
armnn::BaseDescriptor
Base class for all descriptors.
Definition: Descriptors.hpp:22
armnn::OriginsDescriptor
An OriginsDescriptor for the ConcatLayer.
Definition: Descriptors.hpp:201
armnn::ReshapeDescriptor
A ReshapeDescriptor for the ReshapeLayer.
Definition: Descriptors.hpp:990
armnn::SoftmaxDescriptor::operator==
bool operator==(const SoftmaxDescriptor &rhs) const
Definition: Descriptors.hpp:184
armnn::TransposeConvolution2dDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:1450
armnn::ViewsDescriptor::SetViewSize
Status SetViewSize(uint32_t view, uint32_t coord, uint32_t value)
Set the size of the views.
Definition: Descriptors.cpp:315
armnn::BinaryOperation::Add
@ Add
armnn::BaseDescriptor::IsNull
virtual bool IsNull() const
Definition: Descriptors.hpp:24
armnn::DataType
DataType
Definition: Types.hpp:48
armnn::PermuteDescriptor
A PermuteDescriptor for the PermuteLayer.
Definition: Descriptors.hpp:149
armnn::BatchToSpaceNdDescriptor::BatchToSpaceNdDescriptor
BatchToSpaceNdDescriptor()
Definition: Descriptors.hpp:865
armnn::ReduceDescriptor::ReduceDescriptor
ReduceDescriptor()
Definition: Descriptors.hpp:1507
armnn::TransposeConvolution2dDescriptor
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
Definition: Descriptors.hpp:1407
armnn::FullyConnectedDescriptor::m_TransposeWeightMatrix
bool m_TransposeWeightMatrix
Enable/disable transpose weight matrix.
Definition: Descriptors.hpp:516
armnn::SpaceToDepthDescriptor::SpaceToDepthDescriptor
SpaceToDepthDescriptor()
Definition: Descriptors.hpp:1044
armnn::L2NormalizationDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:812
armnn::PermutationVector::IsEqual
bool IsEqual(const PermutationVector &other) const
Definition: Types.hpp:358
armnn::ElementwiseBinaryDescriptor::m_Operation
BinaryOperation m_Operation
Specifies the elementwiseBinary operation to execute.
Definition: Descriptors.hpp:125
armnn::SliceDescriptor::m_Begin
std::vector< unsigned int > m_Begin
Beginning indices of the slice in each dimension.
Definition: Descriptors.hpp:1211
armnn::TransposeDescriptor::operator==
bool operator==(const TransposeDescriptor &rhs) const
Definition: Descriptors.hpp:1467
armnn::DepthwiseConvolution2dDescriptor::m_PadRight
uint32_t m_PadRight
Padding right value in the width dimension.
Definition: Descriptors.hpp:682
armnn::GatherDescriptor::GatherDescriptor
GatherDescriptor()
Definition: Descriptors.hpp:934
armnn::Pooling2dDescriptor
A Pooling2dDescriptor for the Pooling2dLayer.
Definition: Descriptors.hpp:359
armnn::FakeQuantizationDescriptor::m_Min
float m_Min
Minimum value.
Definition: Descriptors.hpp:907
armnn::Pooling3dDescriptor::m_StrideY
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
Definition: Descriptors.hpp:483
armnn::Pooling3dDescriptor::m_PadBottom
uint32_t m_PadBottom
Padding bottom value in the height dimension.
Definition: Descriptors.hpp:469
armnn::LogicalBinaryDescriptor
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
Definition: Descriptors.hpp:1485
armnn::LstmDescriptor::m_ProjectionEnabled
bool m_ProjectionEnabled
Enable/disable the projection layer.
Definition: Descriptors.hpp:1117
armnn::BatchMatMulDescriptor::m_DataLayoutY
DataLayout m_DataLayoutY
Definition: Descriptors.hpp:1589
Exceptions.hpp
armnn::QLstmDescriptor::m_InputIntermediateScale
float m_InputIntermediateScale
Input intermediate quantization scale.
Definition: Descriptors.hpp:1393
armnn::StridedSliceDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Definition: Descriptors.hpp:1330
armnn::MeanDescriptor::m_KeepDims
bool m_KeepDims
Enable/disable keep dimensions. If true, then the reduced dimensions that are of length 1 are kept.
Definition: Descriptors.hpp:1159
armnn::ViewsDescriptor::GetOrigins
const OriginsDescriptor & GetOrigins() const
Get the View Origins.
Definition: Descriptors.cpp:345
armnn::ElementwiseBinaryDescriptor::ElementwiseBinaryDescriptor
ElementwiseBinaryDescriptor(BinaryOperation operation)
Definition: Descriptors.hpp:115
armnn::Pooling2dDescriptor::m_PadRight
uint32_t m_PadRight
Padding right value in the width dimension.
Definition: Descriptors.hpp:397
armnn::TransposeConvolution2dDescriptor::m_StrideX
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
Definition: Descriptors.hpp:1444
armnn::TransposeDescriptor::TransposeDescriptor
TransposeDescriptor(const PermutationVector &dimMappings)
Definition: Descriptors.hpp:1463
armnn::DetectionPostProcessDescriptor::m_ScaleY
float m_ScaleY
Center size encoding scale y.
Definition: Descriptors.hpp:749
armnn::QLstmDescriptor::m_CifgEnabled
bool m_CifgEnabled
Enable/disable CIFG (coupled input & forget gate).
Definition: Descriptors.hpp:1385
armnn::BatchNormalizationDescriptor::BatchNormalizationDescriptor
BatchNormalizationDescriptor()
Definition: Descriptors.hpp:818
armnn::SpaceToBatchNdDescriptor::SpaceToBatchNdDescriptor
SpaceToBatchNdDescriptor(const std::vector< unsigned int > &blockShape, const std::vector< std::pair< unsigned int, unsigned int >> &padList)
Definition: Descriptors.hpp:1018
armnn::DetectionPostProcessDescriptor::m_MaxClassesPerDetection
uint32_t m_MaxClassesPerDetection
Maximum numbers of classes per detection, used in Fast NMS.
Definition: Descriptors.hpp:735
armnn::Convolution3dDescriptor::Convolution3dDescriptor
Convolution3dDescriptor()
Definition: Descriptors.hpp:578
armnn::StridedSliceDescriptor::m_EndMask
int32_t m_EndMask
End mask value.
Definition: Descriptors.hpp:1320
armnn::DepthwiseConvolution2dDescriptor::m_PadBottom
uint32_t m_PadBottom
Padding bottom value in the height dimension.
Definition: Descriptors.hpp:686
armnn::InstanceNormalizationDescriptor::m_Gamma
float m_Gamma
Gamma, the scale scalar value applied for the normalized tensor. Defaults to 1.0.
Definition: Descriptors.hpp:853
armnn::DepthwiseConvolution2dDescriptor::operator==
bool operator==(const DepthwiseConvolution2dDescriptor &rhs) const
Definition: Descriptors.hpp:662
armnn::NormalizationDescriptor::m_NormChannelType
NormalizationAlgorithmChannel m_NormChannelType
Normalization channel algorithm to use (Across, Within).
Definition: Descriptors.hpp:781
armnn::Convolution3dDescriptor::m_BiasEnabled
bool m_BiasEnabled
Enable/disable bias.
Definition: Descriptors.hpp:641
armnn::LstmDescriptor::m_ActivationFunc
uint32_t m_ActivationFunc
The activation function to use.
Definition: Descriptors.hpp:1107
armnn::CreateDescriptorForConcatenation
OriginsDescriptor CreateDescriptorForConcatenation(TensorShapeIt first, TensorShapeIt last, unsigned int concatenationDimension)
Convenience template to create an OriginsDescriptor to use when creating a ConcatLayer for performing...
Definition: Descriptors.hpp:288
armnn::LstmDescriptor::m_ClippingThresProj
float m_ClippingThresProj
Clipping threshold value for the projection.
Definition: Descriptors.hpp:1111
armnn::ArgMinMaxDescriptor
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:67
armnn::ChannelShuffleDescriptor::operator==
bool operator==(const ChannelShuffleDescriptor &rhs) const
Definition: Descriptors.hpp:1539
armnn::QLstmDescriptor::m_PeepholeEnabled
bool m_PeepholeEnabled
Enable/disable peephole.
Definition: Descriptors.hpp:1387
armnn::BatchNormalizationDescriptor::m_Eps
float m_Eps
Value to add to the variance. Used to avoid dividing by zero.
Definition: Descriptors.hpp:829
armnn::FakeQuantizationDescriptor
A FakeQuantizationDescriptor for the FakeQuantizationLayer.
Definition: Descriptors.hpp:894
armnn::ViewsDescriptor::~ViewsDescriptor
~ViewsDescriptor()
Definition: Descriptors.cpp:256
armnn::Pooling3dDescriptor::m_PoolHeight
uint32_t m_PoolHeight
Pooling height value.
Definition: Descriptors.hpp:477
armnn::ActivationDescriptor::m_B
float m_B
Beta lower bound value used by the activation functions. (BoundedReLu, Linear, TanH).
Definition: Descriptors.hpp:63
armnn::StackDescriptor::operator==
bool operator==(const StackDescriptor &rhs) const
Definition: Descriptors.hpp:1232
armnn::DepthwiseConvolution2dDescriptor::m_StrideY
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
Definition: Descriptors.hpp:690
armnn::GatherDescriptor::operator==
bool operator==(const GatherDescriptor &rhs) const
Definition: Descriptors.hpp:942
armnn::TransposeConvolution2dDescriptor::m_StrideY
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
Definition: Descriptors.hpp:1446
armnn::Convolution3dDescriptor::m_PadBack
uint32_t m_PadBack
Padding back value in the depth dimension.
Definition: Descriptors.hpp:627
armnn::Pooling2dDescriptor::m_PaddingMethod
PaddingMethod m_PaddingMethod
The padding method to be used. (Exclude, IgnoreValue).
Definition: Descriptors.hpp:413
armnn::PreCompiledDescriptor::m_NumInputSlots
unsigned int m_NumInputSlots
Definition: Descriptors.hpp:1342
armnn::ReduceDescriptor::m_KeepDims
bool m_KeepDims
if true then output shape has no change.
Definition: Descriptors.hpp:1521
armnn::DepthwiseConvolution2dDescriptor::DepthwiseConvolution2dDescriptor
DepthwiseConvolution2dDescriptor()
Definition: Descriptors.hpp:649
std
Definition: BackendId.hpp:149
armnn::Convolution2dDescriptor::m_StrideY
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
Definition: Descriptors.hpp:564
Types.hpp
armnn::ResizeDescriptor::m_HalfPixelCenters
bool m_HalfPixelCenters
Half Pixel Centers.
Definition: Descriptors.hpp:985
armnn::PaddingMethod::Exclude
@ Exclude
The padding fields don't count and are ignored.
armnn::DetectionPostProcessDescriptor::m_NmsIouThreshold
float m_NmsIouThreshold
Intersection over union threshold.
Definition: Descriptors.hpp:741
armnn::ReshapeDescriptor::m_TargetShape
TensorShape m_TargetShape
Target shape value.
Definition: Descriptors.hpp:1006
armnn::DataLayout::NDHWC
@ NDHWC
armnn::Pooling3dDescriptor::operator==
bool operator==(const Pooling3dDescriptor &rhs) const
Definition: Descriptors.hpp:440
armnn::Convolution3dDescriptor::operator==
bool operator==(const Convolution3dDescriptor &rhs) const
Definition: Descriptors.hpp:595
armnn::BatchMatMulDescriptor::GetPermuteVec
static PermutationVector GetPermuteVec(DataLayout dataLayout, const TensorShape &tensorShape)
Static helper to get the axes which will be transposed.
Definition: Descriptors.cpp:514
armnn::BatchMatMulDescriptor::m_AdjointY
bool m_AdjointY
Definition: Descriptors.hpp:1585
armnn::InvalidArgumentException
Definition: Exceptions.hpp:80
armnn::BatchMatMulDescriptor::m_AdjointX
bool m_AdjointX
Adjoint the slices of each input tensor Transpose and Adjoint can not both be set to true for the sam...
Definition: Descriptors.hpp:1584
armnn::Pooling3dDescriptor::m_DataLayout
DataLayout m_DataLayout
The data layout to be used (NCDHW, NDHWC).
Definition: Descriptors.hpp:491
armnn::StackDescriptor::m_Axis
uint32_t m_Axis
0-based axis along which to stack the input tensors.
Definition: Descriptors.hpp:1240
armnn::Convolution3dDescriptor::GetNumInputs
uint32_t GetNumInputs() const
Get the number of views/inputs.
Definition: Descriptors.cpp:438
armnn::QLstmDescriptor::m_ProjectionEnabled
bool m_ProjectionEnabled
Enable/disable the projection layer.
Definition: Descriptors.hpp:1389
armnn::InstanceNormalizationDescriptor
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
Definition: Descriptors.hpp:835
armnn::NormalizationDescriptor::m_Alpha
float m_Alpha
Alpha value for the normalization equation.
Definition: Descriptors.hpp:787
armnn::DetectionPostProcessDescriptor::DetectionPostProcessDescriptor
DetectionPostProcessDescriptor()
Definition: Descriptors.hpp:703
armnn::DetectionPostProcessDescriptor::m_UseRegularNms
bool m_UseRegularNms
Use Regular NMS.
Definition: Descriptors.hpp:745
armnn::ArgMinMaxDescriptor::operator==
bool operator==(const ArgMinMaxDescriptor &rhs) const
Definition: Descriptors.hpp:75
armnn::NullDescriptor::IsNull
bool IsNull() const override
Definition: Descriptors.hpp:32
armnn::PermuteDescriptor::operator==
bool operator==(const PermuteDescriptor &rhs) const
Definition: Descriptors.hpp:159
armnn::DetectionPostProcessDescriptor::operator==
bool operator==(const DetectionPostProcessDescriptor &rhs) const
Definition: Descriptors.hpp:717
armnn::ElementwiseBinaryDescriptor
A ElementwiseBinaryDescriptor for the ElementwiseBinaryLayer.
Definition: Descriptors.hpp:109
armnn::ResizeDescriptor::operator==
bool operator==(const ResizeDescriptor &rhs) const
Definition: Descriptors.hpp:963
armnn::Convolution3dDescriptor::m_PadBottom
uint32_t m_PadBottom
Padding bottom value in the height dimension.
Definition: Descriptors.hpp:623
armnn::BatchMatMulDescriptor::GetAxesToMul
static std::pair< std::pair< unsigned int, unsigned int >, std::pair< unsigned int, unsigned int > > GetAxesToMul(const BatchMatMulDescriptor &desc, const TensorShape &tensorXShape, const TensorShape &tensorYShape)
Definition: Descriptors.cpp:459
armnn::OriginsDescriptor::SetViewOriginCoord
Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value)
@Brief Set the view origin coordinates.
Definition: Descriptors.cpp:167
armnn::OriginsDescriptor::operator=
OriginsDescriptor & operator=(OriginsDescriptor rhs)
Definition: Descriptors.cpp:129
armnn::StridedSliceDescriptor::m_EllipsisMask
int32_t m_EllipsisMask
Ellipsis mask value.
Definition: Descriptors.hpp:1324
armnn::MeanDescriptor::MeanDescriptor
MeanDescriptor()
Definition: Descriptors.hpp:1141
armnn::FullyConnectedDescriptor::GetNumInputs
uint32_t GetNumInputs() const
Get the number of inputs.
Definition: Descriptors.cpp:448
armnn::Pooling3dDescriptor::Pooling3dDescriptor
Pooling3dDescriptor()
Definition: Descriptors.hpp:421
armnn::NormalizationDescriptor::NormalizationDescriptor
NormalizationDescriptor()
Definition: Descriptors.hpp:759
armnn::PreCompiledDescriptor::PreCompiledDescriptor
PreCompiledDescriptor(unsigned int numInputSlots=1u, unsigned int numOutputSlots=1u)
Definition: Descriptors.hpp:1336
armnn::ViewsDescriptor::GetViewSizes
const uint32_t * GetViewSizes(uint32_t idx) const
Get the view sizes at the int value idx.
Definition: Descriptors.cpp:340
armnn::BatchMatMulDescriptor::GetAxesNotMul
static std::pair< std::vector< unsigned int >, std::vector< unsigned int > > GetAxesNotMul(const BatchMatMulDescriptor &desc, const TensorShape &inputXShape, const TensorShape &inputYShape)
Definition: Descriptors.cpp:467
armnn::InstanceNormalizationDescriptor::m_Beta
float m_Beta
Beta, the offset scalar value applied for the normalized tensor. Defaults to 1.0.
Definition: Descriptors.hpp:855
armnn::ResizeDescriptor::m_TargetWidth
uint32_t m_TargetWidth
Target width value.
Definition: Descriptors.hpp:974
Deprecated.hpp
armnn::SpaceToBatchNdDescriptor
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
Definition: Descriptors.hpp:1010
armnn::ElementwiseUnaryDescriptor::operator==
bool operator==(const ElementwiseUnaryDescriptor &rhs) const
Definition: Descriptors.hpp:139
armnn::Pooling2dDescriptor::m_OutputShapeRounding
OutputShapeRounding m_OutputShapeRounding
The rounding method for the output shape. (Floor, Ceiling).
Definition: Descriptors.hpp:411
armnn::ActivationFunction
ActivationFunction
Definition: Types.hpp:86