24.02
|
Go to the documentation of this file.
32 auto factoryFunc = backendRegistry.
GetFactory(backend);
33 auto backendObject = factoryFunc();
42 const auto& capability = capabilities.
GetOption(i);
43 if (backendCapabilityName == capability.GetName())
55 if (backendRegistry.IsBackendRegistered(backend))
57 auto factoryFunc = backendRegistry.GetFactory(backend);
58 auto backendObject = factoryFunc();
59 auto capabilities = backendObject->GetCapabilities();
89 const auto& backendCapability = capabilities.
GetOption(i);
90 if (capability.
GetName() == backendCapability.GetName())
92 if (capability.
GetValue().
IsBool() && backendCapability.GetValue().IsBool())
94 return capability.
GetValue().
AsBool() == backendCapability.GetValue().AsBool();
96 else if (capability.
GetValue().
IsFloat() && backendCapability.GetValue().IsFloat())
98 return capability.
GetValue().
AsFloat() == backendCapability.GetValue().AsFloat();
100 else if (capability.
GetValue().
IsInt() && backendCapability.GetValue().IsInt())
102 return capability.
GetValue().
AsInt() == backendCapability.GetValue().AsInt();
104 else if (capability.
GetValue().
IsString() && backendCapability.GetValue().IsString())
106 return capability.
GetValue().
AsString() == backendCapability.GetValue().AsString();
120 if (backendRegistry.IsBackendRegistered(backend))
122 auto factoryFunc = backendRegistry.GetFactory(backend);
123 auto backendObject = factoryFunc();
124 auto capabilities = backendObject->GetCapabilities();
133 if (backendRegistry.IsBackendRegistered(backend))
135 auto factoryFunc = backendRegistry.GetFactory(backend);
136 auto backendObject = factoryFunc();
137 return backendObject->GetNumberOfCacheFiles();
166 reasonIfUnsupported);
181 reasonIfUnsupported);
196 reasonIfUnsupported);
212 reasonIfUnsupported);
224 TensorInfos infos{input, output, mean, var, beta, gamma};
231 reasonIfUnsupported);
246 reasonIfUnsupported);
262 reasonIfUnsupported.
value());
276 reasonIfUnsupported);
291 reasonIfUnsupported);
307 reasonIfUnsupported);
318 infos.push_back(*inputInfo);
320 infos.push_back(output);
327 reasonIfUnsupported);
340 reasonIfUnsupported);
354 reasonIfUnsupported);
368 reasonIfUnsupported);
379 TensorInfos infos{input, output, weights, biasesVal};
385 if (!capability.
has_value() || capability.
value().GetValue().AsBool() ==
false)
391 reasonIfUnsupported.
value() =
392 "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
393 "Convolution2d weights are set as dynamic (non constant). ";
401 reasonIfUnsupported.
value() =
402 "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
403 "Convolution2d biases are set as dynamic (non constant). ";
410 ARMNN_LOG(
warning) <<
"The backend makes use of a deprecated interface to read constant tensors. "
411 "If you are a backend developer please find more information in our "
412 "doxygen documentation on github https://github.com/ARM-software/armnn "
413 "under the keyword 'ConstTensorsAsInputs'.";
422 reasonIfUnsupported);
433 TensorInfos infos{input, output, weights, biasesVal};
440 reasonIfUnsupported);
454 reasonIfUnsupported);
469 reasonIfUnsupported);
481 TensorInfos infos{input, output, weights, biasesVal};
487 if (!capability.
has_value() || capability.
value().GetValue().AsBool() ==
false)
493 reasonIfUnsupported.
value() =
494 "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
495 "DepthwiseConvolution2d weights are set as dynamic (non constant). ";
503 reasonIfUnsupported.
value() =
504 "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
505 "DepthwiseConvolution2d biases are set as dynamic (non constant). ";
511 ARMNN_LOG(
warning) <<
"The backend makes use of a deprecated interface to read constant tensors. "
512 "If you are a backend developer please find more information in our "
513 "doxygen documentation on github https://github.com/ARM-software/armnn "
514 "under the keyword 'ConstTensorsAsInputs'.";
523 reasonIfUnsupported);
537 reasonIfUnsupported);
550 TensorInfos infos{boxEncodings, scores, anchors, detectionBoxes, detectionClasses, detectionScores, numDetections};
557 reasonIfUnsupported);
569 TensorInfos infos{input, output, weights, biasesVal};
575 if (!capability.
has_value() || capability.
value().GetValue().AsBool() ==
false)
581 reasonIfUnsupported.
value() =
582 "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
583 "DilatedDepthwiseConvolution2d weights are set as dynamic (non constant). ";
591 reasonIfUnsupported.
value() =
592 "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
593 "DilatedDepthwiseConvolution2d biases are set as dynamic (non constant). ";
599 ARMNN_LOG(
warning) <<
"The backend makes use of a deprecated interface to read constant tensors. "
600 "If you are a backend developer please find more information in our "
601 "doxygen documentation on github https://github.com/ARM-software/armnn "
602 "under the keyword 'ConstTensorsAsInputs'.";
611 reasonIfUnsupported);
626 reasonIfUnsupported);
642 reasonIfUnsupported);
657 reasonIfUnsupported);
671 reasonIfUnsupported);
686 reasonIfUnsupported);
700 reasonIfUnsupported);
716 if (!capability.
has_value() || capability.
value().GetValue().AsBool() ==
false)
722 reasonIfUnsupported.
value() =
723 "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
724 "FullyConnected descriptor indicates that weights are dynamic (non constant). ";
732 reasonIfUnsupported.
value() =
733 "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
734 "FullyConnected weights are set as dynamic (non constant). ";
743 reasonIfUnsupported.
value() =
744 "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
745 "FullyConnected biases are set as dynamic (non constant). ";
752 ARMNN_LOG(
warning) <<
"The backend makes use of a deprecated interface to read constant tensors. "
753 "If you are a backend developer please find more information in our "
754 "doxygen documentation on github https://github.com/ARM-software/armnn "
755 "under the keyword 'ConstTensorsAsInputs'.";
764 reasonIfUnsupported);
768 const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
773 infos.reserve(inputs.size() + outputs.size());
776 infos.emplace_back(inInfo);
780 infos.emplace_back(outInfo);
788 reasonIfUnsupported);
804 reasonIfUnsupported);
819 reasonIfUnsupported);
832 reasonIfUnsupported);
848 reasonIfUnsupported);
863 reasonIfUnsupported);
879 reasonIfUnsupported);
894 reasonIfUnsupported);
909 reasonIfUnsupported);
923 TensorInfos infos{input, outputStateIn, cellStateIn, scratchBuffer, outputStateOut, cellStateOut, output};
930 reasonIfUnsupported);
945 reasonIfUnsupported);
960 reasonIfUnsupported);
974 reasonIfUnsupported);
988 reasonIfUnsupported);
1003 reasonIfUnsupported);
1018 reasonIfUnsupported);
1033 reasonIfUnsupported);
1048 reasonIfUnsupported);
1061 reasonIfUnsupported);
1076 reasonIfUnsupported);
1091 reasonIfUnsupported);
1106 reasonIfUnsupported);
1121 reasonIfUnsupported);
1135 reasonIfUnsupported);
1150 reasonIfUnsupported);
1164 reasonIfUnsupported);
1177 TensorInfos infos{input, previousOutputIn, previousCellStateIn, outputStateOut, cellStateOut, output};
1184 reasonIfUnsupported);
1195 TensorInfos infos{input, previousCellStateIn, previousOutputIn, cellStateOut, output};
1202 reasonIfUnsupported);
1216 reasonIfUnsupported);
1231 reasonIfUnsupported);
1246 reasonIfUnsupported);
1261 reasonIfUnsupported);
1276 reasonIfUnsupported);
1290 reasonIfUnsupported);
1305 reasonIfUnsupported);
1320 reasonIfUnsupported);
1335 reasonIfUnsupported);
1350 reasonIfUnsupported);
1354 const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
1361 infos.push_back(outInfo);
1369 reasonIfUnsupported);
1380 infos.push_back(*inputInfo);
1382 infos.push_back(output);
1389 reasonIfUnsupported);
1393 const std::vector<const TensorInfo*>& outputs,
1400 infos.push_back(*inputInfo);
1404 infos.push_back(*outputInfo);
1412 reasonIfUnsupported);
1428 reasonIfUnsupported);
1443 reasonIfUnsupported);
1452 TensorInfos infos{input0, input1, output0, output1};
1459 reasonIfUnsupported);
1474 reasonIfUnsupported);
1486 TensorInfos infos{input, output, weights, biasesVal};
1493 reasonIfUnsupported);
1508 reasonIfUnsupported);
1521 TensorInfos infos{input, outputStateIn, cellStateIn, outputStateOut, cellStateOut, output};
1528 reasonIfUnsupported);
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
bool m_ConstantWeights
Enable/disable constant weights and biases.
A ViewsDescriptor for the SplitterLayer.
An ActivationDescriptor for the ActivationLayer.
bool IsSpaceToDepthSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A FullyConnectedDescriptor for the FullyConnectedLayer.
bool IsStackSupported(const std::vector< const TensorInfo * > &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A QLstmDescriptor for the QLstmLayer.
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())
bool IsOutputSupported(const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
std::string GetName() const
bool IsMemImportSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool m_BiasEnabled
Enable/disable bias.
bool IsMultiplicationSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A Pooling3dDescriptor for the Pooling3dLayer.
bool IsTransposeConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsArgMinMaxSupported(const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A ResizeDescriptor for the ResizeLayer.
An ArgMinMaxDescriptor for ArgMinMaxLayer.
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
bool IsMeanSupported(const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A GatherDescriptor for the GatherLayer.
bool IsShapeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsDepthToSpaceSupported(const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A L2NormalizationDescriptor for the L2NormalizationLayer.
bool IsMinimumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsFullyConnectedSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A NormalizationDescriptor for the NormalizationLayer.
bool IsPermuteSupported(const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A ChannelShuffleDescriptor for the ChannelShuffle operator.
bool IsNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsReverseV2Supported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsLogicalBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsStridedSliceSupported(const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsGatherNdSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsElementwiseBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ElementwiseBinaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsPooling2dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A StackDescriptor for the StackLayer.
bool IsSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsGatherSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
LayerSupportHandle GetILayerSupportByBackendId(const armnn::BackendId &backend)
Convenience function to retrieve the ILayerSupportHandle for a backend.
bool IsUnsignedInt() const
bool IsInputSupported(const TensorInfo &input, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsLogSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
std::vector< TensorInfo > TensorInfos
bool IsL2NormalizationSupported(const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsDebugSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsBatchToSpaceNdSupported(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
#define ARMNN_LOG(severity)
A ElementwiseBinaryDescriptor for the ElementwiseBinaryLayer.
bool IsComparisonSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsPadSupported(const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A FusedDescriptor for the FusedLayer.
bool IsFusedSupported(const std::vector< std::reference_wrapper< TensorInfo >> &inputs, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const FusedDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsSplitterSupported(const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool m_BiasEnabled
Enable/disable bias.
bool IsSliceSupported(const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A PadDescriptor for the PadLayer.
A TransposeDescriptor for the TransposeLayer.
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
A SliceDescriptor for the SliceLayer.
bool IsBatchMatMulSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const BatchMatMulDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
BackendRegistry & BackendRegistryInstance()
bool m_BiasEnabled
Enable/disable bias.
A ReshapeDescriptor for the ReshapeLayer.
bool IsRankSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsTransposeSupported(const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsMemCopySupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsTileSupported(const TensorInfo &input, const TensorInfo &output, const TileDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
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 ¶msInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool AsBool() const
Value getters.
A PermuteDescriptor for the PermuteLayer.
A BatchMatMulDescriptor for the BatchMatMul operator.
bool IsCastSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
A Convolution3dDescriptor for the Convolution3dLayer.
bool IsBroadcastToSupported(const TensorInfo &input, const TensorInfo &output, const BroadcastToDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported)
Base class for all descriptors.
bool IsBackendRegistered(const BackendId &id) const
bool IsFloorSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsDivisionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsPooling3dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling3dDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsMergeSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool HasCapability(const std::string &name, const BackendCapabilities &capabilities)
Convenience function to check if a capability exists in a BackendCapabilites struct.
unsigned int AsUnsignedInt() const
bool IsConcatSupported(const std::vector< const TensorInfo * > inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
FactoryFunction GetFactory(const BackendId &id) const
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
bool IsLogicalUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A Convolution2dDescriptor for the Convolution2dLayer.
bool IsFakeQuantizationSupported(const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsConvolution3dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A ComparisonDescriptor for the ComparisonLayer.
std::string AsString() const
A FillDescriptor for the FillLayer.
bool IsDilatedDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
const BackendOption & GetOption(size_t idx) const
A StandInDescriptor for the StandIn layer.
bool IsInstanceNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Struct for the users to pass backend specific options.
bool IsMaximumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
An LstmDescriptor for the LstmLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
bool IsBackendRegistered() const
bool IsPreCompiledSupported(const TensorInfo &input, const PreCompiledDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
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())
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
bool IsBool() const
Type getters.
bool IsChannelShuffleSupported(const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsPreluSupported(const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
@ UnidirectionalSequenceLstm
size_t GetOptionCount() const noexcept
bool IsDequantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
An OriginsDescriptor for the ConcatLayer.
unsigned int GetNumberOfCacheFiles(const armnn::BackendId &backend)
Returns the number of cached files if backend supports caching.
Copyright (c) 2021 ARM Limited and Contributors.
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
bool IsSpaceToBatchNdSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
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 ¶msInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsConvertFp16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsReshapeSupported(const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsConvertFp32ToFp16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsSubtractionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A PreCompiledDescriptor for the PreCompiledLayer.
bool IsQuantizedLstmSupported(const TensorInfo &input, const TensorInfo &previousCellStateIn, const TensorInfo &previousOutputIn, const TensorInfo &cellStateOut, const TensorInfo &output, const QuantizedLstmInputParamsInfo ¶msInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A Pooling2dDescriptor for the Pooling2dLayer.
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
bool IsConstantSupported(const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
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 ¶msInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A ReduceDescriptor for the REDUCE operators.
bool IsSwitchSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A FakeQuantizationDescriptor for the FakeQuantizationLayer.
bool IsReduceSupported(const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsStandInSupported(const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const StandInDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A MeanDescriptor for the MeanLayer.
bool IsQuantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsAdditionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A SoftmaxDescriptor for the SoftmaxLayer.
bool IsElementwiseUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool IsResizeSupported(const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
bool has_value() const noexcept
bool IsActivationSupported(const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Optional< const BackendOptions::BackendOption > GetCapability(const std::string &backendCapabilityName, const BackendCapabilities &capabilities)
Returns a BackendCapability if the backend lists the capability The BackendCapability must then be in...
bool IsFillSupported(const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
bool HasMatchingCapability(const BackendOptions::BackendOption &capability, const BackendCapabilities &capabilities)
Convenience function to check if a given capability matches a capability in a BackendCapabilities str...