ArmNN
 23.05
LayerSupportBase.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <armnn/Deprecated.hpp>
7 #include <armnn/Exceptions.hpp>
8 #include <armnn/Types.hpp>
9 
11 
14 
15 namespace
16 {
17 
18 bool DefaultLayerSupport(const char* func,
19  const char* file,
20  unsigned int line,
21  armnn::Optional<std::string&> reasonIfUnsupported)
22 {
23  // NOTE: We only need to return the reason if the optional parameter is not empty
24  if (reasonIfUnsupported)
25  {
26  std::stringstream message;
27  message << func << " is not implemented [" << file << ":" << line << "]";
28 
29  reasonIfUnsupported.value() = message.str();
30  }
31 
32  return false;
33 }
34 
35 } // anonymous namespace
36 
37 namespace armnn
38 {
39 
41  const std::vector<TensorInfo>& infos,
42  const BaseDescriptor& descriptor,
45  Optional<std::string&> reasonIfUnsupported) const
46 {
47  switch(type)
48  {
49  case LayerType::MemCopy:
50  return IsMemCopySupported(infos[0], infos[1], reasonIfUnsupported);
52  return IsMemImportSupported(infos[0], infos[1], reasonIfUnsupported);
53  case LayerType::StandIn:
54  {
55  auto desc = *(PolymorphicDowncast<const StandInDescriptor*>(&descriptor));
56 
57  if (infos.size() != (desc.m_NumInputs + desc.m_NumOutputs))
58  {
59  throw InvalidArgumentException("Number of StandIn layer TensorInfos does not equal "
60  "the combined number of input and output slots assigned "
61  "to the StandIn descriptor");
62  }
63 
64  std::vector<const TensorInfo*> inputInfos;
65  for (uint32_t i = 0; i < desc.m_NumInputs; i++)
66  {
67  inputInfos.push_back(&infos[i]);
68  }
69  std::vector<const TensorInfo*> outputInfos;
70  for (uint32_t i = desc.m_NumInputs; i < infos.size(); i++)
71  {
72  outputInfos.push_back(&infos[i]);
73  }
74 
75  return IsStandInSupported(inputInfos,
76  outputInfos,
77  desc,
79  }
80  default:
81  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
82  }
83 }
84 
86  const TensorInfo&, //output
87  const ActivationDescriptor&, // descriptor
88  Optional<std::string&> reasonIfUnsupported) const
89 {
90  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
91 }
92 
94  const TensorInfo&, // input1
95  const TensorInfo&, // output
96  Optional<std::string&> reasonIfUnsupported) const
97 {
98  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
99 }
100 
102  const armnn::TensorInfo&, // output
103  const armnn::ArgMinMaxDescriptor&, // descriptor
104  armnn::Optional<std::string &> reasonIfUnsupported) const
105 {
106  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
107 }
108 
110  const TensorInfo&, // output
111  const TensorInfo&, //mean
112  const TensorInfo&, //var
113  const TensorInfo&, //beta
114  const TensorInfo&, //gamma
115  const BatchNormalizationDescriptor&, // descriptor
116  Optional<std::string&> reasonIfUnsupported) const
117 {
118  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
119 }
120 
122  const TensorInfo&, // output
123  const BatchToSpaceNdDescriptor&, //descriptor
124  Optional<std::string&> reasonIfUnsupported) const
125 {
126  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
127 }
128 
130  const TensorInfo&, //output
131  Optional<std::string &> reasonIfUnsupported) const
132 {
133  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
134 }
135 
137  const TensorInfo&, //output
138  const ChannelShuffleDescriptor&, //descriptor
139  Optional<std::string &> reasonIfUnsupported) const
140 {
141  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
142 }
143 
145  const TensorInfo&, // input1
146  const TensorInfo&, // output
147  const ComparisonDescriptor&, // descriptor
148  Optional<std::string&> reasonIfUnsupported) const
149 {
150  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
151 }
152 
153 bool LayerSupportBase::IsConcatSupported(const std::vector<const TensorInfo*>, // inputs
154  const TensorInfo&, // output
155  const OriginsDescriptor&, // descriptor
156  Optional<std::string&> reasonIfUnsupported) const
157 {
158  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
159 }
160 
162  Optional<std::string&> reasonIfUnsupported) const
163 {
164  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
165 }
166 
168  const TensorInfo&, // output
169  Optional<std::string&> reasonIfUnsupported) const
170 {
171  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
172 }
173 
175  const TensorInfo&, // output
176  Optional<std::string&> reasonIfUnsupported) const
177 {
178  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
179 }
180 
182  const TensorInfo&, // output
183  const Convolution2dDescriptor&, // descriptor
184  const TensorInfo&, // weights
185  const Optional<TensorInfo>&, // biases
186  Optional<std::string&> reasonIfUnsupported) const
187 {
188  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
189 }
190 
192  const TensorInfo&, // output
193  const Convolution3dDescriptor&, // descriptor
194  const TensorInfo&, // weights
195  const Optional<TensorInfo>&, // biases
196  Optional<std::string&> reasonIfUnsupported) const
197 {
198  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
199 }
200 
202  const TensorInfo&, // output
203  Optional<std::string&> reasonIfUnsupported) const
204 {
205  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
206 }
207 
209  const TensorInfo&, // output
210  const DepthToSpaceDescriptor&, // descriptor
211  Optional<std::string&> reasonIfUnsupported) const
212 {
213  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
214 }
215 
217  const TensorInfo&, //output
218  const DepthwiseConvolution2dDescriptor&, // descriptor
219  const TensorInfo&, // weights
220  const Optional<TensorInfo>&, // biases
221  Optional<std::string&> reasonIfUnsupported) const
222 {
223  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
224 }
225 
227  const TensorInfo&, // output
228  Optional<std::string&> reasonIfUnsupported) const
229 {
230  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
231 }
232 
234  const TensorInfo&, // scores
235  const TensorInfo&, // anchors
236  const TensorInfo&, // detectionBoxes
237  const TensorInfo&, // detectionClasses
238  const TensorInfo&, // detectionScores
239  const TensorInfo&, // numDetections
240  const DetectionPostProcessDescriptor&, //descriptor
241  Optional<std::string&> reasonIfUnsupported) const
242 {
243  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
244 }
245 
247  const TensorInfo&, // output
248  const DepthwiseConvolution2dDescriptor&, // descriptor
249  const TensorInfo&,// weights
250  const Optional<TensorInfo>&, // biases
251  Optional<std::string&> reasonIfUnsupported) const
252 {
253  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
254 }
255 
257  const TensorInfo&, // input1
258  const TensorInfo&, // output
259  Optional<std::string&> reasonIfUnsupported) const
260 {
261  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
262 }
263 
265  const TensorInfo&, // output
266  const ElementwiseUnaryDescriptor&, // descriptor
267  Optional<std::string&> reasonIfUnsupported) const
268 {
269  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
270 }
271 
273  const FakeQuantizationDescriptor&, // descriptor
274  Optional<std::string&> reasonIfUnsupported) const
275 {
276  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
277 }
278 
280  const TensorInfo&, // output
281  const FillDescriptor&, // descriptor
282  Optional<std::string&> reasonIfUnsupported) const
283 {
284  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
285 }
286 
288  const TensorInfo&, // output
289  Optional<std::string&> reasonIfUnsupported) const
290 {
291  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
292 }
293 
295  const TensorInfo&, // output
296  const TensorInfo&, // weights
297  const TensorInfo&, // biases
298  const FullyConnectedDescriptor&, // descriptor
299  Optional<std::string&> reasonIfUnsupported) const
300 {
301  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
302 }
303 
305  const armnn::TensorInfo&, // input1
306  const armnn::TensorInfo&, // output
307  const GatherDescriptor&, // descriptor
308  armnn::Optional<std::string&> reasonIfUnsupported) const
309 {
310  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
311 }
312 
314  Optional<std::string&> reasonIfUnsupported) const
315 {
316  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
317 }
318 
320  const TensorInfo&, // output
321  const InstanceNormalizationDescriptor&, // descriptor
322  Optional<std::string&> reasonIfUnsupported) const
323 {
324  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
325 }
326 
328  const TensorInfo&, // output
329  const L2NormalizationDescriptor&, // descriptor
330  Optional<std::string&> reasonIfUnsupported) const
331 {
332  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
333 }
334 
336  const TensorInfo&, // input1
337  const TensorInfo&, // output
338  const LogicalBinaryDescriptor&, // descriptor
339  Optional<std::string&> reasonIfUnsupported) const
340 {
341  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
342 }
343 
345  const TensorInfo&, // output
346  const ElementwiseUnaryDescriptor&, // descriptor
347  Optional<std::string&> reasonIfUnsupported) const
348 {
349  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
350 }
351 
353  const TensorInfo&, // output
354  const LogSoftmaxDescriptor&, // descriptor
355  Optional<std::string&> reasonIfUnsupported) const
356 {
357  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
358 }
359 
361  const TensorInfo&, // outputStateIn
362  const TensorInfo&, // cellStateIn
363  const TensorInfo&, // scratchBuffer
364  const TensorInfo&, // outputStateOut
365  const TensorInfo&, // cellStateOut
366  const TensorInfo&, // output
367  const LstmDescriptor&, // descriptor
368  const LstmInputParamsInfo&, // paramsInfo
369  Optional<std::string&> reasonIfUnsupported) const
370 {
371  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
372 }
373 
375  const TensorInfo&, // input1
376  const TensorInfo&, // output
377  Optional<std::string&> reasonIfUnsupported) const
378 {
379  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
380 }
381 
383  const TensorInfo&, // output
384  const MeanDescriptor&, // descriptor
385  Optional<std::string&> reasonIfUnsupported) const
386 {
387  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
388 }
389 
391  const armnn::TensorInfo&, // output
392  armnn::Optional<std::string &> ) const // reasonIfUnsupported
393 {
394  return true;
395 }
396 
398  const armnn::TensorInfo&, // output
399  armnn::Optional<std::string &> ) const // reasonIfUnsupported
400 {
401  return true;
402 }
403 
405  const TensorInfo&, // input1
406  const TensorInfo&, // output
407  Optional<std::string&> reasonIfUnsupported) const
408 {
409  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
410 }
411 
413  const TensorInfo&, // input1
414  const TensorInfo&, // output
415  Optional<std::string&> reasonIfUnsupported) const
416 {
417  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
418 }
419 
421  const TensorInfo&, // input1
422  const TensorInfo&, // output
423  Optional<std::string&> reasonIfUnsupported) const
424 {
425  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
426 }
427 
429  const TensorInfo&, // output
430  const NormalizationDescriptor&, // descriptor
431  Optional<std::string&> reasonIfUnsupported) const
432 {
433  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
434 }
435 
437  Optional<std::string&> reasonIfUnsupported) const
438 {
439  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
440 }
441 
443  const TensorInfo&, // output
444  const PadDescriptor&, // descriptor
445  Optional<std::string&> reasonIfUnsupported) const
446 {
447  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
448 }
449 
451  const TensorInfo&, // output
452  const PermuteDescriptor&, // descriptor
453  Optional<std::string&> reasonIfUnsupported) const
454 {
455  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
456 }
457 
459  const TensorInfo&, // output
460  const Pooling2dDescriptor&, // descriptor
461  Optional<std::string&> reasonIfUnsupported) const
462 {
463  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
464 }
465 
467  const TensorInfo&, // output
468  const Pooling3dDescriptor&, // descriptor
469  Optional<std::string&> reasonIfUnsupported) const
470 {
471  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
472 }
473 
475  const PreCompiledDescriptor&, // descriptor
476  Optional<std::string&> reasonIfUnsupported) const
477 {
478  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
479 }
480 
482  const TensorInfo&, // alpha
483  const TensorInfo&, // output
484  Optional<std::string &> reasonIfUnsupported) const
485 {
486  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
487 }
488 
490  const armnn::TensorInfo&, // output
491  armnn::Optional<std::string&> reasonIfUnsupported) const
492 {
493  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
494 }
495 
497  const TensorInfo&, // previousOutputIn
498  const TensorInfo&, // previousCellStateIn
499  const TensorInfo&, // outputStateOut
500  const TensorInfo&, // cellStateOut
501  const TensorInfo&, // output
502  const QLstmDescriptor&, // descriptor
503  const LstmInputParamsInfo&, // paramsInfo
504  Optional<std::string&> reasonIfUnsupported) const
505 {
506  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
507 }
508 
510  const TensorInfo&, // previousCellStateIn
511  const TensorInfo&, // previousOutputIn
512  const TensorInfo&, // cellStateOut
513  const TensorInfo&, // output
514  const QuantizedLstmInputParamsInfo&, // paramsInfo
515  Optional<std::string&> reasonIfUnsupported) const
516 {
517  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
518 }
519 
521  const TensorInfo&, // output
522  Optional<std::string&> reasonIfUnsupported) const
523 {
524  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
525 }
526 
528  const TensorInfo& /*output*/,
529  const ReduceDescriptor& /*descriptor*/,
530  Optional<std::string&> reasonIfUnsupported) const
531 {
532  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
533 }
534 
536  const TensorInfo&, // output
537  const ReshapeDescriptor&, // descriptor
538  Optional<std::string&> reasonIfUnsupported) const
539 {
540  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
541 }
542 
544  const TensorInfo&, // output
545  const ResizeDescriptor&, // descriptor
546  Optional<std::string&> reasonIfUnsupported) const
547 {
548  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
549 }
550 
552  const TensorInfo&, // output
553  Optional<std::string&> reasonIfUnsupported) const
554 {
555  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
556 }
557 
559  const TensorInfo&, // output
560  const SliceDescriptor&, // descriptor
561  Optional<std::string&> reasonIfUnsupported) const
562 {
563  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
564 }
565 
567  const TensorInfo&, // output
568  const SoftmaxDescriptor&, // descriptor
569  Optional<std::string&> reasonIfUnsupported) const
570 {
571  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
572 }
573 /**/
575  const TensorInfo&, // output
576  const SpaceToBatchNdDescriptor&, // descriptor
577  Optional<std::string&> reasonIfUnsupported) const
578 {
579  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
580 }
581 
583  const TensorInfo&, // output
584  const SpaceToDepthDescriptor&, // descriptor
585  Optional<std::string&> reasonIfUnsupported) const
586 {
587  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
588 }
589 
591  const std::vector<std::reference_wrapper<TensorInfo>>&, // outputs
592  const ViewsDescriptor&, // descriptor
593  Optional<std::string&> reasonIfUnsupported) const
594 {
595  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
596 }
597 
598 bool LayerSupportBase::IsStackSupported(const std::vector<const TensorInfo*>&, // inputs
599  const TensorInfo&, // output
600  const StackDescriptor&, // descriptor
601  Optional<std::string&> reasonIfUnsupported) const
602 {
603  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
604 }
605 
606 bool LayerSupportBase::IsStandInSupported(const std::vector<const TensorInfo*>&, // inputs
607  const std::vector<const TensorInfo*>&, // outputs
608  const StandInDescriptor&, // descriptor
609  Optional<std::string&> reasonIfUnsupported) const
610 {
612  {
613  std::stringstream message;
614  message << "StandIn layer is not executable via backends";
615 
616  reasonIfUnsupported.value() = message.str();
617  }
618 
619  return false;
620 }
621 
623  const TensorInfo&, // output
624  const StridedSliceDescriptor&, // descriptor
625  Optional<std::string&> reasonIfUnsupported) const
626 {
627  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
628 }
629 
631  const TensorInfo&, // input1
632  const TensorInfo&, // output
633  Optional<std::string&> reasonIfUnsupported) const
634 {
635  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
636 }
637 
639  const TensorInfo&, // input1
640  const TensorInfo&, // output0
641  const TensorInfo&, // output1
642  Optional<std::string&> reasonIfUnsupported) const
643 {
644  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
645 }
646 
648  const TensorInfo&, // output
649  const TransposeConvolution2dDescriptor&, // descriptor
650  const TensorInfo&, // weights
651  const Optional<TensorInfo>&, // biases
652  Optional<std::string&> reasonIfUnsupported) const
653 {
654  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
655 }
656 
658  const TensorInfo&, // output
659  const TransposeDescriptor&, // descriptor
660  Optional<std::string&> reasonIfUnsupported) const
661 {
662  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
663 }
664 
666  const TensorInfo&, // outputStateIn
667  const TensorInfo&, // cellStateIn
668  const TensorInfo&, // outputStateOut
669  const TensorInfo&, // cellStateOut
670  const TensorInfo&, // output
671  const LstmDescriptor&, // descriptor
672  const LstmInputParamsInfo&, // paramsInfo
673  Optional<std::string&> reasonIfUnsupported) const
674 {
675  return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
676 }
677 
678 } // namespace armnn
armnn::LayerSupportBase::IsMemImportSupported
bool IsMemImportSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:397
armnn::LayerSupportBase::IsSplitterSupported
bool IsSplitterSupported(const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:590
armnn::LayerSupportBase::IsConstantSupported
bool IsConstantSupported(const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:161
armnn::LayerType::MemCopy
@ MemCopy
armnn::LayerSupportBase::IsOutputSupported
bool IsOutputSupported(const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:436
armnn::LstmInputParamsInfo
Definition: LstmParams.hpp:63
armnn::GatherDescriptor
A GatherDescriptor for the GatherLayer.
Definition: Descriptors.hpp:932
armnn::NormalizationDescriptor
A NormalizationDescriptor for the NormalizationLayer.
Definition: Descriptors.hpp:757
armnn::TransposeDescriptor
A TransposeDescriptor for the TransposeLayer.
Definition: Descriptors.hpp:1457
armnn::LayerSupportBase::IsDepthwiseConvolutionSupported
bool IsDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:216
armnn::LayerSupportBase::IsTransposeConvolution2dSupported
bool IsTransposeConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:647
armnn::LayerSupportBase::IsFakeQuantizationSupported
bool IsFakeQuantizationSupported(const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:272
armnn::ElementwiseUnaryDescriptor
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:129
armnn::PadDescriptor
A PadDescriptor for the PadLayer.
Definition: Descriptors.hpp:1163
armnn::SoftmaxDescriptor
A SoftmaxDescriptor for the SoftmaxLayer.
Definition: Descriptors.hpp:177
armnn::LayerSupportBase::IsStridedSliceSupported
bool IsStridedSliceSupported(const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:622
armnn::LayerSupportBase::IsFloorSupported
bool IsFloorSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:287
armnn::LayerSupportBase::IsPooling3dSupported
bool IsPooling3dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling3dDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:466
armnn::StackDescriptor
A StackDescriptor for the StackLayer.
Definition: Descriptors.hpp:1218
armnn::SliceDescriptor
A SliceDescriptor for the SliceLayer.
Definition: Descriptors.hpp:1195
armnn::LayerSupportBase::IsInstanceNormalizationSupported
bool IsInstanceNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:319
armnn::ActivationDescriptor
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:36
armnn::ILayerSupport::reasonIfUnsupported
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
Definition: ILayerSupport.hpp:43
armnn::LstmDescriptor
An LstmDescriptor for the LstmLayer.
Definition: Descriptors.hpp:1069
armnn::FullyConnectedDescriptor
A FullyConnectedDescriptor for the FullyConnectedLayer.
Definition: Descriptors.hpp:495
armnn::LayerSupportBase::IsActivationSupported
bool IsActivationSupported(const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:85
armnn::LayerSupportBase::IsAdditionSupported
bool IsAdditionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:93
armnn::ResizeDescriptor
A ResizeDescriptor for the ResizeLayer.
Definition: Descriptors.hpp:952
armnn::LayerSupportBase::IsDivisionSupported
bool IsDivisionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:256
armnn::StridedSliceDescriptor
A StridedSliceDescriptor for the StridedSliceLayer.
Definition: Descriptors.hpp:1270
armnn::LayerSupportBase::IsMaximumSupported
bool IsMaximumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:374
armnn::Pooling3dDescriptor
A Pooling3dDescriptor for the Pooling3dLayer.
Definition: Descriptors.hpp:419
armnn::ReduceDescriptor
A ReduceDescriptor for the REDUCE operators.
Definition: Descriptors.hpp:1505
PolymorphicDowncast.hpp
armnn::ComparisonDescriptor
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:89
armnn::StandInDescriptor
A StandInDescriptor for the StandIn layer.
Definition: Descriptors.hpp:1248
armnn::LayerSupportBase::IsCastSupported
bool IsCastSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:129
armnn::LayerSupportBase::IsMinimumSupported
bool IsMinimumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:412
armnn::LayerSupportBase::IsMergeSupported
bool IsMergeSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:404
armnn::LayerSupportBase::IsRankSupported
bool IsRankSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported) const override
Definition: LayerSupportBase.cpp:520
armnn::LayerSupportBase::IsShapeSupported
bool IsShapeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:551
armnn::ViewsDescriptor
A ViewsDescriptor for the SplitterLayer.
Definition: Descriptors.hpp:244
armnn::LayerSupportBase::IsQLstmSupported
bool IsQLstmSupported(const TensorInfo &input, const TensorInfo &previousOutputIn, const TensorInfo &previousCellStateIn, const TensorInfo &outputStateOut, const TensorInfo &cellStateOut, const TensorInfo &output, const QLstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:496
armnn::LayerSupportBase::IsQuantizedLstmSupported
bool IsQuantizedLstmSupported(const TensorInfo &input, const TensorInfo &previousCellStateIn, const TensorInfo &previousOutputIn, const TensorInfo &cellStateOut, const TensorInfo &output, const QuantizedLstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:509
armnn::PreCompiledDescriptor
A PreCompiledDescriptor for the PreCompiledLayer.
Definition: Descriptors.hpp:1334
armnn::LayerSupportBase::IsSwitchSupported
bool IsSwitchSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:638
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition: 01_00_quick_start.dox:6
armnn::LayerSupportBase::IsChannelShuffleSupported
bool IsChannelShuffleSupported(const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:136
armnn::BatchToSpaceNdDescriptor
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
Definition: Descriptors.hpp:863
armnn::OptionalReferenceSwitch::value
const T & value() const
Definition: Optional.hpp:146
armnn::LayerSupportBase::IsGatherSupported
bool IsGatherSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:304
armnn::SpaceToDepthDescriptor
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
Definition: Descriptors.hpp:1042
armnn::LayerSupportBase::IsPermuteSupported
bool IsPermuteSupported(const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:450
armnn::LayerSupportBase::IsArgMinMaxSupported
bool IsArgMinMaxSupported(const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:101
armnn::LayerSupportBase::IsMeanSupported
bool IsMeanSupported(const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:382
armnn::LayerSupportBase::IsDebugSupported
bool IsDebugSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:201
armnn::DetectionPostProcessDescriptor
Definition: Descriptors.hpp:701
armnn::ILayerSupport::descriptor
const TensorInfo const ActivationDescriptor & descriptor
Definition: ILayerSupport.hpp:42
armnn::LayerSupportBase::IsDetectionPostProcessSupported
bool IsDetectionPostProcessSupported(const TensorInfo &boxEncodings, const TensorInfo &scores, const TensorInfo &anchors, const TensorInfo &detectionBoxes, const TensorInfo &detectionClasses, const TensorInfo &detectionScores, const TensorInfo &numDetections, const DetectionPostProcessDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:233
armnn::FillDescriptor
A FillDescriptor for the FillLayer.
Definition: Descriptors.hpp:913
armnn::LayerType
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below.
Definition: Types.hpp:479
armnn::LayerSupportBase::IsPadSupported
bool IsPadSupported(const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:442
armnn::LayerSupportBase::IsReduceSupported
bool IsReduceSupported(const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:527
armnn::LayerSupportBase::IsBatchNormalizationSupported
bool IsBatchNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &mean, const TensorInfo &var, const TensorInfo &beta, const TensorInfo &gamma, const BatchNormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:109
armnn::LayerSupportBase::IsConvertFp16ToFp32Supported
bool IsConvertFp16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:167
armnn::DepthwiseConvolution2dDescriptor
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
Definition: Descriptors.hpp:647
armnn::MeanDescriptor
A MeanDescriptor for the MeanLayer.
Definition: Descriptors.hpp:1139
armnn::LayerSupportBase::IsSpaceToBatchNdSupported
bool IsSpaceToBatchNdSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:574
armnn::LayerSupportBase::IsReshapeSupported
bool IsReshapeSupported(const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:535
armnn::L2NormalizationDescriptor
A L2NormalizationDescriptor for the L2NormalizationLayer.
Definition: Descriptors.hpp:797
armnn::LayerSupportBase::IsConvertFp32ToFp16Supported
bool IsConvertFp32ToFp16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:174
armnn::ChannelShuffleDescriptor
A ChannelShuffleDescriptor for the ChannelShuffle operator.
Definition: Descriptors.hpp:1529
armnn::Convolution3dDescriptor
A Convolution3dDescriptor for the Convolution3dLayer.
Definition: Descriptors.hpp:576
armnn::LayerSupportBase::IsInputSupported
bool IsInputSupported(const TensorInfo &input, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:313
armnn::LayerSupportBase::IsLayerSupported
bool IsLayerSupported(const LayerType &type, const std::vector< TensorInfo > &infos, const BaseDescriptor &descriptor, const Optional< LstmInputParamsInfo > &lstmParamsInfo=EmptyOptional(), const Optional< QuantizedLstmInputParamsInfo > &quantizedLstmParamsInfo=EmptyOptional(), Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:40
armnn::LayerSupportBase::IsFillSupported
virtual bool IsFillSupported(const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:279
armnn::LayerSupportBase::IsStandInSupported
bool IsStandInSupported(const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const StandInDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:606
armnn::TensorInfo
Definition: Tensor.hpp:152
armnn::LayerSupportBase::IsQuantizeSupported
bool IsQuantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:489
armnn::Convolution2dDescriptor
A Convolution2dDescriptor for the Convolution2dLayer.
Definition: Descriptors.hpp:522
armnn::LayerSupportBase::IsConcatSupported
bool IsConcatSupported(const std::vector< const TensorInfo * > inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:153
armnn::LayerSupportBase::IsDepthToSpaceSupported
bool IsDepthToSpaceSupported(const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:208
armnn::BatchNormalizationDescriptor
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
Definition: Descriptors.hpp:816
armnn::QLstmDescriptor
A QLstmDescriptor for the QLstmLayer.
Definition: Descriptors.hpp:1347
armnn::LayerSupportBase::IsTransposeSupported
bool IsTransposeSupported(const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:657
armnn::LayerSupportBase::IsFullyConnectedSupported
bool IsFullyConnectedSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:294
armnn::LayerSupportBase::IsL2NormalizationSupported
bool IsL2NormalizationSupported(const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:327
armnn::LayerSupportBase::IsElementwiseUnarySupported
bool IsElementwiseUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:264
armnn::LayerType::StandIn
@ StandIn
armnn::LayerSupportBase::IsPreluSupported
bool IsPreluSupported(const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported) const override
Definition: LayerSupportBase.cpp:481
armnn::LayerSupportBase::IsLstmSupported
bool IsLstmSupported(const TensorInfo &input, const TensorInfo &outputStateIn, const TensorInfo &cellStateIn, const TensorInfo &scratchBuffer, const TensorInfo &outputStateOut, const TensorInfo &cellStateOut, const TensorInfo &output, const LstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:360
armnn::LayerSupportBase::IsSoftmaxSupported
bool IsSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:566
armnn::LayerSupportBase::IsSubtractionSupported
bool IsSubtractionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:630
armnn::LayerSupportBase::IsComparisonSupported
bool IsComparisonSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:144
armnn::LayerSupportBase::IsStackSupported
bool IsStackSupported(const std::vector< const TensorInfo * > &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:598
armnn::LayerSupportBase::IsLogicalUnarySupported
bool IsLogicalUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:344
armnn::LayerSupportBase::IsDilatedDepthwiseConvolutionSupported
bool IsDilatedDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:246
armnn::BaseDescriptor
Base class for all descriptors.
Definition: Descriptors.hpp:22
armnn::OriginsDescriptor
An OriginsDescriptor for the ConcatLayer.
Definition: Descriptors.hpp:201
armnn::ReshapeDescriptor
A ReshapeDescriptor for the ReshapeLayer.
Definition: Descriptors.hpp:990
armnn::PermuteDescriptor
A PermuteDescriptor for the PermuteLayer.
Definition: Descriptors.hpp:149
armnn::TransposeConvolution2dDescriptor
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
Definition: Descriptors.hpp:1407
armnn::LayerSupportBase::IsConvolution2dSupported
bool IsConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:181
armnn::Pooling2dDescriptor
A Pooling2dDescriptor for the Pooling2dLayer.
Definition: Descriptors.hpp:359
armnn::LayerSupportBase::IsPreCompiledSupported
bool IsPreCompiledSupported(const TensorInfo &input, const PreCompiledDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:474
armnn::LogicalBinaryDescriptor
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
Definition: Descriptors.hpp:1485
Exceptions.hpp
armnn::LayerSupportBase::IsDequantizeSupported
bool IsDequantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:226
armnn::Optional< std::string & >
armnn::LayerSupportBase::IsSliceSupported
bool IsSliceSupported(const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:558
armnn::LayerSupportBase::IsPooling2dSupported
bool IsPooling2dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:458
armnn::LayerSupportBase::IsNormalizationSupported
bool IsNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:428
armnn::ArgMinMaxDescriptor
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:67
armnn::FakeQuantizationDescriptor
A FakeQuantizationDescriptor for the FakeQuantizationLayer.
Definition: Descriptors.hpp:894
armnn::LayerSupportBase::IsLogicalBinarySupported
bool IsLogicalBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:335
armnn::LayerSupportBase::IsConvolution3dSupported
bool IsConvolution3dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:191
IgnoreUnused.hpp
armnn::LayerSupportBase::IsMultiplicationSupported
bool IsMultiplicationSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:420
armnn::QuantizedLstmInputParamsInfo
Definition: QuantizedLstmParams.hpp:119
armnn::LayerSupportBase::IsUnidirectionalSequenceLstmSupported
bool IsUnidirectionalSequenceLstmSupported(const TensorInfo &input, const TensorInfo &outputStateIn, const TensorInfo &cellStateIn, const TensorInfo &outputStateOut, const TensorInfo &cellStateOut, const TensorInfo &output, const LstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:665
armnn::LayerSupportBase::IsBatchToSpaceNdSupported
bool IsBatchToSpaceNdSupported(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:121
Types.hpp
armnn::InvalidArgumentException
Definition: Exceptions.hpp:80
armnn::LayerType::MemImport
@ MemImport
armnn::LayerSupportBase::IsSpaceToDepthSupported
bool IsSpaceToDepthSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:582
armnn::InstanceNormalizationDescriptor
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
Definition: Descriptors.hpp:835
armnn::LayerSupportBase::IsMemCopySupported
bool IsMemCopySupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:390
armnn::LayerSupportBase::IsResizeSupported
bool IsResizeSupported(const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:543
armnn::LayerSupportBase::IsLogSoftmaxSupported
bool IsLogSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional()) const override
Definition: LayerSupportBase.cpp:352
LayerSupportBase.hpp
Deprecated.hpp
armnn::SpaceToBatchNdDescriptor
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
Definition: Descriptors.hpp:1010