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