ArmNN  NotReleased
DynamicQuantizationVisitor Class Reference

Visitor class to establish min/max ranges based on the type of the layer. More...

#include <DynamicQuantizationVisitor.hpp>

Inheritance diagram for DynamicQuantizationVisitor:
LayerVisitorBase< VisitorNoThrowPolicy > ILayerVisitor

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 ()
 

Detailed Description

Visitor class to establish min/max ranges based on the type of the layer.

Definition at line 19 of file DynamicQuantizationVisitor.hpp.

Constructor & Destructor Documentation

◆ DynamicQuantizationVisitor()

◆ ~DynamicQuantizationVisitor()

Member Function Documentation

◆ FinishVisit()

void FinishVisit ( )
overridevirtual

Reimplemented from ILayerVisitor.

Definition at line 50 of file DynamicQuantizationVisitor.cpp.

References OutputSlot::Connect(), OutputSlot::Disconnect(), Graph::EraseLayer(), and armnn::InsertDebugLayerAfter().

51 {
52  for (const IConnectableLayer* layer : m_LayersToCalibrate)
53  {
54  std::vector<DebugLayer*> newDebugLayers = InsertDebugLayerAfter(
55  m_Graph, *boost::polymorphic_downcast<Layer*>(const_cast<IConnectableLayer*>(layer)));
56  // record them so we can take them out again efficiently afterward
57  m_DebugLayers.insert(std::end(m_DebugLayers), std::begin(newDebugLayers), std::end(newDebugLayers));
58  }
59 }
std::vector< DebugLayer * > InsertDebugLayerAfter(Graph &graph, Layer &layer)

◆ GetOutputLayers()

const std::vector< LayerBindingId > & GetOutputLayers ( )

Definition at line 330 of file DynamicQuantizationVisitor.cpp.

331 {
332  return m_OutputLayers;
333 }

◆ VisitActivationLayer()

