Attributes#
Introduction#
Name |
Target |
Required |
Mutable |
|---|---|---|---|
Precision |
No |
Yes |
|
Quantization interval |
Yes |
Yes |
|
Precision |
Yes |
Yes |
|
Precision |
Yes |
Yes |
|
Quantization granularity |
Yes |
Yes |
|
Quantization granularity |
Yes |
No |
Target attribute group defines attribute usage during model transformation for the best performance:
Precision- the attribute defines the most optimal output port precision.Quantization interval- the attribute defines quantization interval.Quantization alignment- the attribute defines quantization granularity in runtime: per-channel or per-tensor quantization.Quantization granularity- the attribute is set by plugin to define quantization granularity: per-channel or per-tensor quantization.
Required attribute group defines if attribute usage is required to get an optimal model during transformation:
Yes- the attribute is used by all OpenVINO plugins for low-precision optimization.No- the attribute is used in a specific OpenVINO plugin.
Mutable attribute group defines if transformation can update an existing attribute:
Yes- the attribute can be updated by the next transformations in the pipeline. But attribute update order is still important.No- existing attribute can not be updated by the next transformation. Previous handled transformation has optimized a model according to the current value.
FakeQuantize decomposition is a mandatory part of low precision transformations. Attributes used during decomposition are mandatory. Optional attributes are required only for certain operations.
Attributes usage by transformations:
Attribute name |
Created by transformations |
Used by transformations |
|---|---|---|
PrecisionPreserved |
MarkupPrecisions, MarkupAvgPoolPrecisionPreserved |
AlignQuantizationIntervals, AlignQuantizationParameters, FakeQuantizeDecompositionTransformation, MarkupAvgPoolPrecisionPreserved |
AvgPoolPrecisionPreserved |
MarkupAvgPoolPrecisionPreserved |
|
Precisions |
MarkupCanBeQuantized, MarkupPrecisions |
FakeQuantizeDecompositionTransformation |
PerTensorQuantization |
MarkupPerTensorQuantization |
|
IntervalsAlignment |
AlignQuantizationIntervals |
FakeQuantizeDecompositionTransformation |
QuantizationAlignment |
AlignQuantizationParameters |
FakeQuantizeDecompositionTransformation |
Note
The same type of attribute instances can be created in different transformations. This approach is the result of the transformation single-responsibility principle. For example, Precision attribute instances are created in MarkupCanBeQuantized and MarkupPrecisions transformations, but the reasons for their creation are different.