16 #include <unordered_map> 22 class StaticRangeVisitor;
30 bool preserveType =
false);
40 const char* name =
nullptr)
override;
46 const char* name =
nullptr)
override;
54 const char* name =
nullptr)
override;
58 const char* name =
nullptr)
override;
62 const char* name =
nullptr)
override;
66 const char* name =
nullptr)
override;
70 const char* name =
nullptr)
override;
76 const char* name =
nullptr)
override;
80 const char* name =
nullptr)
override;
86 const char* name =
nullptr)
override;
90 const char* name =
nullptr)
override;
96 const char *name =
nullptr)
override;
102 const char* name =
nullptr)
override;
106 const char* name =
nullptr)
override;
110 const char* name =
nullptr)
override;
113 const char* name =
nullptr)
override;
117 const char* name =
nullptr)
override;
123 const char* name =
nullptr)
override;
127 const char* name =
nullptr)
override;
131 const char* name =
nullptr)
override;
134 const char* name =
nullptr)
override;
138 const char* name =
nullptr)
override;
142 const char* name =
nullptr)
override;
147 const char* name =
nullptr)
override;
151 const char* name =
nullptr)
override;
155 const char* name =
nullptr)
override;
159 const char* name =
nullptr)
override;
163 const char* name =
nullptr)
override;
167 const char* name =
nullptr)
override;
171 const char* name =
nullptr)
override;
175 const char* name =
nullptr)
override;
179 const char* name =
nullptr)
override;
182 const char* name =
nullptr)
override;
188 const char* name =
nullptr)
override;
204 std::vector<int32_t>& weightsBacking);
213 std::unordered_map<LayerGuid, LayerGuid> m_OriginalToQuantizedGuidMap;
216 std::unordered_map<LayerGuid, IConnectableLayer*> m_QuantizedGuidToLayerMap;
220 const bool m_PreserveType;
void VisitPreluLayer(const IConnectableLayer *layer, const char *name=nullptr) override
void VisitStridedSliceLayer(const IConnectableLayer *layer, const StridedSliceDescriptor &stridedSliceDescriptor, 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
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
A NormalizationDescriptor for the NormalizationLayer.
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
void VisitSliceLayer(const IConnectableLayer *layer, const SliceDescriptor &sliceDescriptor, const char *name=nullptr) override
void VisitElementwiseUnaryLayer(const IConnectableLayer *layer, const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr) override
void VisitReshapeLayer(const IConnectableLayer *layer, const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr) override
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
QuantizerVisitor(const RangeTracker &rangeTracker, const IQuantizationScheme *quantizationScheme, bool preserveType=false)
~QuantizerVisitor()=default
A PadDescriptor for the PadLayer.
An ActivationDescriptor for the ActivationLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
void VisitAdditionLayer(const IConnectableLayer *layer, const char *name=nullptr) override
void VisitConstantLayer(const IConnectableLayer *layer, const ConstTensor &input, const char *name=nullptr) override
void VisitNormalizationLayer(const IConnectableLayer *layer, const NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr) override
A ViewsDescriptor for the SplitterLayer. Descriptor 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.
void VisitLogSoftmaxLayer(const IConnectableLayer *layer, const LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr) override
void VisitFullyConnectedLayer(const IConnectableLayer *layer, const FullyConnectedDescriptor &desc, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr) override
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
A ReshapeDescriptor for the ReshapeLayer.
void VisitConcatLayer(const IConnectableLayer *layer, const OriginsDescriptor &originsDescriptor, const char *name=nullptr) override
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
void VisitConvolution2dLayer(const IConnectableLayer *layer, const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr) override
void VisitPermuteLayer(const IConnectableLayer *layer, const PermuteDescriptor &permuteDescriptor, const char *name=nullptr) override
void VisitPooling2dLayer(const IConnectableLayer *layer, const Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr) override
void VisitSubtractionLayer(const IConnectableLayer *layer, const char *name=nullptr) override
void VisitSpaceToDepthLayer(const IConnectableLayer *layer, const SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr) override
INetworkPtr RetrieveFinalNetwork()
Extract the quantized network.
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
A FullyConnectedDescriptor for the FullyConnectedLayer.
void VisitResizeBilinearLayer(const IConnectableLayer *layer, const ResizeBilinearDescriptor &resizeDesc, const char *name=nullptr) override
void VisitTransposeConvolution2dLayer(const IConnectableLayer *layer, const TransposeConvolution2dDescriptor &descriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr) override
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
A StackDescriptor for the StackLayer.
void VisitSoftmaxLayer(const IConnectableLayer *layer, const SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr) override
void VisitPadLayer(const IConnectableLayer *, const PadDescriptor &, const char *name=nullptr) override
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
A SoftmaxDescriptor for the SoftmaxLayer.
void VisitMultiplicationLayer(const IConnectableLayer *layer, const char *name=nullptr) override
void VisitStackLayer(const IConnectableLayer *layer, const StackDescriptor &stackDescriptor, const char *name=nullptr) override
Visitor object for quantizing layers in a network.
void VisitComparisonLayer(const IConnectableLayer *layer, const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr) override
void VisitActivationLayer(const IConnectableLayer *layer, const ActivationDescriptor &activationDescriptor, const char *name=nullptr) override
void VisitMeanLayer(const IConnectableLayer *layer, const MeanDescriptor &meanDescriptor, const char *name=nullptr) override
void VisitInputLayer(const IConnectableLayer *layer, LayerBindingId id, const char *name=nullptr) override
void VisitSplitterLayer(const IConnectableLayer *layer, const SplitterDescriptor &splitterDescriptor, const char *name=nullptr) override
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
A Pooling2dDescriptor for the Pooling2dLayer.
void VisitBatchToSpaceNdLayer(const IConnectableLayer *layer, const BatchToSpaceNdDescriptor &batchToSpaceNdDescriptor, const char *name=nullptr) override
A SliceDescriptor for the SliceLayer.
void VisitInstanceNormalizationLayer(const IConnectableLayer *layer, const InstanceNormalizationDescriptor &instanceNormalizationDescriptor, const char *name=nullptr) override
void VisitAbsLayer(const IConnectableLayer *layer, const char *name=nullptr) override
Functions to quantize the individual layers, overridden from ILayerVisitor.
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
void VisitOutputLayer(const IConnectableLayer *layer, LayerBindingId id, const char *name=nullptr) override
A PermuteDescriptor for the PermuteLayer.
A Convolution2dDescriptor for the Convolution2dLayer.
A MeanDescriptor for the MeanLayer.
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
void VisitResizeLayer(const IConnectableLayer *layer, const ResizeDescriptor &resizeDescriptor, const char *name=nullptr) override
#define ARMNN_DEPRECATED_MSG(message)
An ArgMinMaxDescriptor for ArgMinMaxLayer.
void VisitDepthToSpaceLayer(const IConnectableLayer *layer, const DepthToSpaceDescriptor &depthToSpaceDescriptor, const char *name=nullptr) override
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
void VisitArgMinMaxLayer(const IConnectableLayer *layer, const ArgMinMaxDescriptor &argMinMaxDescriptor, const char *name=nullptr) override
A ResizeDescriptor for the ResizeLayer.
A ComparisonDescriptor for the ComparisonLayer.
void VisitRsqrtLayer(const IConnectableLayer *, const char *name=nullptr) override
void VisitSpaceToBatchNdLayer(const IConnectableLayer *layer, const SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr) override
An OriginsDescriptor for the ConcatLayer. Descriptor to configure the concatenation process...
A StridedSliceDescriptor for the StridedSliceLayer.