void VisitActivationLayer ( const IConnectableLayer layer,
const ActivationDescriptor activationDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that an activation layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

142 {
143  boost::ignore_unused(name, activationDescriptor);
144  switch (activationDescriptor.m_Function)
145  {
146  // Range is 0, 15 for Abs, Linear, ReLu and Soft ReLu
151  SetRange(layer, 0, 0.f, 15.f);
152  break;
154  SetRange(layer, 0, 0.f, activationDescriptor.m_A);
155  break;
157  SetRange(layer, 0, -1.f, 1.f);
158  break;
160  SetRange(layer, 0, -5.f, 15.f);
161  break;
162  default:
163  SetRange(layer, 0, -15.f, 15.f);
164  break;
165  }
166  AddToCalibratedLayers(layer);
167 }

◆ VisitAdditionLayer()

void VisitAdditionLayer ( const IConnectableLayer layer,
const char *  name = nullptr 
)
overridevirtual

Functions to set the Range on a per-layer-type basis.

Implements ILayerVisitor.

Definition at line 86 of file DynamicQuantizationVisitor.cpp.

87 {
88  boost::ignore_unused(name);
89  SetRange(layer, 0, -20.f, 20.f);
90  AddToCalibratedLayers(layer);
91 }

◆ VisitBatchNormalizationLayer()

void VisitBatchNormalizationLayer ( const IConnectableLayer layer,
const BatchNormalizationDescriptor desc,
const ConstTensor mean,
const ConstTensor variance,
const ConstTensor beta,
const ConstTensor gamma,
const char *  name = nullptr 
)
overridevirtual

Function that a batch normalization layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

100 {
101  boost::ignore_unused(desc);
102  boost::ignore_unused(mean);
103  boost::ignore_unused(variance);
104  boost::ignore_unused(beta);
105  boost::ignore_unused(gamma);
106  boost::ignore_unused(name);
107  SetRange(layer, 0, -15.0f, 15.0f);
108  AddToCalibratedLayers(layer);
109 }

◆ VisitBatchToSpaceNdLayer()

void VisitBatchToSpaceNdLayer ( const IConnectableLayer layer,
const BatchToSpaceNdDescriptor batchToSpaceNdDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a batch to space ND layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

308 {
309  boost::ignore_unused(batchToSpaceNdDescriptor);
310  boost::ignore_unused(name);
311  AddToNonCalibratedLayers(layer);
312 }

◆ VisitConcatLayer()

void VisitConcatLayer ( const IConnectableLayer layer,
const ConcatDescriptor concatDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a concat layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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().

251 {
252  boost::ignore_unused(name);
253  boost::ignore_unused(originsDescriptor);
254  float min = std::numeric_limits<float>::max();
255  float max = std::numeric_limits<float>::lowest();
256  for (unsigned int i = 0; i < layer->GetNumInputSlots(); ++i)
257  {
258  const IOutputSlot* outputSlot = layer->GetInputSlot(i).GetConnection();
259  LayerGuid layerId = outputSlot->GetOwningLayerGuid();
260  unsigned int slotIndex = outputSlot->CalculateIndexOnOwner();
261  RangeTracker::MinMaxRange range = m_RangeTracker.GetRange(layerId, slotIndex);
262  min = std::min(min, range.first);
263  max = std::max(max, range.second);
264  }
265  SetRange(layer, 0, min, max);
266  AddToCalibratedLayers(layer);
267 }
std::pair< float, float > MinMaxRange
MinMaxRange GetRange(LayerGuid guid, unsigned int idx) const
Retrieve the Range for a particular output slot on a particular layer.
profiling::ProfilingGuid LayerGuid
Define LayerGuid type.
Definition: Types.hpp:233

◆ VisitConstantLayer()

void VisitConstantLayer ( const IConnectableLayer layer,
const ConstTensor input,
const char *  name = nullptr 
)
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.

Parameters
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().

223 {
224  boost::ignore_unused(name);
225 
226  if (input.GetDataType() != DataType::Float32)
227  {
228  throw InvalidArgumentException("Quantization is supported only for FP32 tensors");
229  }
230 
231  // Work out the range based on the input constants
232  unsigned int inputNumElements = input.GetNumElements();
233  const float* inputData = reinterpret_cast<const float*>(input.GetMemoryArea());
234 
235  float min = std::numeric_limits<float>::max();
236  float max = std::numeric_limits<float>::lowest();
237 
238  for (unsigned int i = 0; i < inputNumElements; i++)
239  {
240  const float inputValue = inputData[i];
241 
242  min = std::min(min, inputValue);
243  max = std::max(max, inputValue);
244  }
245  SetRange(layer, 0, min, max);
246 }

◆ VisitConvolution2dLayer()

void VisitConvolution2dLayer ( const IConnectableLayer layer,
const Convolution2dDescriptor convolution2dDescriptor,
const ConstTensor weights,
const Optional< ConstTensor > &  biases,
const char *  name = nullptr 
)
overridevirtual

Function that a 2D convolution layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

116 {
117  boost::ignore_unused(convolution2dDescriptor);
118  boost::ignore_unused(weights);
119  boost::ignore_unused(biases);
120  boost::ignore_unused(name);
121  SetRange(layer, 0, -15.0f, 15.0f);
122  AddToCalibratedLayers(layer);
123 }

◆ VisitDepthwiseConvolution2dLayer()

void VisitDepthwiseConvolution2dLayer ( const IConnectableLayer layer,
const DepthwiseConvolution2dDescriptor convolution2dDescriptor,
const ConstTensor weights,
const Optional< ConstTensor > &  biases,
const char *  name = nullptr 
)
overridevirtual

Function that a 2D depthwise convolution layer with biases should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

130 {
131  boost::ignore_unused(desc);
132  boost::ignore_unused(weights);
133  boost::ignore_unused(biases);
134  boost::ignore_unused(name);
135  SetRange(layer, 0, -15.0f, 15.0f);
136  AddToCalibratedLayers(layer);
137 }

◆ VisitFullyConnectedLayer()

void VisitFullyConnectedLayer ( const IConnectableLayer layer,
const FullyConnectedDescriptor fullyConnectedDescriptor,
const ConstTensor weights,
const Optional< ConstTensor > &  biases,
const char *  name 
)
overridevirtual

Function that a fully connected layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

174 {
175  boost::ignore_unused(desc);
176  boost::ignore_unused(weights);
177  boost::ignore_unused(biases);
178  boost::ignore_unused(name);
179  SetRange(layer, 0, -15.0f, 15.0f);
180  AddToCalibratedLayers(layer);
181 }

◆ VisitInputLayer()

void VisitInputLayer ( const IConnectableLayer layer,
LayerBindingId  id,
const char *  name = nullptr 
)
overridevirtual

Function that an InputLayer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

315 {
316  boost::ignore_unused(id);
317  boost::ignore_unused(name);
318  SetRange(layer, 0, -0.0f, 0.0f);
319  AddToCalibratedLayers(layer);
320 }

◆ VisitNonCalibratedLayers()

void VisitNonCalibratedLayers ( )

Definition at line 78 of file DynamicQuantizationVisitor.cpp.

78  {
79  RemoveDebugLayers();
80  for (const IConnectableLayer* layer : m_LayersNotToCalibrate)
81  {
82  ForwardParentParameters(layer);
83  }
84 }

◆ VisitOutputLayer()

void VisitOutputLayer ( const IConnectableLayer layer,
LayerBindingId  id,
const char *  name = nullptr 
)
overridevirtual

Function an output layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

323 {
324  boost::ignore_unused(id);
325  boost::ignore_unused(name);
326  AddToNonCalibratedLayers(layer);
327  m_OutputLayers.push_back(id);
328 }

◆ VisitPermuteLayer()

void VisitPermuteLayer ( const IConnectableLayer layer,
const PermuteDescriptor permuteDescriptor,
const char *  name 
)
overridevirtual

Function that a permute layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

186 {
187  boost::ignore_unused(permuteDescriptor);
188  boost::ignore_unused(name);
189  AddToNonCalibratedLayers(layer);
190 }

◆ VisitPooling2dLayer()

void VisitPooling2dLayer ( const IConnectableLayer layer,
const Pooling2dDescriptor pooling2dDescriptor,
const char *  name 
)
overridevirtual

Function that a pooling layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

204 {
205  boost::ignore_unused(pooling2dDescriptor);
206  boost::ignore_unused(name);
207  AddToNonCalibratedLayers(layer);
208 }

◆ VisitReshapeLayer()

void VisitReshapeLayer ( const IConnectableLayer layer,
const ReshapeDescriptor reshapeDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a reshape layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

272 {
273  boost::ignore_unused(reshapeDescriptor);
274  boost::ignore_unused(name);
275  AddToNonCalibratedLayers(layer);
276 }

◆ VisitResizeBilinearLayer()

void VisitResizeBilinearLayer ( const IConnectableLayer layer,
const ResizeBilinearDescriptor resizeDesc,
const char *  name = nullptr 
)
overridevirtual

Function that a resize bilinear layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

290 {
291  boost::ignore_unused(resizeDesc);
292  boost::ignore_unused(name);
293  AddToNonCalibratedLayers(layer);
294 }

◆ VisitSoftmaxLayer()

void VisitSoftmaxLayer ( const IConnectableLayer layer,
const SoftmaxDescriptor softmaxDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a softmax layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

213 {
214  boost::ignore_unused(softmaxDescriptor);
215  boost::ignore_unused(name);
216  SetRange(layer, 0, 0.f, 1.f);
217  AddToCalibratedLayers(layer);
218 }

◆ VisitSpaceToBatchNdLayer()

void VisitSpaceToBatchNdLayer ( const IConnectableLayer layer,
const SpaceToBatchNdDescriptor spaceToBatchNdDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a space to batch layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

195 {
196  boost::ignore_unused(spaceToBatchNdDescriptor);
197  boost::ignore_unused(name);
198  AddToNonCalibratedLayers(layer);
199 }

◆ VisitSplitterLayer()

void VisitSplitterLayer ( const IConnectableLayer layer,
const SplitterDescriptor splitterDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function that a splitter layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

281 {
282  boost::ignore_unused(splitterDescriptor);
283  boost::ignore_unused(name);
284  AddToNonCalibratedLayers(layer);
285 }

◆ VisitStridedSliceLayer()

void VisitStridedSliceLayer ( const IConnectableLayer layer,
const StridedSliceDescriptor stridedSliceDescriptor,
const char *  name = nullptr 
)
overridevirtual

Function a strided slice layer should call back to when its Accept(ILayerVisitor&) function is invoked.

Parameters
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.

299 {
300  boost::ignore_unused(stridedSliceDescriptor);
301  boost::ignore_unused(name);
302  AddToNonCalibratedLayers(layer);
303 }

The documentation for this class was generated from the following files: