ArmNN
NotReleased
|
Visitor class to establish min/max ranges based on the type of the layer. More...
#include <DynamicQuantizationVisitor.hpp>
Public Member Functions | |
DynamicQuantizationVisitor (RangeTracker &rangeTracker, Graph &graph) | |
~DynamicQuantizationVisitor ()=default | |
void | VisitAdditionLayer (const IConnectableLayer *layer, const char *name=nullptr) override |
Functions to set the Range on a per-layer-type basis. More... | |
void | VisitBatchNormalizationLayer (const IConnectableLayer *layer, const BatchNormalizationDescriptor &desc, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr) override |
void | VisitConvolution2dLayer (const IConnectableLayer *layer, const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr) override |
void | VisitDepthwiseConvolution2dLayer (const IConnectableLayer *layer, const DepthwiseConvolution2dDescriptor &desc, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr) override |
void | VisitActivationLayer (const IConnectableLayer *layer, const ActivationDescriptor &activationDescriptor, const char *name=nullptr) override |
void | VisitFullyConnectedLayer (const IConnectableLayer *layer, const FullyConnectedDescriptor &desc, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name) override |
void | VisitPermuteLayer (const IConnectableLayer *layer, const PermuteDescriptor &permuteDescriptor, const char *name) override |
void | VisitSpaceToBatchNdLayer (const IConnectableLayer *layer, const SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr) override |
void | VisitPooling2dLayer (const IConnectableLayer *layer, const Pooling2dDescriptor &pooling2dDescriptor, const char *name) override |
void | VisitSoftmaxLayer (const IConnectableLayer *layer, const SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr) override |
void | VisitConcatLayer (const IConnectableLayer *layer, const ConcatDescriptor &originsDescriptor, const char *name=nullptr) override |
void | VisitConstantLayer (const IConnectableLayer *layer, const ConstTensor &input, const char *name=nullptr) override |
void | VisitReshapeLayer (const IConnectableLayer *layer, const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr) override |
void | VisitSplitterLayer (const IConnectableLayer *layer, const SplitterDescriptor &splitterDescriptor, const char *name=nullptr) override |
void | VisitResizeBilinearLayer (const IConnectableLayer *layer, const ResizeBilinearDescriptor &resizeDesc, const char *name=nullptr) override |
void | VisitStridedSliceLayer (const IConnectableLayer *layer, const StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr) override |
void | VisitBatchToSpaceNdLayer (const IConnectableLayer *layer, const BatchToSpaceNdDescriptor &batchToSpaceNdDescriptor, const char *name=nullptr) override |
void | VisitInputLayer (const IConnectableLayer *layer, LayerBindingId id, const char *name=nullptr) override |
void | VisitOutputLayer (const IConnectableLayer *layer, LayerBindingId id, const char *name=nullptr) override |
void | FinishVisit () override |
void | VisitNonCalibratedLayers () |
const std::vector< armnn::LayerBindingId > & | GetOutputLayers () |
Public Member Functions inherited from LayerVisitorBase< VisitorNoThrowPolicy > | |
void | VisitAbsLayer (const IConnectableLayer *, const char *) override |
void | VisitActivationLayer (const IConnectableLayer *, const ActivationDescriptor &, const char *) override |
void | VisitAdditionLayer (const IConnectableLayer *, const char *) override |
void | VisitArgMinMaxLayer (const IConnectableLayer *, const ArgMinMaxDescriptor &, const char *) override |
void | VisitBatchNormalizationLayer (const IConnectableLayer *, const BatchNormalizationDescriptor &, const ConstTensor &, const ConstTensor &, const ConstTensor &, const ConstTensor &, const char *) override |
void | VisitBatchToSpaceNdLayer (const IConnectableLayer *, const BatchToSpaceNdDescriptor &, const char *) override |
void | VisitComparisonLayer (const IConnectableLayer *, const ComparisonDescriptor &, const char *) override |
void | VisitConcatLayer (const IConnectableLayer *, const ConcatDescriptor &, const char *) override |
void | VisitConstantLayer (const IConnectableLayer *, const ConstTensor &, const char *) override |
void | VisitConvolution2dLayer (const IConnectableLayer *, const Convolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override |
void | VisitDepthToSpaceLayer (const IConnectableLayer *, const DepthToSpaceDescriptor &, const char *) override |
void | VisitDepthwiseConvolution2dLayer (const IConnectableLayer *, const DepthwiseConvolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override |
void | VisitDequantizeLayer (const IConnectableLayer *, const char *) override |
void | VisitDetectionPostProcessLayer (const IConnectableLayer *, const DetectionPostProcessDescriptor &, const ConstTensor &, const char *) override |
void | VisitDivisionLayer (const IConnectableLayer *, const char *) override |
void | VisitElementwiseUnaryLayer (const IConnectableLayer *, const ElementwiseUnaryDescriptor &, const char *) override |
void | VisitEqualLayer (const IConnectableLayer *, const char *) override |
void | VisitFloorLayer (const IConnectableLayer *, const char *) override |
void | VisitFullyConnectedLayer (const IConnectableLayer *, const FullyConnectedDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override |
void | VisitGatherLayer (const IConnectableLayer *, const char *) override |
void | VisitGreaterLayer (const IConnectableLayer *, const char *) override |
void | VisitInputLayer (const IConnectableLayer *, LayerBindingId, const char *) override |
void | VisitInstanceNormalizationLayer (const IConnectableLayer *, const InstanceNormalizationDescriptor &, const char *) override |
void | VisitL2NormalizationLayer (const IConnectableLayer *, const L2NormalizationDescriptor &, const char *) override |
void | VisitLogSoftmaxLayer (const IConnectableLayer *, const LogSoftmaxDescriptor &, const char *) override |
void | VisitLstmLayer (const IConnectableLayer *, const LstmDescriptor &, const LstmInputParams &, const char *) override |
void | VisitMaximumLayer (const IConnectableLayer *, const char *) override |
void | VisitMeanLayer (const IConnectableLayer *, const MeanDescriptor &, const char *) override |
void | VisitMergeLayer (const IConnectableLayer *, const char *) override |
void | VisitMergerLayer (const IConnectableLayer *, const MergerDescriptor &, const char *) override |
void | VisitMinimumLayer (const IConnectableLayer *, const char *) override |
void | VisitMultiplicationLayer (const IConnectableLayer *, const char *) override |
void | VisitNormalizationLayer (const IConnectableLayer *, const NormalizationDescriptor &, const char *) override |
void | VisitOutputLayer (const IConnectableLayer *, LayerBindingId, const char *) override |
void | VisitPadLayer (const IConnectableLayer *, const PadDescriptor &, const char *) override |
void | VisitPermuteLayer (const IConnectableLayer *, const PermuteDescriptor &, const char *) override |
void | VisitPooling2dLayer (const IConnectableLayer *, const Pooling2dDescriptor &, const char *) override |
void | VisitPreluLayer (const IConnectableLayer *, const char *) override |
void | VisitQuantizeLayer (const IConnectableLayer *, const char *) override |
void | VisitQuantizedLstmLayer (const IConnectableLayer *, const QuantizedLstmInputParams &, const char *) override |
void | VisitReshapeLayer (const IConnectableLayer *, const ReshapeDescriptor &, const char *) override |
void | VisitResizeBilinearLayer (const IConnectableLayer *, const ResizeBilinearDescriptor &, const char *) override |
void | VisitResizeLayer (const IConnectableLayer *, const ResizeDescriptor &, const char *) override |
void | VisitRsqrtLayer (const IConnectableLayer *, const char *) override |
void | VisitSliceLayer (const IConnectableLayer *, const SliceDescriptor &, const char *) override |
void | VisitSoftmaxLayer (const IConnectableLayer *, const SoftmaxDescriptor &, const char *) override |
void | VisitSpaceToBatchNdLayer (const IConnectableLayer *, const SpaceToBatchNdDescriptor &, const char *) override |
void | VisitSpaceToDepthLayer (const IConnectableLayer *, const SpaceToDepthDescriptor &, const char *) override |
void | VisitSplitterLayer (const IConnectableLayer *, const ViewsDescriptor &, const char *) override |
void | VisitStackLayer (const IConnectableLayer *, const StackDescriptor &, const char *) override |
void | VisitStandInLayer (const IConnectableLayer *, const StandInDescriptor &, const char *) override |
void | VisitStridedSliceLayer (const IConnectableLayer *, const StridedSliceDescriptor &, const char *) override |
void | VisitSubtractionLayer (const IConnectableLayer *, const char *) override |
void | VisitSwitchLayer (const IConnectableLayer *, const char *) override |
void | VisitTransposeConvolution2dLayer (const IConnectableLayer *, const TransposeConvolution2dDescriptor &, const ConstTensor &, const Optional< ConstTensor > &, const char *) override |
Public Member Functions inherited from ILayerVisitor | |
virtual void | StartVisit () |
Additional Inherited Members | |
Protected Member Functions inherited from LayerVisitorBase< VisitorNoThrowPolicy > | |
LayerVisitorBase () | |
virtual | ~LayerVisitorBase () |
Protected Member Functions inherited from ILayerVisitor | |
ILayerVisitor () | |
virtual | ~ILayerVisitor () |
Visitor class to establish min/max ranges based on the type of the layer.
Definition at line 19 of file DynamicQuantizationVisitor.hpp.
DynamicQuantizationVisitor | ( | RangeTracker & | rangeTracker, |
Graph & | graph | ||
) |
Definition at line 18 of file DynamicQuantizationVisitor.cpp.
References IOutputSlot::CalculateIndexOnOwner(), IInputSlot::GetConnection(), IConnectableLayer::GetInputSlot(), IConnectableLayer::GetNumInputSlots(), IOutputSlot::GetOwningLayerGuid(), RangeTracker::GetRange(), and RangeTracker::SetRange().
|
default |
|
overridevirtual |
Reimplemented from ILayerVisitor.
Definition at line 50 of file DynamicQuantizationVisitor.cpp.
References OutputSlot::Connect(), OutputSlot::Disconnect(), Graph::EraseLayer(), and armnn::InsertDebugLayerAfter().
const std::vector< LayerBindingId > & GetOutputLayers | ( | ) |
Definition at line 330 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that an activation layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
activationDescriptor | - ActivationDescriptor to configure the activation. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 139 of file DynamicQuantizationVisitor.cpp.
References armnn::Abs, armnn::BoundedReLu, armnn::LeakyReLu, armnn::Linear, ActivationDescriptor::m_A, ActivationDescriptor::m_Function, armnn::ReLu, armnn::SoftReLu, and armnn::TanH.
|
overridevirtual |
Functions to set the Range on a per-layer-type basis.
Implements ILayerVisitor.
Definition at line 86 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a batch normalization layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
mean | - Pre-calculated mean for each channel. |
variance | - Pre-calculated variance for each channel. |
beta | - Per-channel additive factor. |
gamma | - Per-channel multiplicative factor. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 93 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a batch to space ND layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
batchToSpaceNdDescriptor | - Description of the layer. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 305 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a concat layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
concatDescriptor | - ConcatDescriptor (synonym for OriginsDescriptor) to configure the concatenation process. Number of Views must be equal to the number of inputs, and their order must match - e.g. first view corresponds to the first input, second view to the second input, etc.... |
name | - Optional name for the layer. |
Reimplemented from ILayerVisitor.
Definition at line 248 of file DynamicQuantizationVisitor.cpp.
References IOutputSlot::CalculateIndexOnOwner(), IInputSlot::GetConnection(), IConnectableLayer::GetInputSlot(), IConnectableLayer::GetNumInputSlots(), IOutputSlot::GetOwningLayerGuid(), and RangeTracker::GetRange().
|
overridevirtual |
Function a layer with no inputs and a single output, which always corresponds to the passed in constant tensor should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
input | - Tensor to be provided as the only output of the layer. The layer will maintain its own copy of the tensor data, meaning the memory referenced by input can be freed or reused after this function is called. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 220 of file DynamicQuantizationVisitor.cpp.
References armnn::Float32, BaseTensor< MemoryType >::GetDataType(), BaseTensor< MemoryType >::GetMemoryArea(), and BaseTensor< MemoryType >::GetNumElements().
|
overridevirtual |
Function that a 2D convolution layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
convolution2dDescriptor | - Description of the 2D convolution layer. |
weights | - Tensor for the weights data. |
biases | - Optional tensor for the bias data. If specified, must match the output tensor shape. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 111 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a 2D depthwise convolution layer with biases should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
convolution2dDescriptor | - Description of the 2D depthwise convolution layer. |
weights | - Tensor for the weights. Expected format: [channelMultiplier, inputChannels, height, width]. |
biases | - Optional tensor for the bias data. If specified, must match the output tensor shape. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 125 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
fullyConnectedDescriptor | - Description of the fully connected layer. |
weights | - Tensor for the weights data. |
biases | - Optional tensor for the bias data. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 169 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that an InputLayer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
id | - User generated id to uniquely identify a particular input. The same id needs to be specified when passing the inputs to the IRuntime::EnqueueWorkload() function. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 314 of file DynamicQuantizationVisitor.cpp.
void VisitNonCalibratedLayers | ( | ) |
Definition at line 78 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function an output layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
id | - User generated id to uniquely identify a particular output. The same id needs to be specified when passing the outputs to the IRuntime::EnqueueWorkload() function. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 322 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a permute layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
permuteDescriptor | - PermuteDescriptor to configure the permute. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 183 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a pooling layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
pooling2dDescriptor | - Pooling2dDescriptor to configure the pooling. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 201 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function a reshape layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
reshapeDescriptor | - Parameters for the reshape operation. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 269 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a resize bilinear layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
resizeDesc | - Parameters for the resize operation. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 287 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a softmax layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
softmaxDescriptor | - SoftmaxDescriptor to configure the softmax. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 210 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function a space to batch layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
spaceToBatchNdDescriptor | - Parameters for the space to batch operation. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 192 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function that a splitter layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
splitterDescriptor | - ViewsDescriptor to configure the splitting process. Number of Views must be equal to the number of outputs, and their order must match - e.g. first view corresponds to the first output, second view to the second output, etc.... |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 278 of file DynamicQuantizationVisitor.cpp.
|
overridevirtual |
Function a strided slice layer should call back to when its Accept(ILayerVisitor&) function is invoked.
layer | - pointer to the layer which is calling back to this visit function. |
stridedSliceDescriptor | - Parameters for the strided slice operation. |
name | - Optional name for the layer. |
Implements ILayerVisitor.
Definition at line 296 of file DynamicQuantizationVisitor.cpp.