From 7ebaf7d02b0e86f5117788ae1db1e776b1550521 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Sat, 6 Mar 2021 17:50:59 +0300 Subject: [PATCH 01/19] [LPT] Documentation --- docs/doxygen/ie_docs.xml | 384 ++++++++++++++++++ .../img/fq_and_convolution.common.svg | 1 + .../img/fq_and_convolution.transformed.svg | 1 + .../img/fq_fq_and_convolution.common.svg | 1 + .../low_precision_transformation_pipeline.svg | 1 + .../img/qdq_and_convolution.common.svg | 1 + docs/low_precision_transformations/lpt.md | 354 ++++++++++++++++ .../quantization/img/fq.common.svg | 1 + .../quantization/img/fq.transformed.svg | 1 + docs/snippets/lpt_mkldnn_plugin.cpp | 192 +++++++++ 10 files changed, 937 insertions(+) create mode 100644 docs/doxygen/ie_docs.xml create mode 100644 docs/low_precision_transformations/img/fq_and_convolution.common.svg create mode 100644 docs/low_precision_transformations/img/fq_and_convolution.transformed.svg create mode 100644 docs/low_precision_transformations/img/fq_fq_and_convolution.common.svg create mode 100644 docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg create mode 100644 docs/low_precision_transformations/img/qdq_and_convolution.common.svg create mode 100644 docs/low_precision_transformations/lpt.md create mode 100644 docs/low_precision_transformations/quantization/img/fq.common.svg create mode 100644 docs/low_precision_transformations/quantization/img/fq.transformed.svg create mode 100644 docs/snippets/lpt_mkldnn_plugin.cpp diff --git a/docs/doxygen/ie_docs.xml b/docs/doxygen/ie_docs.xml new file mode 100644 index 00000000000000..6ce5419d8f1ca5 --- /dev/null +++ b/docs/doxygen/ie_docs.xml @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/low_precision_transformations/img/fq_and_convolution.common.svg b/docs/low_precision_transformations/img/fq_and_convolution.common.svg new file mode 100644 index 00000000000000..af34cbfa239e1e --- /dev/null +++ b/docs/low_precision_transformations/img/fq_and_convolution.common.svg @@ -0,0 +1 @@ +FP32 Convolution with quantized weightsFakeQuantizeFakeQuantizelevels: 256{f32} {1, 3, 299, 299}Parameter{f32} {1, 3, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7]Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7]ResultConstant{i8} {6, 3, 1, 1}Dequantization on weightsMultiply{f32} {6, 3, 1, 1}Convert{f32} {6, 3, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {6, 3, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/img/fq_and_convolution.transformed.svg b/docs/low_precision_transformations/img/fq_and_convolution.transformed.svg new file mode 100644 index 00000000000000..f1f18e7b94ee97 --- /dev/null +++ b/docs/low_precision_transformations/img/fq_and_convolution.transformed.svg @@ -0,0 +1 @@ +DequantizationINT8 Convolution with zero pointQuantizationFakeQuantizelevels: 256{u8} {1, 3, 299, 299}Parameter{f32} {1, 3, 299, 299}Subtract{f32} {1, 3, 299, 299}Multiply{f32} {1, 6, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{f32} {1, 1, 1, 1}value:[-12.8]Constant{f32} {1, 1, 1, 1}value:[12.7]Constant{f32} {1, 1, 1, 1}value:[0]Constant{f32} {1, 1, 1, 1}value:[255]Constant{i8} {6, 3, 1, 1}Constant{u8} {}Constant{f32} {1, 6, 1, 1}ResultSubtract{f32} {1, 3, 299, 299}Constant{i8} {6, 1, 1, 1}Zero point on activationsZero point on weights \ No newline at end of file diff --git a/docs/low_precision_transformations/img/fq_fq_and_convolution.common.svg b/docs/low_precision_transformations/img/fq_fq_and_convolution.common.svg new file mode 100644 index 00000000000000..0505b70097fa83 --- /dev/null +++ b/docs/low_precision_transformations/img/fq_fq_and_convolution.common.svg @@ -0,0 +1 @@ +FP32 ConvolutionFakeQuantizeFakeQuantizelevels: 256{f32} {1, 3, 299, 299}Parameter{f32} {1, 3, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7]Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7]ResultFakeQuantizelevels: 255{f32} {6, 3, 299, 299}Constant{i8} {6, 3, 1, 1}Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7]Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7] \ No newline at end of file diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg new file mode 100644 index 00000000000000..1b4f84acd4a7f4 --- /dev/null +++ b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg @@ -0,0 +1 @@ +Step #1PrerequisitesStep #2Markup transformationsStep #3Main transformationsStep #4Cleanup transformationsPullReshapeThroughDequantizationPullTransposeThroughDequantizationngraph::pass::LinOpSequenceFusionMarkupCanBeQuantizedMarkupPrecisionsMarkupPerTensorQuantizationMarkupAvgPoolPrecisionPreservedPropagatePrecisionsAlignQuantizationInttervalsAlignQuantizationParamtersAddTransformationAvgPoolTransformationClampTransformationConcatTransformationConvolutionTransformationConvolutionBackpropDataTransformationDepthToSpaceTransformationFakeQuantizeDecompositionTransformationFakeQuantizeTransformationInterpolateTransformationGroupConvolutionTransformationMatMulTransformationMaxPoolTransformationMultiplyTransformationMVNTransformationNormalizeL2TransformationPReluTransformationReduceMaxTransformationReduceMeanTransformationReduceMinTransformationReduceSumTransformationReluTransformationReshapeTransformationSqueezeTransformationShuffleChannelsTransformationSplitTransformationStridedSliceTransformationTransposeTransformationUnsqueezeTransformationVariadicSplitTransformationFoldConvertTransformationFuseConvertTransformationFuseSubtractToFakeQuantizeTransformationFuseMultiplyToFakeQuantizeTransformationMultiplyToGroupConvolutionTransformationSubtractMultiplyToMultiplyAddTransformationFoldFakeQuantizeTransformation \ No newline at end of file diff --git a/docs/low_precision_transformations/img/qdq_and_convolution.common.svg b/docs/low_precision_transformations/img/qdq_and_convolution.common.svg new file mode 100644 index 00000000000000..76ac5325a4f8eb --- /dev/null +++ b/docs/low_precision_transformations/img/qdq_and_convolution.common.svg @@ -0,0 +1 @@ +DequantizationFP32 Convolution with quantized weightsQuantizationFakeQuantizelevels: 256{f32} {1, 3, 299, 299}Parameter{f32} {1, 3, 299, 299}Multiply{f32} {1, 3, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{f32} {1, 1, 1, 1}Value:[-12.8]Constant{f32} {1, 1, 1, 1}Value:[12.7]Constant{f32} {1, 1, 1, 1}Value:[0]Constant{f32} {1, 1, 1, 1}Value:[255]Constant{f32} {}ResultConvert{f32} {1, 3, 299, 299}Convert{u8} {1, 3, 299, 299}Subtract{f32} {1, 3, 299, 299}Constant{u8} {}Convert{f32} {}Dequantization on weightsConstant{i8} {6, 3, 1, 1}Multiply{f32} {6, 3, 1, 1}Convert{f32} {6, 3, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {6, 3, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/lpt.md b/docs/low_precision_transformations/lpt.md new file mode 100644 index 00000000000000..be0fb889982760 --- /dev/null +++ b/docs/low_precision_transformations/lpt.md @@ -0,0 +1,354 @@ +# OpenVINOâ„¢ Low Precision Transformations {#openvino_docs_IE_DG_lpt} + +## Table of Contents + +1. [Introduction](#introduction) +2. [Input model requirements](#input-model-requirements) +3. [Low precision tools](#low-precision-tools) +4. [Quantization approaches](#quantization-approaches) + 4.1. [FakeQuantize operation](#fakequantize-operation) + 4.2. [Quantize and dequantization operations](#quantize-and-dequantization-operations) +5. [Low precision transformations pipeline](#low-precision-transformations-pipeline) + 5.1. [Step #1. Prerequisites](#step-1-prerequisites) + 5.2. [Step #2. Markup](#step-2-markup) + 5.3. [Step #3. Main transformations: FakeQuantize decomposition and dequantization operations handling](#step-3-main-transformations-fakequantize-decomposition-and-dequantization-operations-handling) + 5.4. [Step #4. Cleanup result model](#step-4-cleanup-result-model) +6. [Low precision transformations in plugin transformation pipeline](#low-precision-transformations-in-plugin-transformation-pipeline) + [Step #1. Common optimizations](#step-1-common-optimizations) + [Step #2. Low precision transformations execution](#step-2-low-precision-transformations-execution) + [Step #3. Plugin specific transformations](#step-3-plugin-specific-transformations) +7. [Result model overview](#result-model-overview) +8. [Mixed precision](#mixed-precision) +9. [Customization](#customization) + +## Introduction +The goal of `Low Precision Transformations` (LPT transformations) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: +1. `FakeQuantize` operation decomposition to two parts: + - part #1: quantize operation - new `FakeQuantize` operation with output quantization intervals in low precision range (signed int8: [-128, 127] or [-127, 127], unsigned int8: [0, 255] or [0, 256]) and with low precision output (`signed int8` or `unsigned int8`), + - part #2: dequantization operations with low precision input and original precision output. +2. Dequantization operation propagation through original models operations to avoid dequantization operations before original model operations, thus the quantize operations with low precision output remains before original model operations. + +As result, operation input tensor precisions will be changed from original to low precision and operations can be inferred by OpenVINOâ„¢ plugin in low precision. + +How quantize a model in details you can explore in [Low precision tools](#low-precision-tools) section below. For more information about model quantization, refer to **Brief History of Lower Precision in Deep Learning** section in [this whitepaper](https://software.intel.com/en-us/articles/lower-numerical-precision-deep-learning-inference-and-training). + +## Input model requirements + +LPT transformations decompose `FakeQuantize` operations if `level` parameter is set to 255 or 256. LPT transformations propagate dequantization operations through follow operations: +* Add +* Avg +* Clamp +* Concat +* Convolution +* ConvolutionBackpropData +* DepthToSpace +* FakeQuantize +* GroupConvolution +* Interpolate +* MatMul +* MaxPool +* Multiply +* MVN +* NormalizeL2 +* PRelu +* ReduceMax +* ReduceMean +* ReduceMin +* ReduceSum +* Relu +* Reshape +* Split +* Squeeze +* StridedSlice +* Transpose +* Unsqueeze +* VariadicSplit + +If operation is not supported by LPT then dequantization operation will be not propagated, input tensor precisions will be not changed to low precision and operation will be executed in original precision. + +For example, if you would like to infer `Convolution` operation in low precision then your model can look as on picture below: + +![Quantized Convolution](img/fq_and_convolution.common.svg) + +> There are several supported quantization approaches on activations and on weights. All supported approaches are described in [Quantization approaches](#quantization-approaches) section below. In demonstrated model [FakeQuantize operation quantization](#fakequantize-operation) approach is used. + +### Low precision tools +There are two tools to quantize a model: +1. [Post-Training Optimization Toolkit](@ref pot_README.html) (POT) +2. [Neural Network Compression Framework](https://github.com/openvinotoolkit/nncf) (NNCF) + +Additionally, low precision transformations can handle ONNX quantized model. + +## Quantization approaches +LPT transformations support two quantization approaches: +1. `FakeQuantize` operation, +2. Quantize and dequantization operations + +Let's explore both approaches in details on `Convolution` operation. +### FakeQuantize operation +In this case `FakeQuantize` operation is used on activations and quantized constant on weights. Original input model: + +![](img/fq_and_convolution.common.svg) + +### Quantize and dequantization operations +In this case `FakeQuantize` operation and `Convert` are used as quantize operation and return quantized low precision tensor. After quantize operation on activations there are `Convert` and dequantization operations to compensate decomposition. Original input model: + +![](img/qdq_and_convolution.common.svg) + +In both cases result is the same. In LPT result model you can see, that: +1. if neccessary, `FakeQuantize` operations on activations were decomposed to two part: + - new `FakeQuantize`operation with updated output intervals in low precision range and low precision output, + - dequantization operations on activations; +2. if neccessary, existing `FakeQuantize` decomposition can be rework to get more optimal precision; +3. dequantization operations were propagated through `Convolution`. + +LPT result model: + +![](img/fq_and_convolution.transformed.svg) + +### Low precision transformations pipeline +LPT transformation pipeline has several steps. For each transformation inside one step pattern matcher is unique per transformation, but each operation can be assigned to several transformations. + +![](img/low_precision_transformation_pipeline.svg) + +
+Click to explore all LPT transformations by steps in one table + +| Step #1: Prerequisites | Step #2: Markup transformations | Step #3: Main transformations | Step #4: Cleanup transformations | +|------------------------------------|---------------------------------|-----------------------------------------|---------------------------------------------| +| PullReshapeThroughDequantization | MarkupCanBeQuantized | AddTransformation | FoldConvertTransformation | +| PullTransposeThroughDequantization | MarkupPrecisions | AvgPoolTransformation | FuseConvertTransformation | +| ngraph::pass::LinOpSequenceFusion | MarkupPerTensorQuantization | ClampTransformation | FuseSubtractToFakeQuantizeTransformation | +| | MarkupAvgPoolPrecisionPreserved | ConcatTransformation | FuseMultiplyToFakeQuantizeTransformation | +| | PropagatePrecisions | ConvolutionTransformation | MultiplyToGroupConvolutionTransformation | +| | AlignQuantizationInttervals | ConvolutionBackpropDataTransformation | SubtractMultiplyToMultiplyAddTransformation | +| | AlignQuantizationParamters | DepthToSpaceTransformation | FoldFakeQuantizeTransformation | +| | | FakeQuantizeDecompositionTransformation | | +| | | FakeQuantizeTransformation | | +| | | InterpolateTransformation | | +| | | GroupConvolutionTransformation | | +| | | MatMulTransformation | | +| | | MaxPoolTransformation | | +| | | MultiplyTransformation | | +| | | MVNTransformation | | +| | | NormalizeL2Transformation | | +| | | PReluTransformation | | +| | | ReduceMaxTransformation | | +| | | ReduceMeanTransformation | | +| | | ReduceMinTransformation | | +| | | ReduceSumTransformation | | +| | | ReluTransformation | | +| | | ReshapeTransformation | | +| | | SqueezeTransformation | | +| | | ShuffleChannelsTransformation | | +| | | SplitTransformation | | +| | | StridedSliceTransformation | | +| | | TransposeTransformation | | +| | | UnsqueezeTransformation | | +| | | VariadicSplitTransformation | | + +
+ +Inside each step LPT transformations handle input model operation by operation, applying transformation matching pattern for each transformation from the step to an operation, and execute transformation if pattern is matched. Decomposition transformation decomposes `FakeQuantize` to quantize and dequantization operations. Dequantization operations from previous transformation result is used for the current one and so on, until the end of the model is achieved. + +As result, usually all operations are inferred by plugin in low precision. If plugin doesn't support an operation inference in low precision, then corresponding LPT transformation can be disabled, and input tensor precisions for the operation will be not changed. In this case the operation is inferred in the original precision. + +Low precision transformations pipeline includes four steps: +* Step #1: Prerequisites. +* Step #2: Markup transformations. +* Step #3: Main transformations: `FakeQuantize` decomposition and dequantization operations handling. +* Step #4: Cleanup transformations: cleanup result model. + +### Step #1. Prerequisites +This step fuses and propagates some operations in the model before run the next step. The step is required for OpenVINO plugins. Transformations: +* PullReshapeThroughDequantization +* PullTransposeThroughDequantization +* ngraph::pass::LinOpSequenceFusion + +The model on this step is changed. + +### Step #2. Markup +This step create runtime attributes for operations. Attributes will be used in next step. Transformations: +* MarkupCanBeQuantized +* MarkupPrecisions +* MarkupPerTensorQuantization +* MarkupAvgPoolPrecisionPreserved +* PropagatePrecisions +* AlignQuantizationInttervals +* AlignQuantizationParamters + +The model on this step is changed: only new attributes are added to some operations. + + + +### Step #3. Main transformations, FakeQuantize decomposition and dequantization operations handling +This step has the most transformations. Transformations: +* AddTransformation +* AvgPoolTransformation +* ClampTransformation +* ConcatTransformation +* ConvolutionTransformation +* ConvolutionBackpropDataTransformation +* DepthToSpaceTransformation +* FakeQuantizeDecompositionTransformation +* FakeQuantizeTransformation +* InterpolateTransformation +* GroupConvolutionTransformation +* MatMulTransformation +* MaxPoolTransformation +* MultiplyTransformation +* MVNTransformation +* NormalizeL2Transformation +* PReluTransformation +* ReduceMaxTransformation +* ReduceMeanTransformation +* ReduceMinTransformation +* ReduceSumTransformation +* ReluTransformation +* ReshapeTransformation +* SqueezeTransformation +* ShuffleChannelsTransformation +* SplitTransformation +* StridedSliceTransformation +* TransposeTransformation +* UnsqueezeTransformation +* VariadicSplitTransformation + +Transformations from this step can be separated in two groups: decompostion transformation and dequantization operations handling. + +#### Decomposition transformations +Decomposition transformations decompose `FakeQuantize` operation to quantize (`FakeQuantize` with low precision output) and dequantization operations (revers operations to quantize, with low precision input and original precision output). For dequantization operations LPT uses three operations: `Convert`, `Subtract` and `Multiply`. Element-wise operations `Subtract` and `Multiply` have constants on the second branches. If dequantization operations are not handled at the end of LPT pipeline, then they will be fused back to the `FakeQuantize`. + + +Original `FakeQuantize`: +![FakeQuantize operation before LPT](quantization/img/fq.common.svg) + + +`FakeQuantize` after decomposition to quantization and dequantization operations: +![FakeQuantize operation after LPT](quantization/img/fq.transformed.svg) + + +#### Dequantization operations handling transformations + +In this step LPT transformations fuse or move dequantization operations through existing model operations as more as possible. + +Original `Convolution` operation in FP32 with dequantization operations before: +![Convolution operation before LPT](img/fq_and_convolution.common.svg) + +`Convolution` operation in INT8 after decomposition and dequantization operations handling: +![Convolution operation after LPT](img/fq_and_convolution.transformed.svg) + +### Step #4: Cleanup result model +LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. + +`FakeQuantize` operation with not handled dequantization operations: +![TODO: FakeQuantize operation with dequantization operations before LPT](quantization/img/fq.transformed.svg) + +`FakeQuantize` operation with fused dequantization operations: +![TODO: FakeQuantize operation with fused operations after LPT](quantization/img/fq.common.svg) + + + +## Low precision transformations in plugin transformation pipeline +Typical transformation pipeline described below. + +### Step #1. Common optimizations +This step is optional for LPT but typically is presented in OpenVINOâ„¢ plugins. The step doesn't use any LPT transformation. Firstly, the step disables dequantization operations constant folding on constant subgraph on weights to prevent the lost of dequantization info on the next plugin transformations. After that, it optimizes nGraph function and convert operations to operation set 1. Typically, usage of this step is the simplest way to meet LPT requirements for the input quantized model. If plugin can guarantee that LPT input requirements are met, then this step can be skipped. + +@snippet snippets/lpt_mkldnn_plugin.cpp lpt_common + +### Step #2. Low precision transformations execution +This step is mandatory. The step configure and run LPT transformations. + +@snippet snippets/lpt_mkldnn_plugin.cpp lpt_execution + +### Step #3. Plugin specific transformations +This step is optional. The step modifies nGraph function to device specific operation set. + +@snippet snippets/lpt_mkldnn_plugin.cpp lpt_device + +## Result model overview + +Let's explore quantized [TensorFlow* implementation of ResNet-50](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/resnet-50-tf) model. Use [Model Downloader](@ref omz_tools_downloader) tool to download the `fp16` model from [OpenVINOâ„¢ Toolkit - Open Model Zoo repository](https://github.com/openvinotoolkit/open_model_zoo): +```sh +./downloader.py --name resnet-50-tf --precisions FP16-INT8 +``` +After that you should quantize model by the [Model Quantizer](@ref omz_tools_downloader) tool. +```sh +./quantizer.py --model_dir public/resnet-50-tf --dataset_dir --precisions=FP16-INT8 +``` + +### Inference + +The simplest way to infer the model and collect performance counters is [C++ Benchmark Application](../../inference-engine/samples/benchmark_app/README.md). +```sh +./benchmark_app -m resnet-50-tf.xml -d CPU -niter 1 -api sync -report_type average_counters -report_folder pc_report_dir +``` +If you infer the model with the OpenVINOâ„¢ CPU plugin and collect performance counters, all operations (except last not quantized SoftMax) are executed in INT8 precision. + +### Results analysis + +Result model depends on different factors: +* The original model quantization possibility and quantization quality. For some models, some operations are not possible to be quantized by POT and NNCF tools. In this case `FakeQuantize` operations are absent before these operations and they will be inferred in original precision. +* LPT customization and plugin supported operations. If plugin doesn't support INT8 inference for some operation then corresponding LPT transformation should be disabled and the operation will be inferred in original precision. + + +Information about layer precision is stored in the performance counters that are +available from the Inference Engine API. For example, the part of performance counters table for quantized [TensorFlow* implementation of ResNet-50](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/resnet-50-tf) model inference on CPU Plugin looks as follows: + + +| layerName | execStatus | layerType | execType | realTime (ms) | cpuTime (ms) | +| --------------------------------------------------------- | ---------- | ------------ | -------------------- | ------------- | ------------ | +| resnet\_model/batch\_normalization\_15/FusedBatchNorm/Add | EXECUTED | Convolution | jit\_avx512\_1x1\_I8 | 0.377 | 0.377 | +| resnet\_model/conv2d\_16/Conv2D/fq\_input\_0 | NOT\_RUN | FakeQuantize | undef | 0 | 0 | +| resnet\_model/batch\_normalization\_16/FusedBatchNorm/Add | EXECUTED | Convolution | jit\_avx512\_I8 | 0.499 | 0.499 | +| resnet\_model/conv2d\_17/Conv2D/fq\_input\_0 | NOT\_RUN | FakeQuantize | undef | 0 | 0 | +| resnet\_model/batch\_normalization\_17/FusedBatchNorm/Add | EXECUTED | Convolution | jit\_avx512\_1x1\_I8 | 0.399 | 0.399 | +| resnet\_model/add\_4/fq\_input\_0 | NOT\_RUN | FakeQuantize | undef | 0 | 0 | +| resnet\_model/add\_4 | NOT\_RUN | Eltwise | undef | 0 | 0 | +| resnet\_model/add\_5/fq\_input\_1 | NOT\_RUN | FakeQuantize | undef | 0 | 0 | + + +> The `exeStatus` column of the table includes possible values: +> - `EXECUTED` - layer was executed by standalone primitive, +> - `NOT_RUN` - layer was not executed by standalone primitive or was fused with another operation and executed in another layer primitive. +> +> The `execType` column of the table includes inference primitives with specific suffixes. The layers have the following marks: +> * Suffix `I8` for layers that had 8-bit data type input and were computed in 8-bit precision +> * Suffix `FP32` for layers computed in 32-bit precision + +As result all operations (except not quantized `SoftMax` at the end of the model) in OpenVINOâ„¢ CPU plugin are inferred in low precision. Note, please, in the result model there are `FakeQuantize` operations in FP32 but the plugin responsibility is fuse these operations with previous operations. OpenVINOâ„¢ CPU plugin achieves maximum optimized inference for all operations by fusing INT8 `Convolution` with FP32 output with `FakeQuantize` operation with FP32 input and INT8 output. In this case OpenVINOâ„¢ CPU plugin uses INT8 and FP32 vectorized instructions but reports about one INT8 kernel usage for inference, which is the most optimized for this case. + +## Mixed precision +If LPT input model operation output has `fp16` precision then dequantization computations still occurs in `fp32` precision. This approach is used to avoid accuracy loss in `fp16` arithmetic computations. Note, the latest dequantization operation output has `fp16` precision. + +## Customization +Low Precision Transformations can be customizable. Build-in customization options: +* operation precision restrictions, +* operation per tensor quantization restrictions, +* update precisions, +* dequantization precision. + + +### Operation precision restrictions +This option defines precisions which allowed for the operation input ports. The option value is passed as input argument for `LowPrecision` constructor. For example: + +@snippet snippets/lpt_mkldnn_plugin.cpp lpt_supported_precisions + +In provided example in result model `Convolution` operation inputs must have specific precisions: `u8` (unsigned int8) precision on input 0 (on activations) and `i8` (signed int8) precision on input 1 (on weights). + +### Operation per tensor quantization restrictions +This option defines if operation supports per-tensor quantization only. The option value is passed as input argument for `LowPrecision` constructor. For example: + +@snippet snippets/lpt_mkldnn_plugin.cpp per_tensor_quantization + +In provided example in result model `Convolution` operations must have per-tensor quantization on input 0 (on acivations). + +### Update precisions +This option defines if each LPT transformation updates precision or not. The option value is boolean and is passed as `updatePrecisions` member of `LayerTransformation::Params` which is input argument for `LowPrecision` constructor. All transformations are affected. If `true` then low precision transformations update precisions to low precision and doesn't if `false`. Typically this option is used for plugin debugging. + +### Typical customization use cases + +Plugin specific customization can be implemented via nGraph transformation callbacks. For exmample: asymmetric quantization support can be easilly customizable via `LayerTransformation::isAsymmetricQuantization` and `WeightableLayerTransformation::isAsymmetricOnWeights` methods usage in callbacks. For example: + +@snippet snippets/lpt_mkldnn_plugin.cpp asymmetric_quantization diff --git a/docs/low_precision_transformations/quantization/img/fq.common.svg b/docs/low_precision_transformations/quantization/img/fq.common.svg new file mode 100644 index 00000000000000..056a1424ba78ad --- /dev/null +++ b/docs/low_precision_transformations/quantization/img/fq.common.svg @@ -0,0 +1 @@ +FakeQuantizeFakeQuantizelevels: 256{f32} {1, 3, 299, 299}Parameter{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value:[-12.8]Constant{f32} {1, 1, 1, 1}value:[12.7]Constant{f32} {1, 1, 1, 1}value:[-12.8]Constant{f32} {1, 1, 1, 1}value:[12.7]Result \ No newline at end of file diff --git a/docs/low_precision_transformations/quantization/img/fq.transformed.svg b/docs/low_precision_transformations/quantization/img/fq.transformed.svg new file mode 100644 index 00000000000000..2eae59b9572b55 --- /dev/null +++ b/docs/low_precision_transformations/quantization/img/fq.transformed.svg @@ -0,0 +1 @@ +DequantizationQuantizationFakeQuantizelevels: 256{u8} {1, 3, 299, 299}Parameter{f32} {1, 3, 299, 299}Multiply{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value:[-12.8]Constant{f32} {1, 1, 1, 1}value:[12.7]Constant{f32} {1, 1, 1, 1}value:[0]Constant{f32} {1, 1, 1, 1}value:[255]Constant{f32} {}ResultConvert{f32} {1, 3, 299, 299}Subtract{f32} {1, 3, 299, 299}Constant{f32} {} \ No newline at end of file diff --git a/docs/snippets/lpt_mkldnn_plugin.cpp b/docs/snippets/lpt_mkldnn_plugin.cpp new file mode 100644 index 00000000000000..bc6463f03cd6dc --- /dev/null +++ b/docs/snippets/lpt_mkldnn_plugin.cpp @@ -0,0 +1,192 @@ +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ngraph { +namespace pass { +namespace device { + +class ConvertOpSet1ToDeviceSpecific: public ngraph::pass::FunctionPass { +public: + bool run_on_function(std::shared_ptr f) override { + return true; + } +}; + +} // namespace device +} // pass +} // ngraph + +int main() { +std::shared_ptr nGraphFunc; +ngraph::pass::Manager manager; +auto pass_config = manager.get_pass_config(); +//! [lpt_common] +// check if function is quantized to ignore LPT transformations for not quantized function to speed up model loading +const bool useLpt = ngraph::pass::low_precision::LowPrecision::isFunctionQuantized(nGraphFunc); +if (useLpt) { + // disable constant folding on constant subgraph to use the subgraph for LPT + manager.register_pass(std::vector{ + ngraph::element::i8, ngraph::element::u8, ngraph::element::i4, ngraph::element::u4 + }); +} + +// nGraph common transformations are happened here + +if (useLpt) { + // convert subtract constant to INT8 to prevent unnecessary conversion FP16 to FP32 + manager.register_pass(std::vector{ + ngraph::element::i8, ngraph::element::u8, ngraph::element::i4, ngraph::element::u4 }); +} + +// nGraph common transformations are happened here + +if (useLpt) { + // convert not supported cases FakeQuantize -> Convert -> Convert -> Subtract -> Multiply to a single FakeQuantize + pass_config->set_callback([](const std::shared_ptr &node) -> bool { + return ngraph::pass::low_precision::NetworkHelper::areQuantizeAndDequantizeSupportedForMultiply(node); + }); + + // convert not supported cases FakeQuantize -> Convert -> Convert -> Subtract -> Multiply to a single FakeQuantize + pass_config->set_callback([](const std::shared_ptr &node) -> bool { + return ngraph::pass::low_precision::NetworkHelper::areQuantizeAndDequantizeSupportedForSubtract(node); + }); +} + +manager.run_passes(nGraphFunc); +//! [lpt_common] + +//! [lpt_execution] +using namespace ngraph::pass::low_precision; +if (useLpt) { + // Low precision transformations plugin specific configuration: restrictions definition + auto supportedPrecisions = std::vector({ + OperationPrecisionRestriction::create({ + {0, {ngraph::element::u8}}, + {1, {ngraph::element::i8}}, + }), + OperationPrecisionRestriction::create({ + {0, {ngraph::element::u8, ngraph::element::i8}}, + {1, {ngraph::element::i8}} + }), + OperationPrecisionRestriction::create({ + {0, {ngraph::element::u8}}, + {1, {ngraph::element::i8}} + }), + OperationPrecisionRestriction::create({ + {0, {ngraph::element::u8}}, + {1, {ngraph::element::i8}}, + }), + }); + + // Low precision transformations plugin specific configuration: per tensor quantization operations definition + auto perTensorQuantization = std::vector({ + OperationPerTensorQuantizationRestriction::create({0}), + OperationPerTensorQuantizationRestriction::create({0}) + }); + + // Low precision transformations instantiation and registration in pass manager + ngraph::pass::Manager lptManager; + lptManager.register_pass(supportedPrecisions, perTensorQuantization); + + // Low precision transformations plugin specific configuration: transformation callbacks definition + lptManager.get_pass_config()->set_callback([](const std::shared_ptr& node) -> bool { + if (const auto multiply = std::dynamic_pointer_cast(node)) { + return !MultiplyToGroupConvolutionTransformation::canBeTransformedToGroupConvolution(multiply); + } + return false; + }); + lptManager.get_pass_config()->set_callback([](const std::shared_ptr& node) -> bool { + return LayerTransformation::isAsymmetricQuantization(node) || WeightableLayerTransformation::isAsymmetricOnWeights(node); + }); + lptManager.get_pass_config()->set_callback([](const std::shared_ptr& node) -> bool { + return MultiplyToGroupConvolutionTransformation::isDynamicOrScalar(node); + }); + + // Low precision transformations execution + lptManager.run_passes(nGraphFunc); +} +//! [lpt_execution] + +//! [lpt_device] +ngraph::pass::Manager deviceSpecificManager; +deviceSpecificManager.register_pass(); +deviceSpecificManager.run_passes(nGraphFunc); +//! [lpt_device] + +return 0; +} + +int lpt_supported_precisions() { +std::shared_ptr nGraphFunc; +ngraph::pass::Manager manager; + +using namespace ngraph::pass::low_precision; +//! [lpt_supported_precisions] +auto supportedPrecisions = std::vector({ + OperationPrecisionRestriction::create({ + {0, {ngraph::element::u8}}, + {1, {ngraph::element::i8}}, + }), +}); + +ngraph::pass::Manager lptManager; +lptManager.register_pass(supportedPrecisions); +lptManager.run_passes(nGraphFunc); +//! [lpt_supported_precisions] + +ngraph::pass::Manager deviceSpecificManager; +deviceSpecificManager.register_pass(); +deviceSpecificManager.run_passes(nGraphFunc); + +return 0; +} + +int per_tensor_quantization() { +std::shared_ptr nGraphFunc; +//! [per_tensor_quantization] +using namespace ngraph::pass::low_precision; + +const std::vector emptyRestrictions; + +auto perTensorQuantization = std::vector({ + OperationPerTensorQuantizationRestriction::create({0}) +}); + +ngraph::pass::Manager lptManager; +lptManager.register_pass(emptyRestrictions, perTensorQuantization); +lptManager.run_passes(nGraphFunc); +//! [per_tensor_quantization] + +return 0; +} + +int asymmetric_quantization() { +std::shared_ptr nGraphFunc; +ngraph::pass::Manager manager; +auto pass_config = manager.get_pass_config(); + + +//! [asymmetric_quantization] +using namespace ngraph::pass::low_precision; +ngraph::pass::Manager lptManager; +lptManager.register_pass(); +lptManager.get_pass_config()->set_callback([](const std::shared_ptr& node) -> bool { + return LayerTransformation::isAsymmetricQuantization(node) || WeightableLayerTransformation::isAsymmetricOnWeights(node); +}); +lptManager.run_passes(nGraphFunc); +//! [asymmetric_quantization] + +return 0; +} From 146b80c60296e5400276347c92b6b2e4e694d5e9 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Tue, 7 Sep 2021 11:16:26 +0300 Subject: [PATCH 02/19] 1) ToC was removed 2) SVG => PNG temporary conversion --- .../img/fq_and_convolution.common.png | 3 ++ .../img/fq_and_convolution.transformed.png | 3 ++ .../img/fq_fq_and_convolution.common.png | 3 ++ .../low_precision_transformation_pipeline.png | 3 ++ .../img/qdq_and_convolution.common.png | 3 ++ docs/low_precision_transformations/lpt.md | 43 +++++-------------- .../quantization/img/fq.common.png | 3 ++ .../quantization/img/fq.transformed.png | 3 ++ 8 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 docs/low_precision_transformations/img/fq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/img/fq_and_convolution.transformed.png create mode 100644 docs/low_precision_transformations/img/fq_fq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/img/low_precision_transformation_pipeline.png create mode 100644 docs/low_precision_transformations/img/qdq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/quantization/img/fq.common.png create mode 100644 docs/low_precision_transformations/quantization/img/fq.transformed.png diff --git a/docs/low_precision_transformations/img/fq_and_convolution.common.png b/docs/low_precision_transformations/img/fq_and_convolution.common.png new file mode 100644 index 00000000000000..d73a3733374e43 --- /dev/null +++ b/docs/low_precision_transformations/img/fq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd44f4cd86976092a61dbd9c4501b4824afecb8a8a2a8539f676a04b9cb6eb24 +size 129461 diff --git a/docs/low_precision_transformations/img/fq_and_convolution.transformed.png b/docs/low_precision_transformations/img/fq_and_convolution.transformed.png new file mode 100644 index 00000000000000..4e8f2442c90029 --- /dev/null +++ b/docs/low_precision_transformations/img/fq_and_convolution.transformed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99c75953f3d22783cd145a2ba628fce2063e008929dc4a1b8e7f2adab35a7f26 +size 138879 diff --git a/docs/low_precision_transformations/img/fq_fq_and_convolution.common.png b/docs/low_precision_transformations/img/fq_fq_and_convolution.common.png new file mode 100644 index 00000000000000..f446fdfd4db1fb --- /dev/null +++ b/docs/low_precision_transformations/img/fq_fq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e869642a3ffa9abf2901abd1df5f2afcbc1425ae0955e39bde0080821c0b7ff3 +size 124152 diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png new file mode 100644 index 00000000000000..079559ed36c89a --- /dev/null +++ b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb920acb9781c46471f60217afc9b99673a507a327fc600f0499ce058fd46e3b +size 176553 diff --git a/docs/low_precision_transformations/img/qdq_and_convolution.common.png b/docs/low_precision_transformations/img/qdq_and_convolution.common.png new file mode 100644 index 00000000000000..9112cbffab9f5f --- /dev/null +++ b/docs/low_precision_transformations/img/qdq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:847dfc9d1244cf12d217327b10bca47bb7868c9c2dfba8e1a59e9723d036c755 +size 183486 diff --git a/docs/low_precision_transformations/lpt.md b/docs/low_precision_transformations/lpt.md index be0fb889982760..d7edbbec87953e 100644 --- a/docs/low_precision_transformations/lpt.md +++ b/docs/low_precision_transformations/lpt.md @@ -1,26 +1,5 @@ # OpenVINOâ„¢ Low Precision Transformations {#openvino_docs_IE_DG_lpt} -## Table of Contents - -1. [Introduction](#introduction) -2. [Input model requirements](#input-model-requirements) -3. [Low precision tools](#low-precision-tools) -4. [Quantization approaches](#quantization-approaches) - 4.1. [FakeQuantize operation](#fakequantize-operation) - 4.2. [Quantize and dequantization operations](#quantize-and-dequantization-operations) -5. [Low precision transformations pipeline](#low-precision-transformations-pipeline) - 5.1. [Step #1. Prerequisites](#step-1-prerequisites) - 5.2. [Step #2. Markup](#step-2-markup) - 5.3. [Step #3. Main transformations: FakeQuantize decomposition and dequantization operations handling](#step-3-main-transformations-fakequantize-decomposition-and-dequantization-operations-handling) - 5.4. [Step #4. Cleanup result model](#step-4-cleanup-result-model) -6. [Low precision transformations in plugin transformation pipeline](#low-precision-transformations-in-plugin-transformation-pipeline) - [Step #1. Common optimizations](#step-1-common-optimizations) - [Step #2. Low precision transformations execution](#step-2-low-precision-transformations-execution) - [Step #3. Plugin specific transformations](#step-3-plugin-specific-transformations) -7. [Result model overview](#result-model-overview) -8. [Mixed precision](#mixed-precision) -9. [Customization](#customization) - ## Introduction The goal of `Low Precision Transformations` (LPT transformations) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: 1. `FakeQuantize` operation decomposition to two parts: @@ -68,7 +47,7 @@ If operation is not supported by LPT then dequantization operation will be not p For example, if you would like to infer `Convolution` operation in low precision then your model can look as on picture below: -![Quantized Convolution](img/fq_and_convolution.common.svg) +![Quantized Convolution](img/fq_and_convolution.common.png) > There are several supported quantization approaches on activations and on weights. All supported approaches are described in [Quantization approaches](#quantization-approaches) section below. In demonstrated model [FakeQuantize operation quantization](#fakequantize-operation) approach is used. @@ -88,12 +67,12 @@ Let's explore both approaches in details on `Convolution` operation. ### FakeQuantize operation In this case `FakeQuantize` operation is used on activations and quantized constant on weights. Original input model: -![](img/fq_and_convolution.common.svg) +![](img/fq_and_convolution.common.png) ### Quantize and dequantization operations In this case `FakeQuantize` operation and `Convert` are used as quantize operation and return quantized low precision tensor. After quantize operation on activations there are `Convert` and dequantization operations to compensate decomposition. Original input model: -![](img/qdq_and_convolution.common.svg) +![](img/qdq_and_convolution.common.png) In both cases result is the same. In LPT result model you can see, that: 1. if neccessary, `FakeQuantize` operations on activations were decomposed to two part: @@ -104,12 +83,12 @@ In both cases result is the same. In LPT result model you can see, that: LPT result model: -![](img/fq_and_convolution.transformed.svg) +![](img/fq_and_convolution.transformed.png) ### Low precision transformations pipeline LPT transformation pipeline has several steps. For each transformation inside one step pattern matcher is unique per transformation, but each operation can be assigned to several transformations. -![](img/low_precision_transformation_pipeline.svg) +![](img/low_precision_transformation_pipeline.png)
Click to explore all LPT transformations by steps in one table @@ -221,11 +200,11 @@ Decomposition transformations decompose `FakeQuantize` operation to quantize (`F Original `FakeQuantize`: -![FakeQuantize operation before LPT](quantization/img/fq.common.svg) +![FakeQuantize operation before LPT](quantization/img/fq.common.png) `FakeQuantize` after decomposition to quantization and dequantization operations: -![FakeQuantize operation after LPT](quantization/img/fq.transformed.svg) +![FakeQuantize operation after LPT](quantization/img/fq.transformed.png) #### Dequantization operations handling transformations @@ -233,19 +212,19 @@ Original `FakeQuantize`: In this step LPT transformations fuse or move dequantization operations through existing model operations as more as possible. Original `Convolution` operation in FP32 with dequantization operations before: -![Convolution operation before LPT](img/fq_and_convolution.common.svg) +![Convolution operation before LPT](img/fq_and_convolution.common.png) `Convolution` operation in INT8 after decomposition and dequantization operations handling: -![Convolution operation after LPT](img/fq_and_convolution.transformed.svg) +![Convolution operation after LPT](img/fq_and_convolution.transformed.png) ### Step #4: Cleanup result model LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. `FakeQuantize` operation with not handled dequantization operations: -![TODO: FakeQuantize operation with dequantization operations before LPT](quantization/img/fq.transformed.svg) +![TODO: FakeQuantize operation with dequantization operations before LPT](quantization/img/fq.transformed.png) `FakeQuantize` operation with fused dequantization operations: -![TODO: FakeQuantize operation with fused operations after LPT](quantization/img/fq.common.svg) +![TODO: FakeQuantize operation with fused operations after LPT](quantization/img/fq.common.png) diff --git a/docs/low_precision_transformations/quantization/img/fq.common.png b/docs/low_precision_transformations/quantization/img/fq.common.png new file mode 100644 index 00000000000000..7cacc57924a894 --- /dev/null +++ b/docs/low_precision_transformations/quantization/img/fq.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:288dec05908449cc3fa5e07700fac5cbdff17bb4b4035a4ee83c44cbc6c22c70 +size 59664 diff --git a/docs/low_precision_transformations/quantization/img/fq.transformed.png b/docs/low_precision_transformations/quantization/img/fq.transformed.png new file mode 100644 index 00000000000000..34967b7e05d46b --- /dev/null +++ b/docs/low_precision_transformations/quantization/img/fq.transformed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e345c0b2b5fe365ed298d40d3add4b06a8106096186f68dccb5131c01194e72 +size 102546 From bee2d42f3295c5c7e14987215c3c9eddc628bc4d Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Mon, 6 Sep 2021 17:08:04 +0300 Subject: [PATCH 03/19] [LPT] Refactoring + developer guide --- docs/doxygen/ie_docs.xml | 71 +++++- .../avg_pool_precision_preserved.md | 9 + .../attributes/intervals_alignment.md | 9 + .../attributes/per_tensor_quantization.md | 9 + .../attributes/precision_preserved.md | 9 + .../attributes/precisions.md | 9 + .../attributes/quantization_alignment.md | 9 + .../img/fq_and_convolution.common.png | 3 - .../img/fq_and_convolution.transformed.png | 3 - .../img/fq_fq_and_convolution.common.png | 3 - .../low_precision_transformation_pipeline.png | 4 +- .../low_precision_transformation_pipeline.svg | 2 +- .../img/model_fq_and_convolution.common.png | 3 + ...vg => model_fq_and_convolution.common.svg} | 0 .../model_fq_and_convolution.transformed.png | 3 + ... model_fq_and_convolution.transformed.svg} | 0 .../model_fq_fq_and_convolution.common.png | 3 + ...=> model_fq_fq_and_convolution.common.svg} | 0 .../img/model_qdq_and_convolution.common.png | 3 + ...g => model_qdq_and_convolution.common.svg} | 0 .../img/qdq_and_convolution.common.png | 3 - docs/low_precision_transformations/lpt.md | 207 +++++++++--------- .../lpt_attributes.md | 40 ++++ .../pipeline/img/step2_markup1.png | 3 + .../pipeline/img/step2_markup1.svg | 1 + .../pipeline/img/step2_markup2.png | 3 + .../pipeline/img/step2_markup2.svg | 1 + .../pipeline/img/step2_markup3.png | 3 + .../pipeline/img/step2_markup3.svg | 1 + .../pipeline/img/step2_markup4.png | 3 + .../pipeline/img/step2_markup4.svg | 1 + .../pipeline/img/step2_markup5.png | 3 + .../pipeline/img/step2_markup5.svg | 1 + .../pipeline/img/step2_markup6.png | 3 + .../pipeline/img/step2_markup6.svg | 1 + .../pipeline/img/step2_markup7.png | 3 + .../pipeline/img/step2_markup7.svg | 1 + .../pipeline/img/step2_markup_original.png | 3 + .../pipeline/img/step2_markup_original.svg | 1 + .../pipeline/img/step3_original.png | 3 + .../pipeline/img/step3_original.svg | 1 + .../pipeline/img/step3_transformed.png | 3 + .../pipeline/img/step3_transformed.svg | 1 + .../pipeline/step1_prerequisites.md | 6 + .../pipeline/step2_markup.md | 138 ++++++++++++ .../pipeline/step3_main.md | 49 +++++ .../pipeline/step4_cleanup.md | 8 + .../lin_op_sequence_fusion.md | 1 + .../pull_reshape_through_dequantization.md | 1 + .../pull_transpose_through_dequantization.md | 1 + .../align_quantization_intervals.md | 1 + .../align_quantization_parameters.md | 1 + .../step2_markup/create_attribute.md | 1 + .../create_precisions_dependent_attribute.md | 1 + .../markup_avg_pool_precision_preserved.md | 1 + .../step2_markup/markup_can_be_quantized.md | 1 + .../markup_per_tensor_quantization.md | 1 + .../step2_markup/markup_precisions.md | 1 + .../step2_markup/propagate_precisions.md | 1 + .../propagate_through_precision_preserved.md | 1 + .../step2_markup/propagate_to_input.md | 1 + .../update_shared_precision_preserved.md | 1 + .../step3_main/activation/clamp.md | 1 + .../step3_main/activation/prelu.md | 1 + .../step3_main/activation/relu.md | 1 + .../step3_main/arithmetic/add.md | 57 +++++ .../step3_main/arithmetic/img/add.common.png | 3 + .../step3_main/arithmetic/img/add.common.svg | 1 + .../arithmetic/img/add.transformed.png | 3 + .../arithmetic/img/add.transformed.svg | 1 + .../step3_main/arithmetic/multiply.md | 3 + .../step3_main/convolution/convolution.md | 32 +++ .../convolution/convolution_backprop_data.md | 1 + .../convolution/group_convolution.md | 1 + .../img/fq_and_convolution.common.png | 3 + .../img/fq_and_convolution.common.svg | 1 + .../img/fq_and_convolution.transformed.png | 3 + .../img/fq_and_convolution.transformed.svg | 1 + .../img/fq_fq_and_convolution.common.png | 3 + .../img/fq_fq_and_convolution.common.svg | 1 + .../step3_main/image/interpolate.md | 1 + .../step3_main/matrix/mat_mul.md | 1 + .../step3_main/movement/concat.md | 1 + .../step3_main/movement/depth_to_space.md | 1 + .../step3_main/movement/shuffle_channels.md | 1 + .../step3_main/movement/split.md | 1 + .../step3_main/movement/strided_slice.md | 1 + .../step3_main/movement/transpose.md | 1 + .../step3_main/movement/variadic_split.md | 1 + .../step3_main/normalization/mvn.md | 1 + .../step3_main/normalization/normalize_l2.md | 1 + .../step3_main/pooling/avg_pool.md | 1 + .../step3_main/pooling/max_pool.md | 1 + .../step3_main/quantization/fake_quantize.md | 1 + .../quantization/fold_fake_quantize.md | 1 + .../step3_main/reduction/reduce_max.md | 1 + .../step3_main/reduction/reduce_mean.md | 1 + .../step3_main/reduction/reduce_min.md | 1 + .../step3_main/reduction/reduce_sum.md | 1 + .../step3_main/shape/reshape.md | 1 + .../step3_main/shape/squeeze.md | 1 + .../step3_main/shape/unsqueeze.md | 1 + .../fake_quantize_decomposition.md | 1 + .../step4_cleanup/fold_convert.md | 1 + .../step4_cleanup/fuse_convert.md | 1 + .../fuse_multiply_to_fake_quantize.md | 1 + .../fuse_subtract_to_fake_quantize.md | 1 + .../multiply_to_group_convolution.md | 1 + docs/snippets/lpt_mkldnn_plugin.cpp | 29 +++ .../include/low_precision/add.hpp | 5 + .../align_quantization_intervals.hpp | 6 + .../align_quantization_parameters.hpp | 5 + .../include/low_precision/avg_pool.hpp | 4 + .../include/low_precision/clamp.hpp | 4 + .../include/low_precision/concat.hpp | 4 + .../convert_subtract_constant.hpp | 5 + .../include/low_precision/convolution.hpp | 4 + .../convolution_backprop_data.hpp | 4 + .../low_precision/create_attribute.hpp | 4 + .../create_precisions_dependent_attribute.hpp | 5 + .../include/low_precision/depth_to_space.hpp | 4 + .../eltwise_base_transformation.hpp | 4 + .../include/low_precision/fake_quantize.hpp | 4 + .../fake_quantize_decomposition.hpp | 5 + .../include/low_precision/fold_convert.hpp | 4 + .../low_precision/fold_fake_quantize.hpp | 4 + .../include/low_precision/fuse_convert.hpp | 4 + .../fuse_multiply_to_fake_quantize.hpp | 4 + .../fuse_subtract_to_fake_quantize.hpp | 4 + .../low_precision/group_convolution.hpp | 4 + .../include/low_precision/interpolate.hpp | 4 + .../low_precision/layer_transformation.hpp | 5 +- .../markup_avg_pool_precision_preserved.hpp | 4 + .../low_precision/markup_can_be_quantized.hpp | 6 + .../markup_per_tensor_quantization.hpp | 5 + .../low_precision/markup_precisions.hpp | 7 + .../include/low_precision/mat_mul.hpp | 4 + .../include/low_precision/max_pool.hpp | 4 + .../include/low_precision/multiply.hpp | 4 + .../multiply_to_group_convolution.hpp | 4 + .../include/low_precision/mvn.hpp | 4 + .../include/low_precision/normalize_l2.hpp | 4 + .../include/low_precision/pad.hpp | 4 + .../include/low_precision/prelu.hpp | 4 + .../low_precision/propagate_precisions.hpp | 4 + .../low_precision/propagate_shared_value.hpp | 5 + .../propagate_through_precision_preserved.hpp | 5 + .../low_precision/propagate_to_input.hpp | 5 + .../pull_reshape_through_dequantization.hpp | 5 + .../pull_transpose_through_dequantization.hpp | 5 + .../reduce_base_transformation.hpp | 10 +- .../include/low_precision/reduce_max.hpp | 4 + .../include/low_precision/reduce_mean.hpp | 4 + .../include/low_precision/reduce_min.hpp | 4 + .../include/low_precision/reduce_sum.hpp | 4 + .../include/low_precision/relu.hpp | 4 + .../include/low_precision/reshape.hpp | 4 + .../low_precision/shuffle_channels.hpp | 4 + .../include/low_precision/split.hpp | 4 + .../include/low_precision/squeeze.hpp | 4 + .../include/low_precision/strided_slice.hpp | 4 + .../include/low_precision/subtract.hpp | 4 + .../low_precision/transformation_context.hpp | 4 + .../transparent_base_transformation.hpp | 4 + .../include/low_precision/transpose.hpp | 4 + .../include/low_precision/unsqueeze.hpp | 4 + .../update_shared_precision_preserved.hpp | 7 +- .../include/low_precision/variadic_split.hpp | 4 + .../weightable_layer_transformation.hpp | 4 + 169 files changed, 978 insertions(+), 122 deletions(-) create mode 100644 docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md create mode 100644 docs/low_precision_transformations/attributes/intervals_alignment.md create mode 100644 docs/low_precision_transformations/attributes/per_tensor_quantization.md create mode 100644 docs/low_precision_transformations/attributes/precision_preserved.md create mode 100644 docs/low_precision_transformations/attributes/precisions.md create mode 100644 docs/low_precision_transformations/attributes/quantization_alignment.md delete mode 100644 docs/low_precision_transformations/img/fq_and_convolution.common.png delete mode 100644 docs/low_precision_transformations/img/fq_and_convolution.transformed.png delete mode 100644 docs/low_precision_transformations/img/fq_fq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/img/model_fq_and_convolution.common.png rename docs/low_precision_transformations/img/{fq_and_convolution.common.svg => model_fq_and_convolution.common.svg} (100%) create mode 100644 docs/low_precision_transformations/img/model_fq_and_convolution.transformed.png rename docs/low_precision_transformations/img/{fq_and_convolution.transformed.svg => model_fq_and_convolution.transformed.svg} (100%) create mode 100644 docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.png rename docs/low_precision_transformations/img/{fq_fq_and_convolution.common.svg => model_fq_fq_and_convolution.common.svg} (100%) create mode 100644 docs/low_precision_transformations/img/model_qdq_and_convolution.common.png rename docs/low_precision_transformations/img/{qdq_and_convolution.common.svg => model_qdq_and_convolution.common.svg} (100%) delete mode 100644 docs/low_precision_transformations/img/qdq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/lpt_attributes.md create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup1.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup1.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup2.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup2.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup3.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup3.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup4.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup4.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup5.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup5.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup6.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup6.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup7.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup7.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup_original.png create mode 100644 docs/low_precision_transformations/pipeline/img/step2_markup_original.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step3_original.png create mode 100644 docs/low_precision_transformations/pipeline/img/step3_original.svg create mode 100644 docs/low_precision_transformations/pipeline/img/step3_transformed.png create mode 100644 docs/low_precision_transformations/pipeline/img/step3_transformed.svg create mode 100644 docs/low_precision_transformations/pipeline/step1_prerequisites.md create mode 100644 docs/low_precision_transformations/pipeline/step2_markup.md create mode 100644 docs/low_precision_transformations/pipeline/step3_main.md create mode 100644 docs/low_precision_transformations/pipeline/step4_cleanup.md create mode 100644 docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md create mode 100644 docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md create mode 100644 docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/create_attribute.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md create mode 100644 docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/activation/clamp.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/activation/prelu.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/activation/relu.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png create mode 100644 docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg create mode 100644 docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png create mode 100644 docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg create mode 100644 docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png create mode 100644 docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg create mode 100644 docs/low_precision_transformations/transformations/step3_main/image/interpolate.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/concat.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/split.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/transpose.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/shape/reshape.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md create mode 100644 docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md create mode 100644 docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md create mode 100644 docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md create mode 100644 docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md create mode 100644 docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md create mode 100644 docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md create mode 100644 docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md diff --git a/docs/doxygen/ie_docs.xml b/docs/doxygen/ie_docs.xml index 6ce5419d8f1ca5..77a71cda73a74c 100644 --- a/docs/doxygen/ie_docs.xml +++ b/docs/doxygen/ie_docs.xml @@ -316,7 +316,76 @@ limitations under the License. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md new file mode 100644 index 00000000000000..07ec7c5d10fea7 --- /dev/null +++ b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md @@ -0,0 +1,9 @@ +# OpenVINOâ„¢ Low Precision Transformations: AvgPoolPrecisionPreserved {#openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved} + +Utility attribute which is used only during `AvgPool` operation precision preserved property definition. + +| Property name | Values | +|---------------|----------------------------------------------| +| Required | Yes | +| Defined | Operation | +| Properties | value (boolean) | \ No newline at end of file diff --git a/docs/low_precision_transformations/attributes/intervals_alignment.md b/docs/low_precision_transformations/attributes/intervals_alignment.md new file mode 100644 index 00000000000000..62c9ebf2acc0a1 --- /dev/null +++ b/docs/low_precision_transformations/attributes/intervals_alignment.md @@ -0,0 +1,9 @@ +# OpenVINOâ„¢ Low Precision Transformations: IntervalsAlignment {#openvino_docs_IE_DG_lpt_IntervalsAlignment} + +The attribute defines subgraph with the same quantization intervals alignment. `FakeQuantize` operations are included. The attribute is used by quantization operations. + +| Property name | Values | +|---------------|----------------------------------------------| +| Required | Yes | +| Defined | Operation | +| Properties | combined interval, minimal interval, minimal levels, preferable precisions | \ No newline at end of file diff --git a/docs/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/low_precision_transformations/attributes/per_tensor_quantization.md new file mode 100644 index 00000000000000..026d886b1ebf84 --- /dev/null +++ b/docs/low_precision_transformations/attributes/per_tensor_quantization.md @@ -0,0 +1,9 @@ +# OpenVINOâ„¢ Low Precision Transformations: PerTensorQuantization {#openvino_docs_IE_DG_lpt_PerTensorQuantization} + +The attribute defines if operation input port requires per-tensor quantization. + +| Property name | Values | +|---------------|----------------------------------------------| +| Required | Yes | +| Defined | Operation, input ports | +| Properties | | \ No newline at end of file diff --git a/docs/low_precision_transformations/attributes/precision_preserved.md b/docs/low_precision_transformations/attributes/precision_preserved.md new file mode 100644 index 00000000000000..cb46c12ca36055 --- /dev/null +++ b/docs/low_precision_transformations/attributes/precision_preserved.md @@ -0,0 +1,9 @@ +# OpenVINOâ„¢ Low Precision Transformations: PrecisionPreserved {#openvino_docs_IE_DG_lpt_PrecisionPreserved} + +The attribute defines precision preserved operation. If attribute is absent then an operation is not precision preserved. + +| Property name | Values | +|---------------|----------------------------------------------| +| Required | Yes | +| Defined | Operation | +| Properties | value (boolean) | \ No newline at end of file diff --git a/docs/low_precision_transformations/attributes/precisions.md b/docs/low_precision_transformations/attributes/precisions.md new file mode 100644 index 00000000000000..ef0b0f74ebd428 --- /dev/null +++ b/docs/low_precision_transformations/attributes/precisions.md @@ -0,0 +1,9 @@ +# OpenVINOâ„¢ Low Precision Transformations: Precisions {#openvino_docs_IE_DG_lpt_Precisions} + +The attribute defines precision which is required for input/output port or an operation. + +| Property name | Values | +|---------------|----------------------------------------------| +| Required | Yes | +| Defined | Operation, input port, output port | +| Properties | value (boolean) | \ No newline at end of file diff --git a/docs/low_precision_transformations/attributes/quantization_alignment.md b/docs/low_precision_transformations/attributes/quantization_alignment.md new file mode 100644 index 00000000000000..63dabfbdc1a8a7 --- /dev/null +++ b/docs/low_precision_transformations/attributes/quantization_alignment.md @@ -0,0 +1,9 @@ +# OpenVINOâ„¢ Low Precision Transformations: QuantizationAlignment {#openvino_docs_IE_DG_lpt_QuantizationAlignment} + +The attribute defines subgraph with the same quantization alignment. `FakeQuantize` operations are not included. The attribute is used by quantization operations. + +| Property name | Values | +|---------------|----------------------------------------------| +| Required | Yes | +| Defined | Operation | +| Properties | value (boolean) | \ No newline at end of file diff --git a/docs/low_precision_transformations/img/fq_and_convolution.common.png b/docs/low_precision_transformations/img/fq_and_convolution.common.png deleted file mode 100644 index d73a3733374e43..00000000000000 --- a/docs/low_precision_transformations/img/fq_and_convolution.common.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd44f4cd86976092a61dbd9c4501b4824afecb8a8a2a8539f676a04b9cb6eb24 -size 129461 diff --git a/docs/low_precision_transformations/img/fq_and_convolution.transformed.png b/docs/low_precision_transformations/img/fq_and_convolution.transformed.png deleted file mode 100644 index 4e8f2442c90029..00000000000000 --- a/docs/low_precision_transformations/img/fq_and_convolution.transformed.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99c75953f3d22783cd145a2ba628fce2063e008929dc4a1b8e7f2adab35a7f26 -size 138879 diff --git a/docs/low_precision_transformations/img/fq_fq_and_convolution.common.png b/docs/low_precision_transformations/img/fq_fq_and_convolution.common.png deleted file mode 100644 index f446fdfd4db1fb..00000000000000 --- a/docs/low_precision_transformations/img/fq_fq_and_convolution.common.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e869642a3ffa9abf2901abd1df5f2afcbc1425ae0955e39bde0080821c0b7ff3 -size 124152 diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png index 079559ed36c89a..be2d990da85013 100644 --- a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png +++ b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eb920acb9781c46471f60217afc9b99673a507a327fc600f0499ce058fd46e3b -size 176553 +oid sha256:2dd82c2747d7a37b5452c4a801977127765991c7a3c816a67d5a74883f23fa3b +size 387864 diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg index 1b4f84acd4a7f4..f2fe86d3196658 100644 --- a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg +++ b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg @@ -1 +1 @@ -Step #1PrerequisitesStep #2Markup transformationsStep #3Main transformationsStep #4Cleanup transformationsPullReshapeThroughDequantizationPullTransposeThroughDequantizationngraph::pass::LinOpSequenceFusionMarkupCanBeQuantizedMarkupPrecisionsMarkupPerTensorQuantizationMarkupAvgPoolPrecisionPreservedPropagatePrecisionsAlignQuantizationInttervalsAlignQuantizationParamtersAddTransformationAvgPoolTransformationClampTransformationConcatTransformationConvolutionTransformationConvolutionBackpropDataTransformationDepthToSpaceTransformationFakeQuantizeDecompositionTransformationFakeQuantizeTransformationInterpolateTransformationGroupConvolutionTransformationMatMulTransformationMaxPoolTransformationMultiplyTransformationMVNTransformationNormalizeL2TransformationPReluTransformationReduceMaxTransformationReduceMeanTransformationReduceMinTransformationReduceSumTransformationReluTransformationReshapeTransformationSqueezeTransformationShuffleChannelsTransformationSplitTransformationStridedSliceTransformationTransposeTransformationUnsqueezeTransformationVariadicSplitTransformationFoldConvertTransformationFuseConvertTransformationFuseSubtractToFakeQuantizeTransformationFuseMultiplyToFakeQuantizeTransformationMultiplyToGroupConvolutionTransformationSubtractMultiplyToMultiplyAddTransformationFoldFakeQuantizeTransformation \ No newline at end of file +Step #1PrerequisitesStep #2Markup transformationsStep #3Main transformationsStep #4Cleanup transformationsPullReshapeThroughDequantizationPullTransposeThroughDequantizationngraph::pass::LinOpSequenceFusionMarkupCanBeQuantizedMarkupPrecisionsMarkupPerTensorQuantizationMarkupAvgPoolPrecisionPreservedPropagatePrecisionsAlignQuantizationInttervalsAlignQuantizationParametersAddTransformationAvgPoolTransformationClampTransformationConcatTransformationConvolutionTransformationConvolutionBackpropDataTransformationDepthToSpaceTransformationFakeQuantizeDecompositionTransformationFakeQuantizeTransformationInterpolateTransformationGroupConvolutionTransformationMatMulTransformationMaxPoolTransformationMultiplyTransformationMVNTransformationNormalizeL2TransformationPReluTransformationReduceMaxTransformationReduceMeanTransformationReduceMinTransformationReduceSumTransformationReluTransformationReshapeTransformationSqueezeTransformationShuffleChannelsTransformationSplitTransformationStridedSliceTransformationTransposeTransformationUnsqueezeTransformationVariadicSplitTransformationFoldConvertTransformationFuseConvertTransformationFuseSubtractToFakeQuantizeTransformationFuseMultiplyToFakeQuantizeTransformationMultiplyToGroupConvolutionTransformationSubtractMultiplyToMultiplyAddTransformationFoldFakeQuantizeTransformation \ No newline at end of file diff --git a/docs/low_precision_transformations/img/model_fq_and_convolution.common.png b/docs/low_precision_transformations/img/model_fq_and_convolution.common.png new file mode 100644 index 00000000000000..37d7e97184a454 --- /dev/null +++ b/docs/low_precision_transformations/img/model_fq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1d9a68912b2dde17c731ed31b090077e6812a84231544ce3d212c0e02b13dfb +size 204085 diff --git a/docs/low_precision_transformations/img/fq_and_convolution.common.svg b/docs/low_precision_transformations/img/model_fq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/img/fq_and_convolution.common.svg rename to docs/low_precision_transformations/img/model_fq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/img/model_fq_and_convolution.transformed.png b/docs/low_precision_transformations/img/model_fq_and_convolution.transformed.png new file mode 100644 index 00000000000000..07fb2213a9076e --- /dev/null +++ b/docs/low_precision_transformations/img/model_fq_and_convolution.transformed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79b2fd14f9ff7655e4a5abe7e71748e153a095fe1f5eb07c168f53cb12fbb406 +size 216703 diff --git a/docs/low_precision_transformations/img/fq_and_convolution.transformed.svg b/docs/low_precision_transformations/img/model_fq_and_convolution.transformed.svg similarity index 100% rename from docs/low_precision_transformations/img/fq_and_convolution.transformed.svg rename to docs/low_precision_transformations/img/model_fq_and_convolution.transformed.svg diff --git a/docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.png b/docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.png new file mode 100644 index 00000000000000..e12e47a748b30f --- /dev/null +++ b/docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d3e9a9eddfdcd50eedb035c500848b982b9317ba23f28809a831bbe66300bec +size 167226 diff --git a/docs/low_precision_transformations/img/fq_fq_and_convolution.common.svg b/docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/img/fq_fq_and_convolution.common.svg rename to docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/img/model_qdq_and_convolution.common.png b/docs/low_precision_transformations/img/model_qdq_and_convolution.common.png new file mode 100644 index 00000000000000..e70b6f920e825c --- /dev/null +++ b/docs/low_precision_transformations/img/model_qdq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec31aa62c0e1da3caf1531f2d92270f321857aca3044445ec242f33ee224f91b +size 297353 diff --git a/docs/low_precision_transformations/img/qdq_and_convolution.common.svg b/docs/low_precision_transformations/img/model_qdq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/img/qdq_and_convolution.common.svg rename to docs/low_precision_transformations/img/model_qdq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/img/qdq_and_convolution.common.png b/docs/low_precision_transformations/img/qdq_and_convolution.common.png deleted file mode 100644 index 9112cbffab9f5f..00000000000000 --- a/docs/low_precision_transformations/img/qdq_and_convolution.common.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:847dfc9d1244cf12d217327b10bca47bb7868c9c2dfba8e1a59e9723d036c755 -size 183486 diff --git a/docs/low_precision_transformations/lpt.md b/docs/low_precision_transformations/lpt.md index d7edbbec87953e..f3445b13f5d280 100644 --- a/docs/low_precision_transformations/lpt.md +++ b/docs/low_precision_transformations/lpt.md @@ -1,7 +1,9 @@ # OpenVINOâ„¢ Low Precision Transformations {#openvino_docs_IE_DG_lpt} ## Introduction -The goal of `Low Precision Transformations` (LPT transformations) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: +`Low precision transformations` (known as `LPT`) are a set of nGraph transformations, which are combined in one library. The library is mandatory part of OpenVINO to infer quantized model in low precision with the maximum performance on Intel CPU, GPU and ARM platforms. The library includes more than 45 transformations and supports more then 30 operations. Some transformations are mandatory, some of them are optional and developed for specific device. + +The goal of `Low Precision Transformations` (`LPT`) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: 1. `FakeQuantize` operation decomposition to two parts: - part #1: quantize operation - new `FakeQuantize` operation with output quantization intervals in low precision range (signed int8: [-128, 127] or [-127, 127], unsigned int8: [0, 255] or [0, 256]) and with low precision output (`signed int8` or `unsigned int8`), - part #2: dequantization operations with low precision input and original precision output. @@ -13,41 +15,42 @@ How quantize a model in details you can explore in [Low precision tools](#low-pr ## Input model requirements -LPT transformations decompose `FakeQuantize` operations if `level` parameter is set to 255 or 256. LPT transformations propagate dequantization operations through follow operations: -* Add -* Avg -* Clamp -* Concat -* Convolution -* ConvolutionBackpropData -* DepthToSpace -* FakeQuantize -* GroupConvolution -* Interpolate -* MatMul -* MaxPool -* Multiply -* MVN -* NormalizeL2 -* PRelu -* ReduceMax -* ReduceMean -* ReduceMin -* ReduceSum -* Relu -* Reshape -* Split -* Squeeze -* StridedSlice -* Transpose -* Unsqueeze -* VariadicSplit - -If operation is not supported by LPT then dequantization operation will be not propagated, input tensor precisions will be not changed to low precision and operation will be executed in original precision. - -For example, if you would like to infer `Convolution` operation in low precision then your model can look as on picture below: - -![Quantized Convolution](img/fq_and_convolution.common.png) +LPT transformations propagate dequantization operations through follow operations: +* [Add-1](@ref openvino_docs_ops_arithmetic_Add_1) +* [AvgPool-1](@ref openvino_docs_ops_pooling_AvgPool_1) +* [Clamp-1](@ref openvino_docs_ops_activation_Clamp_1) +* [Concat-1](@ref openvino_docs_ops_movement_Concat_1) +* [Convolution-1](@ref openvino_docs_ops_convolution_Convolution_1) +* [ConvolutionBackpropData-1](@ref openvino_docs_ops_convolution_ConvolutionBackpropData_1) +* [DepthToSpace-1](@ref openvino_docs_ops_movement_DepthToSpace_1) +* [FakeQuantize-1](@ref openvino_docs_ops_quantization_FakeQuantize_1) +* [GroupConvolution-1](@ref openvino_docs_ops_convolution_GroupConvolution_1) +* [Interpolate-1](@ref openvino_docs_ops_image_Interpolate_1) +* [Interpolate-4](@ref openvino_docs_ops_image_Interpolate_4) +* [MatMul-1](@ref openvino_docs_ops_matrix_MatMul_1) +* [MaxPool-1](@ref openvino_docs_ops_pooling_MaxPool_1) +* [Multiply-1](@ref openvino_docs_ops_arithmetic_Multiply_1) +* [MVN-1](@ref openvino_docs_ops_normalization_MVN_1) +* [NormalizeL2-1](@ref openvino_docs_ops_normalization_NormalizeL2_1) +* [PRelu-1](@ref openvino_docs_ops_activation_PReLU_1) +* [ReduceMax-1](@ref openvino_docs_ops_reduction_ReduceMax_1) +* [ReduceMean-1](@ref openvino_docs_ops_reduction_ReduceMean_1) +* [ReduceMin-1](@ref openvino_docs_ops_reduction_ReduceMin_1) +* [ReduceSum-1](@ref openvino_docs_ops_reduction_ReduceSum_1) +* [Relu-1](@ref openvino_docs_ops_activation_ReLU_1) +* [Reshape-1](@ref openvino_docs_ops_shape_Reshape_1) +* [Split-1](@ref openvino_docs_ops_movement_Split_1) +* [Squeeze-1](@ref openvino_docs_ops_shape_Reshape_1) +* [StridedSlice-1](@ref openvino_docs_ops_movement_StridedSlice_1) +* [Transpose-1](@ref openvino_docs_ops_movement_Transpose_1) +* [Unsqueeze-1](@ref openvino_docs_ops_shape_Unsqueeze_1) +* [VariadicSplit-1](@ref openvino_docs_ops_movement_VariadicSplit_1) + +If operation is not supported by LPT then dequantization operation will not be propagated, input tensor precisions will not be changed to low precision and operation will be executed in original precision. + +For example, if you would like to infer a model with `Convolution` operation in low precision then the model can look as on picture below: + +![Quantized Convolution](img/model_fq_and_convolution.common.png) > There are several supported quantization approaches on activations and on weights. All supported approaches are described in [Quantization approaches](#quantization-approaches) section below. In demonstrated model [FakeQuantize operation quantization](#fakequantize-operation) approach is used. @@ -67,18 +70,18 @@ Let's explore both approaches in details on `Convolution` operation. ### FakeQuantize operation In this case `FakeQuantize` operation is used on activations and quantized constant on weights. Original input model: -![](img/fq_and_convolution.common.png) +![](img/model_fq_and_convolution.common.png) ### Quantize and dequantization operations In this case `FakeQuantize` operation and `Convert` are used as quantize operation and return quantized low precision tensor. After quantize operation on activations there are `Convert` and dequantization operations to compensate decomposition. Original input model: -![](img/qdq_and_convolution.common.png) +![](img/model_qdq_and_convolution.common.png) In both cases result is the same. In LPT result model you can see, that: -1. if neccessary, `FakeQuantize` operations on activations were decomposed to two part: +1. if necessary, `FakeQuantize` operations on activations were decomposed to two part: - new `FakeQuantize`operation with updated output intervals in low precision range and low precision output, - dequantization operations on activations; -2. if neccessary, existing `FakeQuantize` decomposition can be rework to get more optimal precision; +2. if necessary, existing `FakeQuantize` decomposition can be rework to get more optimal precision; 3. dequantization operations were propagated through `Convolution`. LPT result model: @@ -100,8 +103,8 @@ LPT transformation pipeline has several steps. For each transformation inside on | ngraph::pass::LinOpSequenceFusion | MarkupPerTensorQuantization | ClampTransformation | FuseSubtractToFakeQuantizeTransformation | | | MarkupAvgPoolPrecisionPreserved | ConcatTransformation | FuseMultiplyToFakeQuantizeTransformation | | | PropagatePrecisions | ConvolutionTransformation | MultiplyToGroupConvolutionTransformation | -| | AlignQuantizationInttervals | ConvolutionBackpropDataTransformation | SubtractMultiplyToMultiplyAddTransformation | -| | AlignQuantizationParamters | DepthToSpaceTransformation | FoldFakeQuantizeTransformation | +| | AlignQuantizationIntervals | ConvolutionBackpropDataTransformation | SubtractMultiplyToMultiplyAddTransformation | +| | AlignQuantizationParameters | DepthToSpaceTransformation | FoldFakeQuantizeTransformation | | | | FakeQuantizeDecompositionTransformation | | | | | FakeQuantizeTransformation | | | | | InterpolateTransformation | | @@ -130,70 +133,68 @@ LPT transformation pipeline has several steps. For each transformation inside on Inside each step LPT transformations handle input model operation by operation, applying transformation matching pattern for each transformation from the step to an operation, and execute transformation if pattern is matched. Decomposition transformation decomposes `FakeQuantize` to quantize and dequantization operations. Dequantization operations from previous transformation result is used for the current one and so on, until the end of the model is achieved. -As result, usually all operations are inferred by plugin in low precision. If plugin doesn't support an operation inference in low precision, then corresponding LPT transformation can be disabled, and input tensor precisions for the operation will be not changed. In this case the operation is inferred in the original precision. +As result, usually all operations are inferred by plugin in low precision. If plugin doesn't support an operation inference in low precision, then corresponding LPT transformation can be disabled, and input tensor precisions for the operation will not be changed. In this case the operation is inferred in the original precision. Low precision transformations pipeline includes four steps: -* Step #1: Prerequisites. -* Step #2: Markup transformations. -* Step #3: Main transformations: `FakeQuantize` decomposition and dequantization operations handling. -* Step #4: Cleanup transformations: cleanup result model. +* [Step #1: Prerequisites](@ref openvino_docs_IE_DG_lpt_step1_prerequisites) +* [Step #2: Markup transformations](@ref openvino_docs_IE_DG_lpt_step2_markup) +* [Step #3: Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main) +* [Step #4: Cleanup transformations](@ref openvino_docs_IE_DG_lpt_step4_cleanup) ### Step #1. Prerequisites This step fuses and propagates some operations in the model before run the next step. The step is required for OpenVINO plugins. Transformations: -* PullReshapeThroughDequantization -* PullTransposeThroughDequantization -* ngraph::pass::LinOpSequenceFusion +* [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) +* [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization) +* [LinOpSequenceFusion](@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion) -The model on this step is changed. +The model on this step is changed. There are more details in developer guide [Prerequisites transformations](@ref openvino_docs_IE_DG_lpt_step1_prerequisites). ### Step #2. Markup This step create runtime attributes for operations. Attributes will be used in next step. Transformations: -* MarkupCanBeQuantized -* MarkupPrecisions -* MarkupPerTensorQuantization -* MarkupAvgPoolPrecisionPreserved -* PropagatePrecisions -* AlignQuantizationInttervals -* AlignQuantizationParamters - -The model on this step is changed: only new attributes are added to some operations. - +* [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) +* [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) +* [MarkupPerTensorQuantization](@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization) +* [MarkupAvgPoolPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved) +* [PropagatePrecisions](@ref openvino_docs_IE_DG_lpt_PropagatePrecisions) +* [AlignQuantizationIntervals](@ref openvino_docs_IE_DG_lpt_AlignQuantizationIntervals) +* [AlignQuantizationParameters](@ref openvino_docs_IE_DG_lpt_AlignQuantizationParameters) +The model on this step is changed: only new attributes are added to some operations. There are more details in developer guide [Markup transformations](@ref openvino_docs_IE_DG_lpt_step2_markup). ### Step #3. Main transformations, FakeQuantize decomposition and dequantization operations handling This step has the most transformations. Transformations: -* AddTransformation -* AvgPoolTransformation -* ClampTransformation -* ConcatTransformation -* ConvolutionTransformation -* ConvolutionBackpropDataTransformation -* DepthToSpaceTransformation -* FakeQuantizeDecompositionTransformation -* FakeQuantizeTransformation -* InterpolateTransformation -* GroupConvolutionTransformation -* MatMulTransformation -* MaxPoolTransformation -* MultiplyTransformation -* MVNTransformation -* NormalizeL2Transformation -* PReluTransformation -* ReduceMaxTransformation -* ReduceMeanTransformation -* ReduceMinTransformation -* ReduceSumTransformation -* ReluTransformation -* ReshapeTransformation -* SqueezeTransformation -* ShuffleChannelsTransformation -* SplitTransformation -* StridedSliceTransformation -* TransposeTransformation -* UnsqueezeTransformation -* VariadicSplitTransformation - -Transformations from this step can be separated in two groups: decompostion transformation and dequantization operations handling. +* [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) +* [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) +* [ClampTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) +* [ConcatTransformation](@ref openvino_docs_IE_DG_lpt_ConcatTransformation) +* [ConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionTransformation) +* [ConvolutionBackpropDataTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation) +* [DepthToSpaceTransformation](@ref openvino_docs_IE_DG_lpt_DepthToSpaceTransformation) +* [FakeQuantizeDecompositionTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation) +* [FakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeTransformation) +* [InterpolateTransformation](@ref openvino_docs_IE_DG_lpt_InterpolateTransformation) +* [GroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_GroupConvolutionTransformation) +* [MatMulTransformation](@ref openvino_docs_IE_DG_lpt_MatMulTransformation) +* [MaxPoolTransformation](@ref openvino_docs_IE_DG_lpt_MaxPoolTransformation) +* [MultiplyTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyTransformation) +* [MVNTransformation](@ref openvino_docs_IE_DG_lpt_MVNTransformation) +* [NormalizeL2Transformation](@ref openvino_docs_IE_DG_lpt_NormalizeL2Transformation) +* [PReluTransformation](@ref openvino_docs_IE_DG_lpt_PReluTransformation) +* [ReduceMaxTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMaxTransformation) +* [ReduceMeanTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMeanTransformation) +* [ReduceMinTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMinTransformation) +* [ReduceSumTransformation](@ref openvino_docs_IE_DG_lpt_ReduceSumTransformation) +* [ReluTransformation](@ref openvino_docs_IE_DG_lpt_ReluTransformation) +* [ReshapeTransformation](@ref openvino_docs_IE_DG_lpt_ReshapeTransformation) +* [SqueezeTransformation](@ref openvino_docs_IE_DG_lpt_SqueezeTransformation) +* [ShuffleChannelsTransformation](@ref openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation) +* [SplitTransformation](@ref openvino_docs_IE_DG_lpt_SplitTransformation) +* [StridedSliceTransformation](@ref openvino_docs_IE_DG_lpt_StridedSliceTransformation) +* [TransposeTransformation](@ref openvino_docs_IE_DG_lpt_TransposeTransformation) +* [UnsqueezeTransformation](@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation) +* [VariadicSplitTransformation](@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation) + +Transformations from this step can be separated in two groups: decomposition transformation and dequantization operations handling. There are more details in developer guide [Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main). #### Decomposition transformations Decomposition transformations decompose `FakeQuantize` operation to quantize (`FakeQuantize` with low precision output) and dequantization operations (revers operations to quantize, with low precision input and original precision output). For dequantization operations LPT uses three operations: `Convert`, `Subtract` and `Multiply`. Element-wise operations `Subtract` and `Multiply` have constants on the second branches. If dequantization operations are not handled at the end of LPT pipeline, then they will be fused back to the `FakeQuantize`. @@ -212,13 +213,21 @@ Original `FakeQuantize`: In this step LPT transformations fuse or move dequantization operations through existing model operations as more as possible. Original `Convolution` operation in FP32 with dequantization operations before: -![Convolution operation before LPT](img/fq_and_convolution.common.png) +![Convolution operation before LPT](img/model_fq_and_convolution.common.png) `Convolution` operation in INT8 after decomposition and dequantization operations handling: -![Convolution operation after LPT](img/fq_and_convolution.transformed.png) +![Convolution operation after LPT](img/model_fq_and_convolution.transformed.png) ### Step #4: Cleanup result model -LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. +LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. Transformations: +* [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) +* [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) +* [FuseConvertTransformation](@ref openvino_docs_IE_DG_lpt_FuseConvertTransformation) +* [FuseMultiplyToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation) +* [FuseSubtractToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation) +* [MultiplyToGroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation) + +There are more details in developer guide [Cleanup transformations](@ref openvino_docs_IE_DG_lpt_step4_cleanup). `FakeQuantize` operation with not handled dequantization operations: ![TODO: FakeQuantize operation with dequantization operations before LPT](quantization/img/fq.transformed.png) @@ -288,7 +297,7 @@ available from the Inference Engine API. For example, the part of performance co | resnet\_model/add\_5/fq\_input\_1 | NOT\_RUN | FakeQuantize | undef | 0 | 0 | -> The `exeStatus` column of the table includes possible values: +> The `execStatus` column of the table includes possible values: > - `EXECUTED` - layer was executed by standalone primitive, > - `NOT_RUN` - layer was not executed by standalone primitive or was fused with another operation and executed in another layer primitive. > @@ -321,13 +330,13 @@ This option defines if operation supports per-tensor quantization only. The opti @snippet snippets/lpt_mkldnn_plugin.cpp per_tensor_quantization -In provided example in result model `Convolution` operations must have per-tensor quantization on input 0 (on acivations). +In provided example in result model `Convolution` operations must have per-tensor quantization on input 0 (on activations). ### Update precisions This option defines if each LPT transformation updates precision or not. The option value is boolean and is passed as `updatePrecisions` member of `LayerTransformation::Params` which is input argument for `LowPrecision` constructor. All transformations are affected. If `true` then low precision transformations update precisions to low precision and doesn't if `false`. Typically this option is used for plugin debugging. ### Typical customization use cases -Plugin specific customization can be implemented via nGraph transformation callbacks. For exmample: asymmetric quantization support can be easilly customizable via `LayerTransformation::isAsymmetricQuantization` and `WeightableLayerTransformation::isAsymmetricOnWeights` methods usage in callbacks. For example: +Plugin specific customization can be implemented via nGraph transformation callbacks. For example: asymmetric quantization support can be easily customizable via `LayerTransformation::isAsymmetricQuantization` and `WeightableLayerTransformation::isAsymmetricOnWeights` methods usage in callbacks. For example: @snippet snippets/lpt_mkldnn_plugin.cpp asymmetric_quantization diff --git a/docs/low_precision_transformations/lpt_attributes.md b/docs/low_precision_transformations/lpt_attributes.md new file mode 100644 index 00000000000000..aa5a0fddf571d8 --- /dev/null +++ b/docs/low_precision_transformations/lpt_attributes.md @@ -0,0 +1,40 @@ +# OpenVINOâ„¢ Low Precision Transformations: attributes {#openvino_docs_IE_DG_lpt_attributes} + +## Introduction + +| Name | Target | Required | Mutable | +|-------------------------------------------------------------------------------------|------------------------|----------|---------| +| [AvgPoolPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved) | Precision | No | Yes | +| [IntervalsAlignment](@ref openvino_docs_IE_DG_lpt_IntervalsAlignment) | Quantization interval | Yes | Yes | +| [PerTensorQuantization](@ref openvino_docs_IE_DG_lpt_PerTensorQuantization) | Precision | Yes | No | +| [PrecisionPreserved](@ref openvino_docs_IE_DG_lpt_PrecisionPreserved) | Precision | Yes | Yes | +| [Precisions](@ref openvino_docs_IE_DG_lpt_Precisions) | Precision | Yes | Yes | +| [QuantizationAlignment](@ref openvino_docs_IE_DG_lpt_QuantizationAlignment) | Quantization alignment | Yes | Yes | + +> `Target` attribute group defines attribute usage during model transformation for the best performance: +> - `Precision` - the attribute is used to define the most optimal output port precision. +> - `Quantization interval` - the attribute is used to define quantization interval. +> - `Quantization alignment` - the attribute is used to define quantization alignment: per-channel or per-tensor quantization. +> +> `Required` attribute group defines if attribute usage is required to get optimal model during transformation or not: +> - `Yes` - the attribute is used in low precision optimization which is used by all OpenVINO plugins. +> - `No` - the attribute is used in specific OpenVINO plugin. +> +> `Mutable` attribute group defines if transformation can update existing attribute or not: +> - `Yes` - the attribute can be updated by the next transformations in pipeline. But attribute update order is still important. +> - `No` - existing attribute can not be updated by the next transformation. Previous handled transformation has optimized model in accordance with current value. + +`FakeQuantize` decomposition is mandatory part of low precision transformations. Attributes which are used during decomposition are mandatory. Optional attributes are required for some operations only. + +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, please, the same type attribute instances can be created in different transformations. This approach is result of transformation single-responsibility principle. For example `Precision` attribute instances are created in `MarkupCanBeQuantized` and `MarkupPrecisions` transformations but the creation reason is different. \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup1.png b/docs/low_precision_transformations/pipeline/img/step2_markup1.png new file mode 100644 index 00000000000000..813625f420b01d --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a79d152dae50fd3afaa78d8e18de7d279bb1c79b3e4d5c68fffed52a7c51b18 +size 383875 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup1.svg b/docs/low_precision_transformations/pipeline/img/step2_markup1.svg new file mode 100644 index 00000000000000..21359eda17aea3 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup1.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convolution2{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: Precisions {precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup2.png b/docs/low_precision_transformations/pipeline/img/step2_markup2.png new file mode 100644 index 00000000000000..07a66e8c080f54 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:877171666a0120e0507b900e04a9a040a34bd92f1be9b906ce5af9642b5b1de2 +size 388880 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup2.svg b/docs/low_precision_transformations/pipeline/img/step2_markup2.svg new file mode 100644 index 00000000000000..42747f71f680e1 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup2.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: Precisions {precisions: {u8}}In1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: Precisions {precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup3.png b/docs/low_precision_transformations/pipeline/img/step2_markup3.png new file mode 100644 index 00000000000000..481b4d86bdd135 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1de684e554192b85c699a6f7b7e0a3f9863c55d93aede3b3a9fcd6e9255c0a3 +size 393432 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup3.svg b/docs/low_precision_transformations/pipeline/img/step2_markup3.svg new file mode 100644 index 00000000000000..5c2d39972bf221 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup3.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions {precisions: {u8}}in1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions {precisions: {}}in1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup4.png b/docs/low_precision_transformations/pipeline/img/step2_markup4.png new file mode 100644 index 00000000000000..9e262ee2d5c8a2 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7edfdb6e16f7c002f69a9682a0f6c10922d958ba4228db1b1e794afbe36cc77b +size 398944 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup4.svg b/docs/low_precision_transformations/pipeline/img/step2_markup4.svg new file mode 100644 index 00000000000000..6837c953a3c9b5 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup4.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions{precisions: {u8}}In1: Precisions{precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions{precisions: {}}In1: Precisions{precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup5.png b/docs/low_precision_transformations/pipeline/img/step2_markup5.png new file mode 100644 index 00000000000000..666ec8db6fd166 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cef7584b2ae82e0bbcdd36d0fe54f967afc6e7828c60a9232051d578c3b47e6 +size 475233 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup5.svg b/docs/low_precision_transformations/pipeline/img/step2_markup5.svg new file mode 100644 index 00000000000000..d23952d0433bd3 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup5.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256{f32} {1,3,299,299} Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299} Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299} Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}, Precisions {precisions: {u8}}{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions {precisions: {u8}}in1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions {precisions: {}}in1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup6.png b/docs/low_precision_transformations/pipeline/img/step2_markup6.png new file mode 100644 index 00000000000000..f1ee1cd4057201 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:093788a0decc92247b0c473314ba6b43d7ebf919e8ba28c628422e8e0d2fc52b +size 488509 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup6.svg b/docs/low_precision_transformations/pipeline/img/step2_markup6.svg new file mode 100644 index 00000000000000..ce9c24774508e4 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup6.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}{f32} {1,3,299,299} Precisions{precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}, PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299} Precisions{precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299} Precisions{precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}, PrecisionPreserved{value: true},Precisions{precisions: {u8}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}},AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}, Precisions{precisions: {u8}{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions{precisions: {u8}}In1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions{precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup7.png b/docs/low_precision_transformations/pipeline/img/step2_markup7.png new file mode 100644 index 00000000000000..04464b34fff843 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b7e746eb834cd3d1b638d84dba43317c6988f2a83e0b7bcf7585d80b580b712 +size 519897 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup7.svg b/docs/low_precision_transformations/pipeline/img/step2_markup7.svg new file mode 100644 index 00000000000000..1c1defa0356ad3 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup7.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions{precisions: {u8}},QuantizationAlignment{value: false}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions {precisions: {u8}},QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true}Precisions {precisions: {u8}}QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}Convolutionname: convolutionin0: {f32}[1,6,7,7]: PerTensorQuantization, Precisions {precisions: {u8}}in1: {f32}[9,6,1,1]: Precisions {precisions: {i8}}{f32} {1, 6, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup_original.png b/docs/low_precision_transformations/pipeline/img/step2_markup_original.png new file mode 100644 index 00000000000000..28608500f8ef47 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup_original.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4edd8311874fb9a3a22f650c40ee5a247fd89220d81e4a373850d0040b695b4 +size 351552 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg b/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg new file mode 100644 index 00000000000000..9f0d3495e50a7c --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convlution2{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step3_original.png b/docs/low_precision_transformations/pipeline/img/step3_original.png new file mode 100644 index 00000000000000..7c06e5b0f1f495 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step3_original.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06caa4dc97b00f150395abc230bc90822f3bfa4e0bb3b65019f111a5a40e1d1c +size 520155 diff --git a/docs/low_precision_transformations/pipeline/img/step3_original.svg b/docs/low_precision_transformations/pipeline/img/step3_original.svg new file mode 100644 index 00000000000000..69717ff6fce47d --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step3_original.svg @@ -0,0 +1 @@ +FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions{precisions: {u8}},QuantizationAlignment{value: false}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions {precisions: {u8}},QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true}Precisions {precisions: {u8}}QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}Convolutionname: convolutionin0: {f32}[1,6,7,7]: PerTensorQuantization, Precisions {precisions: {u8}}in1: {f32}[9,6,1,1]: Precisions {precisions: {i8}}{f32} {1, 6, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step3_transformed.png b/docs/low_precision_transformations/pipeline/img/step3_transformed.png new file mode 100644 index 00000000000000..cf65091c10b763 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step3_transformed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f19d8f068afa4aa62fc04cfa0d2678e6bfe3f90c164a08f588bff9685854030 +size 661189 diff --git a/docs/low_precision_transformations/pipeline/img/step3_transformed.svg b/docs/low_precision_transformations/pipeline/img/step3_transformed.svg new file mode 100644 index 00000000000000..3b90c028118784 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/img/step3_transformed.svg @@ -0,0 +1 @@ +Dequantizations on branch #2INT8 ConvolutionFakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [0.0]Constant{f32} {1, 1, 1, 1}value: [255.0]ResultConcatname: concat1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions{precisions: {u8}},QuantizationAlignment{value: false}{u8} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [64]Constant{f32} {1, 1, 1, 1}value: [192]FakeQuantizename: fakeQuantize3rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [0.0]Constant{f32} {1, 1, 1, 1}value: [255.0]ResultConcatname: concat2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions {precisions: {u8}},QuantizationAlignment{value: true}{u8} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true}Precisions {precisions: {u8}}QuantizationAlignment{value: true}{u8} {1, 6, 299, 299}Convolutionname: convolutionin0: {f32}[1,6,7,7]: PerTensorQuantization, Precisions {precisions: {u8}}in1: {f32}[9,6,1,1]: Precisions {precisions: {i8}}{f32} {1, 6, 299, 299}Constant{i8} {9, 6, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1}Dequantizations on branch #1Multiply{f32} {1, 6, 299, 299}Convert{f32} {1, 6, 299, 299}Constant{f32} {1, 6, 1, 1}Subtract{f32} {1, 6, 299, 299}Subtract{f32} {1, 6, 299, 299}Constant{u8} {1, 6, 1, 1}Constant{f32} {1, 6, 1, 1}Multiply{f32} {1, 6, 299, 299}Constant{f32} {1, 6, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {6, 1, 1, 1}Zero point on activationsZero point on weights \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/low_precision_transformations/pipeline/step1_prerequisites.md new file mode 100644 index 00000000000000..03d8fb18cc1c70 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/step1_prerequisites.md @@ -0,0 +1,6 @@ +# OpenVINOâ„¢ LPT: step #1. Prerequisites transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} + +Prerequisites transformations are optional. The goal is prepare a model before to run other low precision transformations. Transformations don't operate with dequantization operations, don't update precisions. Transformations: +* [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) +* [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization) +* [LinOpSequenceFusion](@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion) \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/step2_markup.md b/docs/low_precision_transformations/pipeline/step2_markup.md new file mode 100644 index 00000000000000..ffd3a6a0b1a09e --- /dev/null +++ b/docs/low_precision_transformations/pipeline/step2_markup.md @@ -0,0 +1,138 @@ +# OpenVINOâ„¢ LPT: step #2. Markup transformations {#openvino_docs_IE_DG_lpt_step2_markup} + +This step defines the most optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input & output ports and operations. Operation output port precisions are not changed in these transformations. Transformations order is important. A model markup low precision logic is decomposed and implemented into following common markup transformations (in usage order, order is important): +1. [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) +2. [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) +3. [MarkupPerTensorQuantization](@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization) +4. [MarkupAvgPoolPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved) +5. [PropagatePrecisions](@ref openvino_docs_IE_DG_lpt_PropagatePrecisions) +6. [AlignQuantizationIntervals](@ref openvino_docs_IE_DG_lpt_AlignQuantizationIntervals) +7. [AlignQuantizationParameters](@ref openvino_docs_IE_DG_lpt_AlignQuantizationParameters) + +
+Click to explore transformations and used attributes in one table + +| Transformation name | Create attributes | Use attributes | +|---------------------------------|-------------------------------|-------------------------------------------| +| MarkupCanBeQuantized | Precisions | | +| MarkupPrecisions | Precisions,PrecisionPreserved | | +| MarkupPerTensorQuantization | PerTensorQuantization | | +| MarkupAvgPoolPrecisionPreserved | AvgPoolPrecisionPreserved | Precisions, PrecisionPreserved | +| PropagatePrecisions | Precisions | Precisions, PrecisionPreserved | +| AlignQuantizationIntervals | IntervalsAlignment | PrecisionPreserved | +| AlignQuantizationParameters | QuantizationAlignment | PrecisionPreserved, PerTensorQuantization | + +
+ +Note, please, the same type attribute instances can be created in different transformations. This approach is result of transformation single-responsibility principle. For example `Precision` attribute instances are created in `MarkupCanBeQuantized` and `MarkupPrecisions` transformations but the creation reason is different. + +Common markup transformations can be decomposed to simpler utility markup transformations. Markup utility transformations (order is not important): +* [CreateAttribute](@ref openvino_docs_IE_DG_lpt_CreateAttribute) +* [CreatePrecisionsDependentAttribute](@ref openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute) +* [PropagateThroughPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved) +* [PropagateToInput](@ref openvino_docs_IE_DG_lpt_PropagateToInput) +* [UpdateSharedPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved) + +Let's explore all transformations and their relations in details on the same model: + +![](img/step2_markup_original.png) + +The original model key features: +* The first `concat1` concatenation operation has not quantized `convolution1` consumer. +* The second `concat2` concatenation operation has quantized `convolution2` consumer with requirements: 1) support `unsigned int8` on activations 2) per-tensor quantization. +* Between `concat2` concatenation operation and `Convolution` there is `AvgPool` operation which mathematically have to return `f32` tensor. But `MarkupAvgPoolPrecisionPreserved` transformation is active, which allows low precision after `AvgPool` transformation to propagate low precision tensor to the next consumer. + +Transformations are ran with parameters: + +@snippet snippets/lpt_mkldnn_plugin.cpp lpt_markup_pipeline + +## 1. MarkupCanBeQuantized +The transformation marks operations which can not be quantized. The transformation doesn't require any attributes before. + +Changes in example model after `MarkupCanBeQuantized` transformation: +* Not quantized `convolution1` operation is marked by `Precisions` attribute with empty values. This attribute allows to ignore not quantized operation by the next transformations. + +Result model: + +![MarkupCanBeQuantized](img/step2_markup1.png) + +> Model display features (here and below): +> 1. Added by current transformation attributes are marked in bold. +> 2. If attributes are not fit into one line, then one line consists only one attribute. + +## 2. MarkupPrecisions +The transformation is required and include two tasks: +1. Mark operation input ports (create `Precision` attribute instance) by provided restrictions: input port index and required precisions. Restrictions are provided as input argument in `ngraph::pass::low_precision::LowPrecision` constructor. +2. Mark precision preserved operations. + +The transformation doesn't require any attributes before. Changes in example model after `MarkupPrecisions` transformation: +* Both concatenation operations are marked as precision preserved operation. It allows to propagate precision via these operations. +* Quantized `convolution2` operation is marked by `Precisions` attribute with `u8` precision on activations and `i8` precisions on weights in accordance with provided restrictions. This attribute instance allows to specify which precisions are required for quantized `Convolution` operation. + +Result model: + +![MarkupPrecisions result](img/step2_markup2.png) + +## 3. MarkupPerTensorQuantization +The transformation is required and marks operations (create `PerTensorQuantization` attribute instance) by provided restrictions: operation which requires per-tensor quantization. The transformation doesn't require any attributes before. +Changes in example model after `MarkupPerTensorQuantization` transformation: +* both `Convolution` operations are marked by `PerTensorQuantization` + +Result model: + +![MarkupPerTensorQuantization result](img/step2_markup3.png) + +## 4. MarkupAvgPoolPrecisionPreserved +The transformation is optional. `MarkupAvgPoolPrecisionPreserved` marks `AvgPool` operations as precision preserved or not precision preserved. `AvgPool` operation is precision preserved if next not precision preserved operation can be inferred in low precision. In other words: `AvgPool` operations became precision preserved operations to speed up model inference. The transformation uses `PrecisionPreserved` attributes created before. The transformation is combined and uses: +* CreatePrecisionsDependentAttribute +* PropagateThroughPrecisionPreserved +* UpdateSharedPrecisionPreserved + +Changes in example model after `MarkupAvgPoolPrecisionPreserved` transformation: +* `AvgPool` operations are marked by `PrecisionPreserved` and `AvgPoolPrecisionPreserved` (not used below). + +Result model: + +![MarkupAvgPoolPrecisionPreserved](img/step2_markup4.png) + +## 5. PropagatePrecisions +The transformation is required. `PropagatePrecision` is a key transformation in markup pipeline which marks `FakeQuantize` output port precisions. The transformation uses `PrecisionPreserved` attribute instances which are created before. The transformation is combined and uses: +* CreateAttribute +* PropagateThroughPrecisionPreserved +* PropagateToInput + +Changes in example model after `PropagatePrecisions` transformation: +* All precision preserved operations are marked by `Precisions` attribute instance which defines required precision for the operation. +* `FakeQuantize` operation output ports are marked by `Precisions` attribute instances which defines target precision for decomposition. In sample model `FakeQuantize` operations have signed intervals but `Precisions` attributes initialized by `u8` (`unsigned int8`) values as result applied during transformations restrictions for `Convolution` operations. + +Result model: + +![PropagatePrecisions](img/step2_markup5.png) + +> `AlignQuantizationIntervals` and `AlignQuantizationParameters` transformations are required if model has quantized concatenation operations. + +## 6. AlignQuantizationIntervals +The transformation is required for models with quantized operation. The transformation marks `FakeQuantize` operation and precision preserved consumers to combine quantization information from different `FakeQuantize` operations for future quantization intervals alignment. The transformation is combined and uses: +* CreateAttribute +* PropagateThroughPrecisionPreserved + +Changes in example model after `AlignQuantizationIntervals` transformation: +* All `FakeQuantize` operation and theirs precision preserved consumers are marked by `IntervalsAlignment` attribute instance. + +Result model: + +![AlignQuantizationIntervals](img/step2_markup6.png) + +## 7. AlignQuantizationParameters +The transformation is required for models with quantized concatenation operation. The transformation marks `FakeQuantize` precision preserved consumers to align quantization intervals. The transformation is combined and uses: +* CreateAttribute +* PropagateThroughPrecisionPreserved +* UpdateSharedPrecisionPreserved + + +Changes in example model after `AlignQuantizationParameters` transformation: +* All `FakeQuantize` precision preserved consumers are marked by `QuantizationAlignment` attribute instance. `convolution1` input ports are marked by `Precisions` attribute instances with empty precisions collection. As result `convolution1` operation was detected as not quantized and `QuantizationAlignment` attribute default value `false` was not changed. `convolution2` input ports are marked by `Precisions` attribute instances with not empty precisions collection. As result `convolution2` operation was detected as quantized with `PerTensorQuantization` attribute and `QuantizationAlignment` attribute default value was changed to `true`. + +Final model: + +![AlignQuantizationParameters](img/step2_markup7.png) diff --git a/docs/low_precision_transformations/pipeline/step3_main.md b/docs/low_precision_transformations/pipeline/step3_main.md new file mode 100644 index 00000000000000..a42b9fff22d406 --- /dev/null +++ b/docs/low_precision_transformations/pipeline/step3_main.md @@ -0,0 +1,49 @@ +# OpenVINOâ„¢ LPT: step #3. Main transformations {#openvino_docs_IE_DG_lpt_step3_main} + +Main transformations are the most part of low precision transformations. Transformations operate with dequantization operations. Transformations: +* [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) +* [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) +* [ClampTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) +* [ConcatTransformation](@ref openvino_docs_IE_DG_lpt_ConcatTransformation) +* [ConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionTransformation) +* [ConvolutionBackpropDataTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation) +* [DepthToSpaceTransformation](@ref openvino_docs_IE_DG_lpt_DepthToSpaceTransformation) +* [FakeQuantizeDecompositionTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation) +* [FakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeTransformation) +* [InterpolateTransformation](@ref openvino_docs_IE_DG_lpt_InterpolateTransformation) +* [GroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_GroupConvolutionTransformation) +* [MatMulTransformation](@ref openvino_docs_IE_DG_lpt_MatMulTransformation) +* [MaxPoolTransformation](@ref openvino_docs_IE_DG_lpt_MaxPoolTransformation) +* [MultiplyTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyTransformation) +* [MVNTransformation](@ref openvino_docs_IE_DG_lpt_MVNTransformation) +* [NormalizeL2Transformation](@ref openvino_docs_IE_DG_lpt_NormalizeL2Transformation) +* [PReluTransformation](@ref openvino_docs_IE_DG_lpt_PReluTransformation) +* [ReduceMaxTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMaxTransformation) +* [ReduceMeanTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMeanTransformation) +* [ReduceMinTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMinTransformation) +* [ReduceSumTransformation](@ref openvino_docs_IE_DG_lpt_ReduceSumTransformation) +* [ReluTransformation](@ref openvino_docs_IE_DG_lpt_ReluTransformation) +* [ReshapeTransformation](@ref openvino_docs_IE_DG_lpt_ReshapeTransformation) +* [SqueezeTransformation](@ref openvino_docs_IE_DG_lpt_SqueezeTransformation) +* [ShuffleChannelsTransformation](@ref openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation) +* [SplitTransformation](@ref openvino_docs_IE_DG_lpt_SplitTransformation) +* [StridedSliceTransformation](@ref openvino_docs_IE_DG_lpt_StridedSliceTransformation) +* [TransposeTransformation](@ref openvino_docs_IE_DG_lpt_TransposeTransformation) +* [UnsqueezeTransformation](@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation) +* [VariadicSplitTransformation](@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation) + +Let's explore some main transformations on example model. Original model: + +![Original model](img/step3_original.png) + +Result model after main transformations: + +![Original model](img/step3_transformed.png) + +Changes in example model after main transformation: +* All `FakeQuantize` operations (`fakeQuantize1`, `fakeQuantize2` and `fakeQuantize3`) were decomposed: + - original `FakeQuantize` operations were replaced with new operations with other output intervals and output port precision, + - dequantization operations. +* Dequantization operations were 'moved' via precision preserved (`concat1` and `concat2`) and quantized operations (`convolution2`) + +> Note, left branch (branch #1) doesn't required per-tensor quantization. As result, `fakeQuantize1` output interval is [0, 255]. But quantized `convolution2` required per-tensor quantization on the right branch (branch #2). As result, all connected `FakeQuantize` interval operations (`fakeQuantize1` and `fakeQuantize2`) are aligned to have per-tensor quantization after concatenation (`concat2`) operation. \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/step4_cleanup.md b/docs/low_precision_transformations/pipeline/step4_cleanup.md new file mode 100644 index 00000000000000..6ffd0db25168bd --- /dev/null +++ b/docs/low_precision_transformations/pipeline/step4_cleanup.md @@ -0,0 +1,8 @@ +# OpenVINOâ„¢ LPT: step #4. Cleanup transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} + +* [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) +* [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) +* [FuseConvertTransformation](@ref openvino_docs_IE_DG_lpt_FuseConvertTransformation) +* [FuseMultiplyToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation) +* [FuseSubtractToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation) +* [MultiplyToGroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation) \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md b/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md new file mode 100644 index 00000000000000..dae36f020c0684 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: LinOpSequenceFusion {#openvino_docs_IE_DG_lpt_LinOpSequenceFusion} diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md new file mode 100644 index 00000000000000..72c7134d95bc16 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: PullReshapeThroughDequantization {#openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization} diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md new file mode 100644 index 00000000000000..a341d8287db537 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: PullTransposeThroughDequantization {#openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization} diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md new file mode 100644 index 00000000000000..4ae73a923529c0 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationIntervals {#openvino_docs_IE_DG_lpt_AlignQuantizationIntervals} \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md new file mode 100644 index 00000000000000..bb72371bd356f3 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationParameters {#openvino_docs_IE_DG_lpt_AlignQuantizationParameters} \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md b/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md new file mode 100644 index 00000000000000..320a4c26a94f0d --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: CreateAttribute {#openvino_docs_IE_DG_lpt_CreateAttribute} diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md b/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md new file mode 100644 index 00000000000000..5870d43be2ed64 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: CreatePrecisionsDependentAttribute {#openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute} diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md new file mode 100644 index 00000000000000..dc2ca3c217005c --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MarkupAvgPoolPrecisionPreserved {#openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved} diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md b/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md new file mode 100644 index 00000000000000..e404f68cf87120 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MarkupCanBeQuantized {#openvino_docs_IE_DG_lpt_MarkupCanBeQuantized} \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md b/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md new file mode 100644 index 00000000000000..9ef649a9fa5818 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MarkupPerTensorQuantization {#openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization} diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md b/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md new file mode 100644 index 00000000000000..9609dc718b5905 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MarkupPrecisions {#openvino_docs_IE_DG_lpt_MarkupPrecisions} diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md new file mode 100644 index 00000000000000..1da2e6d9d14d77 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: PropagatePrecisions {#openvino_docs_IE_DG_lpt_PropagatePrecisions} diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md new file mode 100644 index 00000000000000..d3f306d32f0721 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: PropagateThroughPrecisionPreserved {#openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved} diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md new file mode 100644 index 00000000000000..7146608be7dbe9 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: PropagateToInput {#openvino_docs_IE_DG_lpt_PropagateToInput} diff --git a/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md new file mode 100644 index 00000000000000..5d01c76c51a928 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: UpdateSharedPrecisionPreserved {#openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved} diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md b/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md new file mode 100644 index 00000000000000..dccf867695fc18 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ClampTransformation {#openvino_docs_IE_DG_lpt_ClampTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md b/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md new file mode 100644 index 00000000000000..b81481475b69de --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: PReluTransformation {#openvino_docs_IE_DG_lpt_PReluTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/relu.md b/docs/low_precision_transformations/transformations/step3_main/activation/relu.md new file mode 100644 index 00000000000000..378fe3105e3c64 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/activation/relu.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ReluTransformation {#openvino_docs_IE_DG_lpt_ReluTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md new file mode 100644 index 00000000000000..df2570bbffe6f6 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md @@ -0,0 +1,57 @@ +# OpenVINOâ„¢ Low Precision Transformations: AddTransformation {#openvino_docs_IE_DG_lpt_AddTransformation} + +ngraph::pass::low_precision::AddTransformation class represents `Add` operation low precision transformation. + +The transformation propagates dequantization subtraction from one input branch to another and propagates dequantization multiplication from the same branch through `Add` operation. In transformation result, one `Add` operation input branch is in low precision without dequantization operations (empty branch), another input branch is in original precision with updated dequantization operations (full branch). + +Empty branch selection criteria step by step (by priority): + +*Step #1.* If one branch is quantized only, then the quantized branch is empty branch. + +*Step #2.* If only one branch has `FakeQuantize` before dequantization operations, then another branch is empty branch. + +*Step #3.* If some `FakeQuantize` has more then one consumers and another only one, then the branch with `FakeQuantize` with several consumers is empty branch. + +*Step #4.* Constant branch is in original precision, data branch is empty branch. In this case dequantization operations are propagated to constant branch and will be fused in one constant. + +*Step #5.* If both branches before `FakeQuantize` have operations from the list: `Convolution`, `GroupConvolution` and `MatMul`, or both branches before `FakeQuantize` don't have any operations from the same list, then the branch with larger shape volume is empty branch. + +*Step #6.* If in some branch an operation before `FakeQuantize` has several consumers then the branch is empty. + +If dequantization operations on the full branch have `FakeQuantize` operation parent, then they will be fused with `FakeQuantize` during another low precision transformations. If `FakeQuantize` operation has a parent operation from the list: `Convolution`, `GroupConvolution` and `MatMul`, then during inference the `FakeQuantize` can be inferred in one plugin kernel with the parent operation. + +Depending on the plugin instruction set, low precision inference for `Add` operation can be implemented in two logical steps in one plugin kernel: + + * Inference step #1: Operations in the full branch (for example: `Convolution` and `FakeQuantize` with fused dequantization operations) and `Add` can be inferred in original precision. + + * Inference step #2: Inference step #1 result can be added with empty branch tensor in low precision. + +This approach allows to infer `Add` operation in the most optimal way. + +## Subgraph before transformation +The subgraph with quantized `Add` operation before transformation: + +\f[ +y_{ch,i}=(scale1_{ch} * (x1_{ch,i} - shift1_{ch})) + (scale2_{ch} * (x2_{ch,i} - shift2_{ch})) +\f] + +![Add before](img/add.common.png) + +## Subgraph after transformation +The subgraph with `Add` operation after the transformation: + +\f[ +y_{ch,i}=scale2_{ch} * (scale1_{ch}' * (x1_{ch,i} - shift1_{ch}') + x2_{ch,i}) +\f] + +where: + +\f[ +scale1_{ch}' = scale1_{ch} / scale2_{ch} +\f] + +\f[ +shift1_{ch}' = shift1_{ch} + scale2_{ch} * shift2_{ch} / scale1_{ch} +\f] + +![Add before](img/add.transformed.png) \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png new file mode 100644 index 00000000000000..7d05063836fc04 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8d3621c4be5d3382cb164a19676253412f85b5f47fac27b024c726f1571647e +size 380663 diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg new file mode 100644 index 00000000000000..ee254a66659b18 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg @@ -0,0 +1 @@ +QuantizeQuantizeDequantization on activationsMultiply{f32} {1, 3, 299, 299}Convert{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}Subtract{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}Dequantization on activationsMultiply{f32} {1, 3, 299, 299}Convert{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}Subtract{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}Add{f32} {1, 3, 299, 299}INT8 Convolution with zero pointSubtract{f32} {1, 3, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{i8} {6, 3, 1, 1}Constant{u8} {}Subtract{f32} {1, 3, 299, 299}Constant{i8} {6, 1, 1, 1}FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [0.0]Constant{f32} {1, 1, 1, 1}value: [255.0]Add{f32} {1, 3, 299, 299}FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [0.0]Constant{f32} {1, 1, 1, 1}value: [255.0]Branch#2Branch#1 \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png new file mode 100644 index 00000000000000..16a5cc7f127803 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff2d26dc0b86f339458a2fafbbd6a88daf3d3dc6fcefb636243f42a6e91bc328 +size 492066 diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg new file mode 100644 index 00000000000000..6c7fc6b7b5f41b --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg @@ -0,0 +1 @@ +Dequantization on activationsQuantizeQuantizeDequantization on activationsMultiply{f32} {1, 3, 299, 299}Convert{f32} {1, 3, 299, 299}Constant{f32} {1, 3, 1, 1}Subtract{f32} {1, 3, 299, 299}Constant{f32} {1, 3, 1, 1}Add{f32} {1, 3, 299, 299}INT8 Convolution with zero pointSubtract{f32} {1, 3, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{i8} {6, 3, 1, 1}Constant{u8} {}Subtract{f32} {1, 3, 299, 299}Constant{i8} {6, 1, 1, 1}FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [0.0]Constant{f32} {1, 1, 1, 1}value: [255.0]Add{f32} {1, 3, 299, 299}FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{u8} {1, 3, 299, 299}Precisions {precisions: {u8}}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [0.0]Constant{f32} {1, 1, 1, 1}value: [255.0]Branch#2Branch#1Multiply{f32} {1, 3, 299, 299}Constant{f32} {1, 3, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md new file mode 100644 index 00000000000000..2daf456643b970 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md @@ -0,0 +1,3 @@ +# OpenVINOâ„¢ Low Precision Transformations: MultiplyTransformation {#openvino_docs_IE_DG_lpt_MultiplyTransformation} + +ngraph::pass::low_precision::MultiplyTransformation class represents `Multiply` operation low precision transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md new file mode 100644 index 00000000000000..aa1a0958f428cc --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md @@ -0,0 +1,32 @@ +# OpenVINOâ„¢ Low Precision Transformations: ConvolutionTransformation {#openvino_docs_IE_DG_lpt_ConvolutionTransformation} + +The transformation propagate dequantization operations on activations and on weights through `Convolution` operation. The transformation supports several weights quantization approaches: +* quantized weights in low precision with dequantization operations, +* weights in original precision with `FakeQuantize` operation. + +Result dequantization `Multiply` constant value *result* is calculated as multiplication for dequantization `Multiply` constant value on activations *a* and dequantization `Multiply` constant value on weights *b* : + +\f[ +result_{i} = a_{i} \cdot b_{i} +\f] + +## Limitations +* `Subtract` dequantization operations on activations and weights are not propagated and . +* Dequantization on activations have to be per-tensor. It means that dequantization `Multiply` constant value on activations has to be scalar. + +## Subgraph before transformation + +### Quantized weights in low precision with dequantization operations +The subgraph with quantized `Convolution` before transformation with quantized weights in low precision constant and dequantization operations: + +![Convolution before](img/fq_and_convolution.common.png) + +### Weights in original precision with FakeQuantize operation +The subgraph with quantized `Convolution` before transformation with weights in original precision and `FakeQuantize` operation: + +![Convolution before](img/fq_fq_and_convolution.common.png) + +## Subgraph after transformation +The subgraph with `Convolution` operation after the transformation: + +![Convolution after](img/fq_and_convolution.transformed.png) \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md new file mode 100644 index 00000000000000..1f984bcc780d0c --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ConvolutionBackpropDataTransformation {#openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md new file mode 100644 index 00000000000000..d8f082d5a61c5b --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: GroupConvolutionTransformation {#openvino_docs_IE_DG_lpt_GroupConvolutionTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png new file mode 100644 index 00000000000000..7b686f72935d8e --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e5bfd5ca52ea6660e0ff67afefc98d64941eab6e8b464116242a6e044f318f5 +size 207602 diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg new file mode 100644 index 00000000000000..f45ca77e426854 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg @@ -0,0 +1 @@ +FP32 Convolution with quantized weightsQuantized weightsDequantization on activationsConvolution{f32} {1, 6, 299, 299}Constant{i8} {6, 3, 1, 1}Dequantization on weightsMultiply{f32} {6, 3, 1, 1}Convert{f32} {6, 3, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {6, 3, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1}Multiply{f32} {1, 3, 299, 299}Convert{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}Subtract{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png new file mode 100644 index 00000000000000..63fa693e6b0a76 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:756c225ee8e1da046e0210bf0696185b3939378f10b4ed6d757e43070d379436 +size 135804 diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg new file mode 100644 index 00000000000000..57bab915e3ac3b --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg @@ -0,0 +1 @@ +DequantizationINT8 Convolution with zero pointSubtract{f32} {1, 3, 299, 299}Multiply{f32} {1, 6, 299, 299}Convolution{f32} {1, 6, 299, 299}Constant{i8} {6, 3, 1, 1}Constant{u8} {}Constant{f32} {1, 6, 1, 1}Subtract{f32} {1, 3, 299, 299}Constant{i8} {6, 1, 1, 1}Zero point on activationsZero point on weights \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png new file mode 100644 index 00000000000000..b887ab2b7642b1 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08d4116490ab329636fced24c292636fbe00856976b19e5219e433bc2c6e4e16 +size 190590 diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg new file mode 100644 index 00000000000000..c475faa62ac6b7 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg @@ -0,0 +1 @@ +FP32 Convolution with quantized weightsNot quantized weights in original precisionConvolution{f32} {1, 6, 299, 299}FakeQuantizelevels: 255{f32} {6, 3, 299, 299}Constant{f32} {6, 3, 1, 1}Constant{f32} {1, 1, 1, 1}Value: [-12.8]Constant{f32} {1, 1, 1, 1}Value: [12.7]Constant{f32} {1, 1, 1, 1}Value: [-12.8]Constant{f32} {1, 1, 1, 1}Value: [12.7]Dequantization on activationsMultiply{f32} {1, 3, 299, 299}Convert{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}Subtract{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md b/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md new file mode 100644 index 00000000000000..1159413827ed7a --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: InterpolateTransformation {#openvino_docs_IE_DG_lpt_InterpolateTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md b/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md new file mode 100644 index 00000000000000..39675443de4cc1 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MatMulTransformation {#openvino_docs_IE_DG_lpt_MatMulTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/concat.md b/docs/low_precision_transformations/transformations/step3_main/movement/concat.md new file mode 100644 index 00000000000000..57739bc3bc53f4 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/concat.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ConcatTransformation {#openvino_docs_IE_DG_lpt_ConcatTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md b/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md new file mode 100644 index 00000000000000..e4270a58427f2c --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: DepthToSpaceTransformation {#openvino_docs_IE_DG_lpt_DepthToSpaceTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md b/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md new file mode 100644 index 00000000000000..d79cda0d163d14 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ShuffleChannelsTransformation {#openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/split.md b/docs/low_precision_transformations/transformations/step3_main/movement/split.md new file mode 100644 index 00000000000000..e0095b4b3233c2 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/split.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: SplitTransformation {#openvino_docs_IE_DG_lpt_SplitTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md b/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md new file mode 100644 index 00000000000000..9c53b5ec74936b --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: StridedSliceTransformation {#openvino_docs_IE_DG_lpt_StridedSliceTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md b/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md new file mode 100644 index 00000000000000..6b0046e202039b --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: TransposeTransformation {#openvino_docs_IE_DG_lpt_TransposeTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md b/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md new file mode 100644 index 00000000000000..3eaaff0c42508c --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: VariadicSplitTransformation {#openvino_docs_IE_DG_lpt_VariadicSplitTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md b/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md new file mode 100644 index 00000000000000..d366da1065a8b5 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MVNTransformation {#openvino_docs_IE_DG_lpt_MVNTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md b/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md new file mode 100644 index 00000000000000..1e6ade2e9b2bd8 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: NormalizeL2Transformation {#openvino_docs_IE_DG_lpt_NormalizeL2Transformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md b/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md new file mode 100644 index 00000000000000..8f83b13997734d --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: AvgPoolTransformation {#openvino_docs_IE_DG_lpt_AvgPoolTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md b/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md new file mode 100644 index 00000000000000..a7180809ca202a --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MaxPoolTransformation {#openvino_docs_IE_DG_lpt_MaxPoolTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md b/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md new file mode 100644 index 00000000000000..9d79c84d800e67 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FakeQuantizeTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md b/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md new file mode 100644 index 00000000000000..bb270489a97326 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FoldFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md new file mode 100644 index 00000000000000..f49d8856af29eb --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ReduceMaxTransformation {#openvino_docs_IE_DG_lpt_ReduceMaxTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md new file mode 100644 index 00000000000000..0cbbb7414342fe --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ReduceMeanTransformation {#openvino_docs_IE_DG_lpt_ReduceMeanTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md new file mode 100644 index 00000000000000..dce8c328441710 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ReduceMinTransformation {#openvino_docs_IE_DG_lpt_ReduceMinTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md new file mode 100644 index 00000000000000..bab335d0f9d3c4 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ReduceSumTransformation {#openvino_docs_IE_DG_lpt_ReduceSumTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md b/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md new file mode 100644 index 00000000000000..6594980e7c1f84 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: ReshapeTransformation {#openvino_docs_IE_DG_lpt_ReshapeTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md b/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md new file mode 100644 index 00000000000000..e877bef28de374 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: SqueezeTransformation {#openvino_docs_IE_DG_lpt_SqueezeTransformation} diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md b/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md new file mode 100644 index 00000000000000..a6a6a47603ac03 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: UnsqueezeTransformation {#openvino_docs_IE_DG_lpt_UnsqueezeTransformation} diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md b/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md new file mode 100644 index 00000000000000..8dc01bb9aabde5 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FakeQuantizeDecompositionTransformation {#openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation} diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md b/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md new file mode 100644 index 00000000000000..c99f8a815125dd --- /dev/null +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FoldConvertTransformation {#openvino_docs_IE_DG_lpt_FoldConvertTransformation} diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md new file mode 100644 index 00000000000000..744d25709fdd19 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FuseConvertTransformation {#openvino_docs_IE_DG_lpt_FuseConvertTransformation} diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md new file mode 100644 index 00000000000000..62e7b6cb3da661 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FuseMultiplyToFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation} diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md new file mode 100644 index 00000000000000..7c0f38c07789ae --- /dev/null +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: FuseSubtractToFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation} diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md b/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md new file mode 100644 index 00000000000000..64dd7b9d414e20 --- /dev/null +++ b/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md @@ -0,0 +1 @@ +# OpenVINOâ„¢ Low Precision Transformations: MultiplyToGroupConvolutionTransformation {#openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation} diff --git a/docs/snippets/lpt_mkldnn_plugin.cpp b/docs/snippets/lpt_mkldnn_plugin.cpp index bc6463f03cd6dc..dc4af73d9146f7 100644 --- a/docs/snippets/lpt_mkldnn_plugin.cpp +++ b/docs/snippets/lpt_mkldnn_plugin.cpp @@ -190,3 +190,32 @@ lptManager.run_passes(nGraphFunc); return 0; } + +int lpt_markup_pipeline() { +std::shared_ptr nGraphFunc; +ngraph::pass::Manager manager; + +using namespace ngraph::pass::low_precision; +//! [lpt_markup_pipeline] +auto supportedPrecisions = std::vector({ + OperationPrecisionRestriction::create({ + {0, {ngraph::element::u8}}, + {1, {ngraph::element::i8}}, + }), +}); + +auto perTensorQuantization = std::vector({ + OperationPerTensorQuantizationRestriction::create({0}) +}); + +ngraph::pass::Manager lptManager; +lptManager.register_pass(supportedPrecisions, perTensorQuantization); +lptManager.run_passes(nGraphFunc); +//! [lpt_markup_pipeline] + +ngraph::pass::Manager deviceSpecificManager; +deviceSpecificManager.register_pass(); +deviceSpecificManager.run_passes(nGraphFunc); + +return 0; +} diff --git a/src/common/low_precision_transformations/include/low_precision/add.hpp b/src/common/low_precision_transformations/include/low_precision/add.hpp index 92caba9f382a5f..d25aa28800e6be 100644 --- a/src/common/low_precision_transformations/include/low_precision/add.hpp +++ b/src/common/low_precision_transformations/include/low_precision/add.hpp @@ -11,6 +11,11 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief AddTransformation propagates dequantization subtraction from one input branch to another and + * propagates dequantization multiplication from the same branch through Add operation. + */ class LP_TRANSFORMATIONS_API AddTransformation : public EltwiseBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp b/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp index 87befcfd24fe82..f94df876513cd5 100644 --- a/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp +++ b/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp @@ -18,6 +18,12 @@ class LP_TRANSFORMATIONS_API AlignQuantizationIntervals; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief AlignQuantizationIntervals transformation marks precision preserved operations subgraph by `IntervalsAlignmentAttribute` + * after FakeQuantize + * operations. + */ class ngraph::pass::low_precision::AlignQuantizationIntervals : public ngraph::pass::FunctionPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp b/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp index 1b354c5fd5c3f1..d177ff46647458 100644 --- a/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp +++ b/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp @@ -19,6 +19,11 @@ class LP_TRANSFORMATIONS_API AlignQuantizationParameters; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief AlignQuantizationParameters transformation marks precision preserved operations subgraph by `QuantizationAlignmentAttribute` + * attribute after FakeQuantize operations. + */ class ngraph::pass::low_precision::AlignQuantizationParameters : public ngraph::pass::FunctionPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp b/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp index 12d5eaf7e2abe2..4e6c2eea6f5aa8 100644 --- a/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp +++ b/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief AvgPoolTransformation propagates dequantization operations through AvgPool operation. + */ class LP_TRANSFORMATIONS_API AvgPoolTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/clamp.hpp b/src/common/low_precision_transformations/include/low_precision/clamp.hpp index a3cf76a1284470..16acc6683978d5 100644 --- a/src/common/low_precision_transformations/include/low_precision/clamp.hpp +++ b/src/common/low_precision_transformations/include/low_precision/clamp.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ClampTransformation propagates dequantization operations through Clamp operation. + */ class LP_TRANSFORMATIONS_API ClampTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/concat.hpp b/src/common/low_precision_transformations/include/low_precision/concat.hpp index c1f752972ad3cc..12267bae6aa889 100644 --- a/src/common/low_precision_transformations/include/low_precision/concat.hpp +++ b/src/common/low_precision_transformations/include/low_precision/concat.hpp @@ -19,6 +19,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ConcatTransformation propagates dequantization operations through Concat operation. + */ class LP_TRANSFORMATIONS_API ConcatTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp b/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp index f9584eb6842e60..1b43090254109a 100644 --- a/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp +++ b/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp @@ -20,6 +20,11 @@ class LP_TRANSFORMATIONS_API ConvertSubtractConstant; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief ConvertSubtractConstant marks Convert operations on constant subgraph by DISABLED_CONSTANT_FOLDING attribute + * to prevent constant folding. + */ class ngraph::pass::low_precision::ConvertSubtractConstant : public ngraph::pass::MatcherPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/convolution.hpp b/src/common/low_precision_transformations/include/low_precision/convolution.hpp index b49fcc89c4aee4..495d155c7713b4 100644 --- a/src/common/low_precision_transformations/include/low_precision/convolution.hpp +++ b/src/common/low_precision_transformations/include/low_precision/convolution.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ConvolutionTransformation propagates dequantization operations through Convolution operation. + */ class LP_TRANSFORMATIONS_API ConvolutionTransformation : public WeightableLayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp b/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp index a1176e71efffc7..bb22a392d49d2f 100644 --- a/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp +++ b/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ConvolutionBackpropDataTransformation propagates dequantization operations through ConvolutionBackpropData operation. + */ class LP_TRANSFORMATIONS_API ConvolutionBackpropDataTransformation : public WeightableLayerTransformation { public: ConvolutionBackpropDataTransformation(const Params& params = Params()); diff --git a/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp index c7b7c4688262d5..c9a991de9e7a2d 100644 --- a/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp @@ -31,6 +31,10 @@ enum class AttributeSource { OutputPort }; +/** + * @ingroup ie_transformation_common_api + * @brief CreateAttribute transformation marks OperationType operations by AttributeType attribute. + */ template class ngraph::pass::low_precision::CreateAttribute : public ngraph::pass::low_precision::BaseMatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp index 2e05cc85761fa4..490015b1f3dc11 100644 --- a/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp @@ -29,6 +29,11 @@ class CreatePrecisionsDependentAttribute; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief CreatePrecisionsDependentAttribute transformation marks OperationType operations by + * PrecisionPreservedAttribute and AttributeType attributes with the same shared part. + */ template class ngraph::pass::low_precision::CreatePrecisionsDependentAttribute : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp b/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp index 5a199454eb6f0e..015319d6accc8a 100644 --- a/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp +++ b/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp @@ -10,6 +10,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief DepthToSpaceTransformation propagates dequantization operations through DepthToSpace operation. + */ class LP_TRANSFORMATIONS_API DepthToSpaceTransformation : public TransparentBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/eltwise_base_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/eltwise_base_transformation.hpp index c648d6efadc4b0..312dd5af31a16c 100644 --- a/src/common/low_precision_transformations/include/low_precision/eltwise_base_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/eltwise_base_transformation.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief EltwiseBaseTransformation is base class for element-wise LPT transformations. + */ class LP_TRANSFORMATIONS_API EltwiseBaseTransformation : public LayerTransformation { public: EltwiseBaseTransformation(const Params& params) : LayerTransformation(params) {} diff --git a/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp index 6a3f84b6b4cfe7..78400a5148555d 100644 --- a/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp @@ -13,6 +13,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FakeQuantizeTransformation fuses dequantization operations into FakeQuantize operation. + */ class LP_TRANSFORMATIONS_API FakeQuantizeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp b/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp index 45948ca32b72ad..f4f56a5b7b2bb9 100644 --- a/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp @@ -13,6 +13,11 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FakeQuantizeDecompositionTransformation decomposes FakeQuantize operations to quantize + * (FakeQuantize with changes output intervals and low precision output type) and dequantize operations. + */ class LP_TRANSFORMATIONS_API FakeQuantizeDecompositionTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp b/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp index 4390b7290e2f60..1911151c6df8a9 100644 --- a/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FoldConvertTransformation evaluates Convert operation on Subtract constant subgraph. + */ class LP_TRANSFORMATIONS_API FoldConvertTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp index 7f2862fc942288..d1be45afb0e2f3 100644 --- a/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FoldFakeQuantizeTransformation evaluate FakeQuantize operations. + */ class LP_TRANSFORMATIONS_API FoldFakeQuantizeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp index 4ccc59808ad129..58a7c431e56f8b 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FuseConvertTransformation fuses Convert operation with Multiply, Subtract or Add operations. + */ class LP_TRANSFORMATIONS_API FuseConvertTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp index d43aa87441eb29..aa2b42e39e6e7e 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FuseMultiplyToFakeQuantizeTransformation fuses Multiply operation to FakeQuantize. + */ class LP_TRANSFORMATIONS_API FuseMultiplyToFakeQuantizeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp index 80d6f22f785eff..241b4b69338397 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief FuseSubtractToFakeQuantizeTransformation fuses Subtract operation to FakeQuantize. + */ class LP_TRANSFORMATIONS_API FuseSubtractToFakeQuantizeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp b/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp index b54921faf69a01..ae01a040131de4 100644 --- a/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp +++ b/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief GroupConvolutionTransformation propagates dequantization operations through GroupConvolution operation. + */ class LP_TRANSFORMATIONS_API GroupConvolutionTransformation : public ConvolutionTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/interpolate.hpp b/src/common/low_precision_transformations/include/low_precision/interpolate.hpp index 9d454e59542dd8..73f597bd81108b 100644 --- a/src/common/low_precision_transformations/include/low_precision/interpolate.hpp +++ b/src/common/low_precision_transformations/include/low_precision/interpolate.hpp @@ -10,6 +10,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief InterpolateTransformation propagates dequantization operations through Interpolate operation. + */ class LP_TRANSFORMATIONS_API InterpolateTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp index dfd87cac8a4b05..55282694ed4eaf 100644 --- a/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp @@ -192,7 +192,10 @@ inline std::ostream &operator << (std::ostream &os, const DataPrecision& value) return os; } -// Base class for all LP transformations, holds some common data structures +/** + * @ingroup ie_transformation_common_api + * @brief Base class for low precision transformation. + */ class LP_TRANSFORMATIONS_API LayerTransformation : public ngraph::pass::MatcherPass { static std::vector defaultPrecisions; static std::mutex defaultPrecisionsMutex; diff --git a/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp b/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp index eaa9e7878c907d..2e1f66bd2d7329 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp @@ -18,6 +18,10 @@ class LP_TRANSFORMATIONS_API MarkupAvgPoolPrecisionPreserved; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief MarkupAvgPoolPrecisionPreserved transformation marks AvgPool operations as precision preserved or not. + */ class ngraph::pass::low_precision::MarkupAvgPoolPrecisionPreserved : public ngraph::pass::FunctionPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp b/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp index 7e11d856e97464..a7842ff47c412c 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp @@ -18,6 +18,12 @@ class LP_TRANSFORMATIONS_API MarkupCanBeQuantized; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief MarkupCanBeQuantized transformation marks Convolution, ConvolutionBackpropData, GroupConvolution and Concat + * operations as can be quantized or not. If an operation is not quantized, then PrecisionsAttribute attribute instance + * is created with empty precisions. + */ class ngraph::pass::low_precision::MarkupCanBeQuantized : public ngraph::pass::FunctionPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp b/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp index 5cdbe43d018121..64a69858dc1597 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp @@ -22,6 +22,11 @@ class LP_TRANSFORMATIONS_API MarkupPerTensorQuantization; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief MarkupPerTensorQuantization transformation marks operations as required pre-tensor quantization in accordance with + * provided restrictions. + */ class ngraph::pass::low_precision::MarkupPerTensorQuantization : public ngraph::pass::FunctionPass { public: class PerTensorQuantization { diff --git a/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp b/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp index 4e5b484f7c4692..fc9a7a0a87c50d 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp @@ -23,6 +23,13 @@ class LP_TRANSFORMATIONS_API MarkupPrecisions; } // namespace ngraph // Transformation is used to add customization options runtime +/** + * @ingroup ie_transformation_common_api + * @brief MarkupPrecisions transformation marks: + * 1) not supported operations by PrecisionsAttribute attribute with empty precisions, + * 2) operations with required precisions by PrecisionsAttribute attribute in accordance with provided restrictions, + * 3) precision preserved operations by PrecisionPreservedAttribute attribute. + */ class ngraph::pass::low_precision::MarkupPrecisions : public ngraph::pass::FunctionPass { public: class Restriction { diff --git a/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp b/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp index 067f82ea59b28b..929052e8532f67 100644 --- a/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp +++ b/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief MatMulTransformation propagates dequantization operations through MatMul operation. + */ class LP_TRANSFORMATIONS_API MatMulTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/max_pool.hpp b/src/common/low_precision_transformations/include/low_precision/max_pool.hpp index ca2b8a08272817..216d5eb90c8d49 100644 --- a/src/common/low_precision_transformations/include/low_precision/max_pool.hpp +++ b/src/common/low_precision_transformations/include/low_precision/max_pool.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief MaxPoolTransformation propagates dequantization operations through MaxPool operation. + */ class LP_TRANSFORMATIONS_API MaxPoolTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/multiply.hpp b/src/common/low_precision_transformations/include/low_precision/multiply.hpp index fee17230569c7b..7cd9fe945d8b5c 100644 --- a/src/common/low_precision_transformations/include/low_precision/multiply.hpp +++ b/src/common/low_precision_transformations/include/low_precision/multiply.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief MultiplyTransformation propagates dequantization operations through Multiply operation. + */ class LP_TRANSFORMATIONS_API MultiplyTransformation : public EltwiseBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp b/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp index 5e6bd900d8ea9e..12d9c09cc12e82 100644 --- a/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp +++ b/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp @@ -13,6 +13,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief MultiplyToGroupConvolutionTransformation replace quantized Multiply operations to GroupConvolution to speed up inference. + */ class LP_TRANSFORMATIONS_API MultiplyToGroupConvolutionTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/mvn.hpp b/src/common/low_precision_transformations/include/low_precision/mvn.hpp index 42ddd6f0b620a1..44a99f69b42b68 100644 --- a/src/common/low_precision_transformations/include/low_precision/mvn.hpp +++ b/src/common/low_precision_transformations/include/low_precision/mvn.hpp @@ -10,6 +10,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief MVNTransformation propagates dequantization operations through MVN operation. + */ class LP_TRANSFORMATIONS_API MVNTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp b/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp index 88a113cb38a49d..31c48d521f9e39 100644 --- a/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp +++ b/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp @@ -10,6 +10,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief NormalizeL2Transformation propagates dequantization operations through NormalizeL2 operation. + */ class LP_TRANSFORMATIONS_API NormalizeL2Transformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/pad.hpp b/src/common/low_precision_transformations/include/low_precision/pad.hpp index 66691f3871ac0a..f005f6eb12efb2 100644 --- a/src/common/low_precision_transformations/include/low_precision/pad.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pad.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief PadTransformation propagates dequantization operations through Pad operation. + */ class LP_TRANSFORMATIONS_API PadTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/prelu.hpp b/src/common/low_precision_transformations/include/low_precision/prelu.hpp index e58d4b25615752..cb5b1177451bed 100644 --- a/src/common/low_precision_transformations/include/low_precision/prelu.hpp +++ b/src/common/low_precision_transformations/include/low_precision/prelu.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief PReluTransformation propagates dequantization operations through PRelu operation. + */ class LP_TRANSFORMATIONS_API PReluTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp index 5ed4f929026ce7..8708973960727d 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp @@ -22,6 +22,10 @@ class LP_TRANSFORMATIONS_API PropagatePrecisions; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief PropagatePrecisions transformation propagates PrecisionsAttribute attribute instances precision preserved operations. + */ class ngraph::pass::low_precision::PropagatePrecisions : public ngraph::pass::FunctionPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp index 3f05c0b3bf2929..2e368e229dd0a1 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp @@ -27,6 +27,11 @@ class LP_TRANSFORMATIONS_API PropagateSharedValue; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief PropagateSharedValue transformation propagates shared value AttributeType attribute instances + * through precision preserved operations. + */ template class ngraph::pass::low_precision::PropagateSharedValue : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp index 844e23bfb95ecc..3d0addfeec289c 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp @@ -27,6 +27,11 @@ class PropagateThroughPrecisionPreserved; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief PropagateThroughPrecisionPreserved transformation propagates AttributeType attribute instances + * through precision preserved operations. + */ template class ngraph::pass::low_precision::PropagateThroughPrecisionPreserved : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp index 42f840c1573b8d..496b44c424c235 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp @@ -26,6 +26,11 @@ class PropagateToInput; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief PropagateToInput transformation propagates AttributeType shared value attribute instances + * from parent output ports to consumers input ports. + */ template class ngraph::pass::low_precision::PropagateToInput : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp b/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp index e8bc2add659a39..f66e187c551784 100644 --- a/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp @@ -19,6 +19,11 @@ class LP_TRANSFORMATIONS_API PullReshapeThroughDequantization; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief PullReshapeThroughDequantization propagates dequantization operations through Reshape operations. + * The transformation is used on constant subgraph on weights to prepare a model for next low precision transformations. + */ class ngraph::pass::low_precision::PullReshapeThroughDequantization : public ngraph::pass::MatcherPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp b/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp index f9d957389e6e5a..54f8578508e294 100644 --- a/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp @@ -19,6 +19,11 @@ class LP_TRANSFORMATIONS_API PullTransposeThroughDequantization; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief PullTransposeThroughDequantization propagates dequantization operations through Transpose operations. + * The transformation is used on constant subgraph on weights to prepare a model for next low precision transformations. + */ class ngraph::pass::low_precision::PullTransposeThroughDequantization : public ngraph::pass::MatcherPass { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_base_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_base_transformation.hpp index 0b9782e4eb207a..26c5eb340db074 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_base_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_base_transformation.hpp @@ -13,11 +13,11 @@ namespace pass { namespace low_precision { /** -* @brief ReduceBaseTransformation: base class for Reduce*Transformation -* detects dequantization operations in front of the Reduce* layer and -* propagates them through the Reduce* if possible -* -*/ + * @ingroup ie_transformation_common_api + * @brief ReduceBaseTransformation: base class for Reduce*Transformation, + * detects dequantization operations in front of the Reduce* operation and + * propagates them through the Reduce* if possible. + */ class LP_TRANSFORMATIONS_API ReduceBaseTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp index b9c2b98253ef82..a5d2feb5fe755d 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp @@ -14,6 +14,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ReduceMaxTransformation propagates dequantization operations through ReduceMax operation. + */ class LP_TRANSFORMATIONS_API ReduceMaxTransformation : public ReduceBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp index 31f542a37548b2..82edc5213f5892 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp @@ -14,6 +14,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ReduceMeanTransformation propagates dequantization operations through ReduceMean operation. + */ class LP_TRANSFORMATIONS_API ReduceMeanTransformation : public ReduceBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp index e4ccdeab97e74a..077c5d4d70ba41 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp @@ -14,6 +14,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ReduceMinTransformation propagates dequantization operations through ReduceMin operation. + */ class LP_TRANSFORMATIONS_API ReduceMinTransformation : public ReduceBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp index 82e8dd2888321f..35a1ac64692f0d 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp @@ -14,6 +14,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ReduceSumTransformation propagates dequantization operations through ReduceSum operation. + */ class LP_TRANSFORMATIONS_API ReduceSumTransformation : public ReduceBaseTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/relu.hpp b/src/common/low_precision_transformations/include/low_precision/relu.hpp index 1f7489a73d8337..1cfe662fb210d2 100644 --- a/src/common/low_precision_transformations/include/low_precision/relu.hpp +++ b/src/common/low_precision_transformations/include/low_precision/relu.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ReluTransformation propagates dequantization operations through Relu operation. + */ class LP_TRANSFORMATIONS_API ReluTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/reshape.hpp b/src/common/low_precision_transformations/include/low_precision/reshape.hpp index cb1b3a28456f03..bb4b9753d04381 100644 --- a/src/common/low_precision_transformations/include/low_precision/reshape.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reshape.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ReshapeTransformation propagates dequantization operations through Reshape operation. + */ class LP_TRANSFORMATIONS_API ReshapeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp b/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp index ab28d754598e67..b4d8bdfa0c6b4e 100644 --- a/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp +++ b/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief ShuffleChannelsTransformation propagates dequantization operations through ShuffleChannels operation. + */ class LP_TRANSFORMATIONS_API ShuffleChannelsTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/split.hpp b/src/common/low_precision_transformations/include/low_precision/split.hpp index d4f2c72b8beb7b..b1578429eddfa8 100644 --- a/src/common/low_precision_transformations/include/low_precision/split.hpp +++ b/src/common/low_precision_transformations/include/low_precision/split.hpp @@ -13,6 +13,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief SplitTransformation propagates dequantization operations through Split operation. + */ class LP_TRANSFORMATIONS_API SplitTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/squeeze.hpp b/src/common/low_precision_transformations/include/low_precision/squeeze.hpp index fab050564c8bc0..f0db65d0837a8d 100644 --- a/src/common/low_precision_transformations/include/low_precision/squeeze.hpp +++ b/src/common/low_precision_transformations/include/low_precision/squeeze.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief SqueezeTransformation propagates dequantization operations through Squeeze operation. + */ class LP_TRANSFORMATIONS_API SqueezeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp b/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp index 5a0520f54ae9b1..3b26d6562482c9 100644 --- a/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp +++ b/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief StridedSliceTransformation propagates dequantization operations through StridedSlice operation. + */ class LP_TRANSFORMATIONS_API StridedSliceTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/subtract.hpp b/src/common/low_precision_transformations/include/low_precision/subtract.hpp index 56c66d9945040b..7e3a79ebd1f76e 100644 --- a/src/common/low_precision_transformations/include/low_precision/subtract.hpp +++ b/src/common/low_precision_transformations/include/low_precision/subtract.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief SubtractTransformation propagates dequantization operations through Subtract operation. + */ class LP_TRANSFORMATIONS_API SubtractTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/transformation_context.hpp b/src/common/low_precision_transformations/include/low_precision/transformation_context.hpp index 1aad5e55bd648e..9a2473a71f67b3 100644 --- a/src/common/low_precision_transformations/include/low_precision/transformation_context.hpp +++ b/src/common/low_precision_transformations/include/low_precision/transformation_context.hpp @@ -13,6 +13,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief TransformationContext instance is used to pass model transformation context data between transformations. + */ class LP_TRANSFORMATIONS_API TransformationContext { public: TransformationContext(); diff --git a/src/common/low_precision_transformations/include/low_precision/transparent_base_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/transparent_base_transformation.hpp index d1f87f92f862b3..b9a3454b4b7476 100644 --- a/src/common/low_precision_transformations/include/low_precision/transparent_base_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/transparent_base_transformation.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief TransparentBaseTransformation is base type for precision preserved operation transformation. + */ class LP_TRANSFORMATIONS_API TransparentBaseTransformation : public LayerTransformation { public: TransparentBaseTransformation(const Params& params) : LayerTransformation(params) {} diff --git a/src/common/low_precision_transformations/include/low_precision/transpose.hpp b/src/common/low_precision_transformations/include/low_precision/transpose.hpp index d22fcc8ed8cf36..abb0e50662b773 100644 --- a/src/common/low_precision_transformations/include/low_precision/transpose.hpp +++ b/src/common/low_precision_transformations/include/low_precision/transpose.hpp @@ -12,6 +12,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief TransposeTransformation propagates dequantization operations through Transpose operation. + */ class LP_TRANSFORMATIONS_API TransposeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp b/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp index 580c09ad80bcce..ce00fc65514bd0 100644 --- a/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp +++ b/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp @@ -11,6 +11,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief UnsqueezeTransformation propagates dequantization operations through Unsqueeze operation. + */ class LP_TRANSFORMATIONS_API UnsqueezeTransformation : public LayerTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp b/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp index 42745f8f793299..80fabdc47bad10 100644 --- a/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp +++ b/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp @@ -25,6 +25,11 @@ class UpdateSharedPrecisionPreserved; } // namespace pass } // namespace ngraph +/** + * @ingroup ie_transformation_common_api + * @brief UpdateSharedPrecisionPreserved transformation updates shared AttributeType attribute instance value to true + * for precision preserved operations if ExpectedAttributeType exist. + */ template class ngraph::pass::low_precision::UpdateSharedPrecisionPreserved : public ngraph::pass::MatcherPass { public: @@ -76,7 +81,7 @@ class ngraph::pass::low_precision::UpdateSharedPrecisionPreserved : public ngrap return true; }; - auto matcher = std::make_shared(pattern::any_input(), "PropagateThroughPrecisionPreserved"); + auto matcher = std::make_shared(pattern::any_input(), "UpdateSharedPrecisionPreserved"); this->register_matcher(matcher, callback); } diff --git a/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp b/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp index 014b3775fe75b8..f8cbd71f0587a2 100644 --- a/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp +++ b/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp @@ -13,6 +13,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief VariadicSplitTransformation propagates dequantization operations through VariadicSplit operation. + */ class LP_TRANSFORMATIONS_API VariadicSplitTransformation : public SplitTransformation { public: NGRAPH_RTTI_DECLARATION; diff --git a/src/common/low_precision_transformations/include/low_precision/weightable_layer_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/weightable_layer_transformation.hpp index e045190aae4658..bee3137907b555 100644 --- a/src/common/low_precision_transformations/include/low_precision/weightable_layer_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/weightable_layer_transformation.hpp @@ -13,6 +13,10 @@ namespace ngraph { namespace pass { namespace low_precision { +/** + * @ingroup ie_transformation_common_api + * @brief WeightableLayerTransformation is base type for weightable operation transformation. + */ class LP_TRANSFORMATIONS_API WeightableLayerTransformation : public LayerTransformation{ public: WeightableLayerTransformation(const Params& params); From 7d95798fe9e5334ac3f9c2c6ef6dc56e89dafc1f Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Tue, 21 Sep 2021 10:45:53 +0300 Subject: [PATCH 04/19] [LPT] attribute doxygen documentation was added --- .../rt_info/avg_pool_precision_preserved_attribute.hpp | 6 ++++++ .../rt_info/intervals_alignment_attribute.hpp | 9 +++++++++ .../rt_info/per_tensor_quantization_attribute.hpp | 4 ++++ .../rt_info/precision_preserved_attribute.hpp | 5 +++++ .../low_precision/rt_info/precisions_attribute.hpp | 5 ++++- .../rt_info/quantization_alignment_attribute.hpp | 5 +++++ .../low_precision/rt_info/shared_value_attribute.hpp | 6 ++++++ 7 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp index 9da87cba5cef15..cecceafcf134b0 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp @@ -13,6 +13,12 @@ #include "low_precision/rt_info/precision_preserved_attribute.hpp" namespace ngraph { + +/** + * @ingroup ie_transformation_common_api + * @brief AvgPoolPrecisionPreservedAttribute is utility attribute which is used only during `AvgPool` operation precision + * preserved property definition. + */ class LP_TRANSFORMATIONS_API AvgPoolPrecisionPreservedAttribute : public PrecisionPreservedAttribute { public: OPENVINO_RTTI("LowPrecision::AvgPoolPrecisionPreserved", "", ov::RuntimeAttribute, 0); diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp index af8664110d30f3..ea5bb135fbb8a6 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp @@ -15,6 +15,10 @@ #include "low_precision/lpt_visibility.hpp" namespace ngraph { +/** + * @ingroup ie_transformation_common_api + * @brief IntervalsAlignmentSharedValue is used by IntervalsAlignmentAttribute as attribute shared value. + */ class LP_TRANSFORMATIONS_API IntervalsAlignmentSharedValue { public: class Interval { @@ -45,6 +49,11 @@ class LP_TRANSFORMATIONS_API IntervalsAlignmentSharedValue { #endif }; +/** + * @ingroup ie_transformation_common_api + * @brief IntervalsAlignmentAttribute defines subgraph with the same quantization intervals alignment. + * FakeQuantize operations are included. The attribute is used by quantization operations. + */ class LP_TRANSFORMATIONS_API IntervalsAlignmentAttribute : public SharedAttribute { public: OPENVINO_RTTI("LowPrecision::IntervalsAlignment", "", ov::RuntimeAttribute, 0); diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp index 9a991dbf684c87..271afd15dc49b9 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp @@ -14,6 +14,10 @@ #include "attribute_parameters.hpp" namespace ngraph { +/** + * @ingroup ie_transformation_common_api + * @brief PerTensorQuantizationAttribute defines if operation input port requires per-tensor quantization. + */ class LP_TRANSFORMATIONS_API PerTensorQuantizationAttribute : public ov::RuntimeAttribute { public: OPENVINO_RTTI("LowPrecision::PerTensorQuantization", "", ov::RuntimeAttribute, 0); diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp index 3a82a18d979908..a12cfdc59f535d 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp @@ -13,6 +13,11 @@ #include "low_precision/rt_info/shared_value_attribute.hpp" namespace ngraph { +/** + * @ingroup ie_transformation_common_api + * @brief PrecisionPreservedAttribute defines precision preserved operation. If attribute is absent then an operation is + * not precision preserved. + */ class LP_TRANSFORMATIONS_API PrecisionPreservedAttribute : public SharedAttribute { public: OPENVINO_RTTI("LowPrecision::PrecisionPreserved", "", ov::RuntimeAttribute, 0); diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp index 4945c4e06405ed..389a533cc2cb5f 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp @@ -18,7 +18,10 @@ #include "low_precision/rt_info/shared_value_attribute.hpp" namespace ngraph { - +/** + * @ingroup ie_transformation_common_api + * @brief PrecisionsAttribute defines precision which is required for input/output port or an operation. + */ class LP_TRANSFORMATIONS_API PrecisionsAttribute : public SharedAttribute> { public: OPENVINO_RTTI("LowPrecision::Precisions", "", ov::RuntimeAttribute, 0); diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp index d8a09ccdc54389..61a794c5c7fda5 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp @@ -18,6 +18,11 @@ #include "attribute_parameters.hpp" namespace ngraph { +/** + * @ingroup ie_transformation_common_api + * @brief QuantizationAlignmentAttribute defines subgraph with the same quantization alignment. + * FakeQuantize operations are not included. The attribute is used by quantization operations. + */ class LP_TRANSFORMATIONS_API QuantizationAlignmentAttribute : public SharedAttribute { public: OPENVINO_RTTI("LowPrecision::QuantizationAlignment", "", ov::RuntimeAttribute, 0); diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp index 5b922c07b5cd44..5f829d132b7f3e 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp @@ -18,6 +18,12 @@ template class LP_TRANSFORMATIONS_API SharedAttribute : public ov::RuntimeAttribute { public: virtual ~SharedAttribute() = default; + + /** + * @ingroup ie_transformation_common_api + * @brief SharedValueAttribute type for shared value attributes. + * The attribute is used for attribute SharedValue value backward propagation. + */ class LP_TRANSFORMATIONS_API SharedValueAttribute : public std::enable_shared_from_this { public: struct LP_TRANSFORMATIONS_API SharedValue : public std::enable_shared_from_this { From c99682d8b997931be293aa7384ff02eec614c67d Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Wed, 22 Sep 2021 17:39:30 +0300 Subject: [PATCH 05/19] [LPT] Developer Guide to Reference API links were added --- .../attributes/avg_pool_precision_preserved.md | 2 ++ .../attributes/intervals_alignment.md | 2 ++ .../attributes/per_tensor_quantization.md | 2 ++ .../attributes/precision_preserved.md | 2 ++ docs/low_precision_transformations/attributes/precisions.md | 2 ++ .../attributes/quantization_alignment.md | 2 ++ .../step1_prerequisites/lin_op_sequence_fusion.md | 4 ++++ .../pull_reshape_through_dequantization.md | 2 ++ .../pull_transpose_through_dequantization.md | 2 ++ .../step2_markup/align_quantization_intervals.md | 4 +++- .../step2_markup/align_quantization_parameters.md | 4 +++- .../transformations/step2_markup/create_attribute.md | 2 ++ .../step2_markup/create_precisions_dependent_attribute.md | 2 ++ .../step2_markup/markup_avg_pool_precision_preserved.md | 2 ++ .../transformations/step2_markup/markup_can_be_quantized.md | 4 +++- .../step2_markup/markup_per_tensor_quantization.md | 2 ++ .../transformations/step2_markup/markup_precisions.md | 2 ++ .../transformations/step2_markup/propagate_precisions.md | 2 ++ .../step2_markup/propagate_through_precision_preserved.md | 2 ++ .../transformations/step2_markup/propagate_to_input.md | 2 ++ .../step2_markup/update_shared_precision_preserved.md | 2 ++ .../transformations/step3_main/activation/clamp.md | 2 ++ .../transformations/step3_main/activation/prelu.md | 2 ++ .../transformations/step3_main/activation/relu.md | 2 ++ .../transformations/step3_main/arithmetic/add.md | 2 +- .../transformations/step3_main/arithmetic/multiply.md | 2 +- .../transformations/step3_main/convolution/convolution.md | 2 ++ .../step3_main/convolution/convolution_backprop_data.md | 2 ++ .../step3_main/convolution/group_convolution.md | 2 ++ .../transformations/step3_main/image/interpolate.md | 2 ++ .../transformations/step3_main/matrix/mat_mul.md | 2 ++ .../transformations/step3_main/movement/concat.md | 2 ++ .../transformations/step3_main/movement/depth_to_space.md | 2 ++ .../transformations/step3_main/movement/shuffle_channels.md | 2 ++ .../transformations/step3_main/movement/split.md | 2 ++ .../transformations/step3_main/movement/strided_slice.md | 2 ++ .../transformations/step3_main/movement/transpose.md | 2 ++ .../transformations/step3_main/movement/variadic_split.md | 2 ++ .../transformations/step3_main/normalization/mvn.md | 2 ++ .../transformations/step3_main/normalization/normalize_l2.md | 2 ++ .../transformations/step3_main/pooling/avg_pool.md | 2 ++ .../transformations/step3_main/pooling/max_pool.md | 2 ++ .../transformations/step3_main/quantization/fake_quantize.md | 2 ++ .../step3_main/quantization/fold_fake_quantize.md | 2 ++ .../transformations/step3_main/reduction/reduce_max.md | 2 ++ .../transformations/step3_main/reduction/reduce_mean.md | 2 ++ .../transformations/step3_main/reduction/reduce_min.md | 2 ++ .../transformations/step3_main/reduction/reduce_sum.md | 2 ++ .../transformations/step3_main/shape/reshape.md | 2 ++ .../transformations/step3_main/shape/squeeze.md | 2 ++ .../transformations/step3_main/shape/unsqueeze.md | 2 ++ .../step4_cleanup/fake_quantize_decomposition.md | 2 ++ .../transformations/step4_cleanup/fold_convert.md | 2 ++ .../transformations/step4_cleanup/fuse_convert.md | 2 ++ .../step4_cleanup/fuse_multiply_to_fake_quantize.md | 2 ++ .../step4_cleanup/fuse_subtract_to_fake_quantize.md | 2 ++ .../step4_cleanup/multiply_to_group_convolution.md | 2 ++ .../common_optimizations/lin_op_sequence_fusion.hpp | 4 ++++ 58 files changed, 121 insertions(+), 5 deletions(-) diff --git a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md index 07ec7c5d10fea7..f91b6e6022f2f4 100644 --- a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md +++ b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: AvgPoolPrecisionPreserved {#openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved} +ngraph::AvgPoolPrecisionPreservedAttribute class represents the `AvgPoolPrecisionPreserved` attribute. + Utility attribute which is used only during `AvgPool` operation precision preserved property definition. | Property name | Values | diff --git a/docs/low_precision_transformations/attributes/intervals_alignment.md b/docs/low_precision_transformations/attributes/intervals_alignment.md index 62c9ebf2acc0a1..bd78db0b429d88 100644 --- a/docs/low_precision_transformations/attributes/intervals_alignment.md +++ b/docs/low_precision_transformations/attributes/intervals_alignment.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: IntervalsAlignment {#openvino_docs_IE_DG_lpt_IntervalsAlignment} +ngraph::IntervalsAlignmentAttribute class represents the `IntervalsAlignment` attribute. + The attribute defines subgraph with the same quantization intervals alignment. `FakeQuantize` operations are included. The attribute is used by quantization operations. | Property name | Values | diff --git a/docs/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/low_precision_transformations/attributes/per_tensor_quantization.md index 026d886b1ebf84..ac49c7fd1f8f3f 100644 --- a/docs/low_precision_transformations/attributes/per_tensor_quantization.md +++ b/docs/low_precision_transformations/attributes/per_tensor_quantization.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: PerTensorQuantization {#openvino_docs_IE_DG_lpt_PerTensorQuantization} +ngraph::PerTensorQuantizationAttribute class represents the `PerTensorQuantization` attribute. + The attribute defines if operation input port requires per-tensor quantization. | Property name | Values | diff --git a/docs/low_precision_transformations/attributes/precision_preserved.md b/docs/low_precision_transformations/attributes/precision_preserved.md index cb46c12ca36055..bf36ba512354ae 100644 --- a/docs/low_precision_transformations/attributes/precision_preserved.md +++ b/docs/low_precision_transformations/attributes/precision_preserved.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: PrecisionPreserved {#openvino_docs_IE_DG_lpt_PrecisionPreserved} +ngraph::PrecisionPreservedAttribute class represents the `PrecisionPreserved` attribute. + The attribute defines precision preserved operation. If attribute is absent then an operation is not precision preserved. | Property name | Values | diff --git a/docs/low_precision_transformations/attributes/precisions.md b/docs/low_precision_transformations/attributes/precisions.md index ef0b0f74ebd428..1149fc4f1a9203 100644 --- a/docs/low_precision_transformations/attributes/precisions.md +++ b/docs/low_precision_transformations/attributes/precisions.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: Precisions {#openvino_docs_IE_DG_lpt_Precisions} +ngraph::PrecisionsAttribute class represents the `Precisions` attribute. + The attribute defines precision which is required for input/output port or an operation. | Property name | Values | diff --git a/docs/low_precision_transformations/attributes/quantization_alignment.md b/docs/low_precision_transformations/attributes/quantization_alignment.md index 63dabfbdc1a8a7..5c49e040ca9729 100644 --- a/docs/low_precision_transformations/attributes/quantization_alignment.md +++ b/docs/low_precision_transformations/attributes/quantization_alignment.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: QuantizationAlignment {#openvino_docs_IE_DG_lpt_QuantizationAlignment} +ngraph::QuantizationAlignmentAttribute class represents the `QuantizationAlignment` attribute. + The attribute defines subgraph with the same quantization alignment. `FakeQuantize` operations are not included. The attribute is used by quantization operations. | Property name | Values | diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md b/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md index dae36f020c0684..db9ed9594c8ab0 100644 --- a/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md @@ -1 +1,5 @@ # OpenVINOâ„¢ Low Precision Transformations: LinOpSequenceFusion {#openvino_docs_IE_DG_lpt_LinOpSequenceFusion} + +ngraph::pass::LinOpSequenceFusion class represents the `LinOpSequenceFusion` transformation. + +`LinOpSequenceFusion` is common nGraph transformation. diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md index 72c7134d95bc16..014f3a04d736a6 100644 --- a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: PullReshapeThroughDequantization {#openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization} + +ngraph::pass::low_precision::PullReshapeThroughDequantization class represents the `PullReshapeThroughDequantization` transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md index a341d8287db537..aa6796257f2d71 100644 --- a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: PullTransposeThroughDequantization {#openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization} + +ngraph::pass::low_precision::PullTransposeThroughDequantization class represents the `PullTransposeThroughDequantization` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md index 4ae73a923529c0..3d77395e747981 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md +++ b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md @@ -1 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationIntervals {#openvino_docs_IE_DG_lpt_AlignQuantizationIntervals} \ No newline at end of file +# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationIntervals {#openvino_docs_IE_DG_lpt_AlignQuantizationIntervals} + +ngraph::pass::low_precision::AlignQuantizationIntervals class represents the `AlignQuantizationIntervals` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md index bb72371bd356f3..a5a756e1c065ce 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md +++ b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md @@ -1 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationParameters {#openvino_docs_IE_DG_lpt_AlignQuantizationParameters} \ No newline at end of file +# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationParameters {#openvino_docs_IE_DG_lpt_AlignQuantizationParameters} + +ngraph::pass::low_precision::AlignQuantizationParameters class represents the `AlignQuantizationParameters` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md b/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md index 320a4c26a94f0d..be1318c3f0246f 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md +++ b/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: CreateAttribute {#openvino_docs_IE_DG_lpt_CreateAttribute} + +ngraph::pass::low_precision::CreateAttribute class represents the `CreateAttribute` transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md b/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md index 5870d43be2ed64..d227a61babab85 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md +++ b/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: CreatePrecisionsDependentAttribute {#openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute} + +ngraph::pass::low_precision::CreatePrecisionsDependentAttribute class represents the `CreatePrecisionsDependentAttribute` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md index dc2ca3c217005c..17a34d0636da39 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MarkupAvgPoolPrecisionPreserved {#openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved} + +ngraph::pass::low_precision::MarkupAvgPoolPrecisionPreserved class represents the `MarkupAvgPoolPrecisionPreserved` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md b/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md index e404f68cf87120..6872fb677f1fd6 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md @@ -1 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MarkupCanBeQuantized {#openvino_docs_IE_DG_lpt_MarkupCanBeQuantized} \ No newline at end of file +# OpenVINOâ„¢ Low Precision Transformations: MarkupCanBeQuantized {#openvino_docs_IE_DG_lpt_MarkupCanBeQuantized} + +ngraph::pass::low_precision::MarkupCanBeQuantized class represents the `MarkupCanBeQuantized` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md b/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md index 9ef649a9fa5818..4cbb092fe079f2 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MarkupPerTensorQuantization {#openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization} + +ngraph::pass::low_precision::MarkupPerTensorQuantization class represents the `MarkupPerTensorQuantization` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md b/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md index 9609dc718b5905..0c6d26194fdbb6 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MarkupPrecisions {#openvino_docs_IE_DG_lpt_MarkupPrecisions} + +ngraph::pass::low_precision::MarkupPrecisions class represents the `MarkupPrecisions` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md index 1da2e6d9d14d77..a39f543ebc7477 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: PropagatePrecisions {#openvino_docs_IE_DG_lpt_PropagatePrecisions} + +ngraph::pass::low_precision::PropagatePrecisions class represents the `PropagatePrecisions` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md index d3f306d32f0721..11c34581d6a29d 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: PropagateThroughPrecisionPreserved {#openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved} + +ngraph::pass::low_precision::PropagateThroughPrecisionPreserved class represents the `PropagateThroughPrecisionPreserved` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md index 7146608be7dbe9..9d1a4ac671c9e1 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: PropagateToInput {#openvino_docs_IE_DG_lpt_PropagateToInput} + +ngraph::pass::low_precision::PropagateToInput class represents the `PropagateToInput` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md index 5d01c76c51a928..c614192c73bed4 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md +++ b/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: UpdateSharedPrecisionPreserved {#openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved} + +ngraph::pass::low_precision::UpdateSharedPrecisionPreserved class represents the `UpdateSharedPrecisionPreserved` transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md b/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md index dccf867695fc18..bbcc96f814a362 100644 --- a/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md +++ b/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ClampTransformation {#openvino_docs_IE_DG_lpt_ClampTransformation} + +ngraph::pass::low_precision::ClampTransformation class represents the `Clamp` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md b/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md index b81481475b69de..9059199bed17f4 100644 --- a/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md +++ b/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: PReluTransformation {#openvino_docs_IE_DG_lpt_PReluTransformation} + +ngraph::pass::low_precision::PReluTransformation class represents the `PRelu` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/relu.md b/docs/low_precision_transformations/transformations/step3_main/activation/relu.md index 378fe3105e3c64..81861fb3fbd6ef 100644 --- a/docs/low_precision_transformations/transformations/step3_main/activation/relu.md +++ b/docs/low_precision_transformations/transformations/step3_main/activation/relu.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ReluTransformation {#openvino_docs_IE_DG_lpt_ReluTransformation} + +ngraph::pass::low_precision::ReluTransformation class represents the `Relu` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md index df2570bbffe6f6..964b801cfe34a2 100644 --- a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md @@ -1,6 +1,6 @@ # OpenVINOâ„¢ Low Precision Transformations: AddTransformation {#openvino_docs_IE_DG_lpt_AddTransformation} -ngraph::pass::low_precision::AddTransformation class represents `Add` operation low precision transformation. +ngraph::pass::low_precision::AddTransformation class represents the `Add` operation transformation. The transformation propagates dequantization subtraction from one input branch to another and propagates dequantization multiplication from the same branch through `Add` operation. In transformation result, one `Add` operation input branch is in low precision without dequantization operations (empty branch), another input branch is in original precision with updated dequantization operations (full branch). diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md index 2daf456643b970..71a99bef4793fd 100644 --- a/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md @@ -1,3 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MultiplyTransformation {#openvino_docs_IE_DG_lpt_MultiplyTransformation} -ngraph::pass::low_precision::MultiplyTransformation class represents `Multiply` operation low precision transformation. \ No newline at end of file +ngraph::pass::low_precision::MultiplyTransformation class represents the `Multiply` operation transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md index aa1a0958f428cc..c924d9e80c1d1b 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md @@ -1,5 +1,7 @@ # OpenVINOâ„¢ Low Precision Transformations: ConvolutionTransformation {#openvino_docs_IE_DG_lpt_ConvolutionTransformation} +ngraph::pass::low_precision::ConvolutionTransformation class represents the `Convolution` operation transformation. + The transformation propagate dequantization operations on activations and on weights through `Convolution` operation. The transformation supports several weights quantization approaches: * quantized weights in low precision with dequantization operations, * weights in original precision with `FakeQuantize` operation. diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md index 1f984bcc780d0c..ec5849beb5c5fd 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ConvolutionBackpropDataTransformation {#openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation} + +ngraph::pass::low_precision::ConvolutionBackpropDataTransformation class represents the `ConvolutionBackpropData` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md index d8f082d5a61c5b..3ed0050c9d0344 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: GroupConvolutionTransformation {#openvino_docs_IE_DG_lpt_GroupConvolutionTransformation} + +ngraph::pass::low_precision::GroupConvolutionTransformation class represents the `GroupConvolution` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md b/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md index 1159413827ed7a..e3ab77dfc67eed 100644 --- a/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md +++ b/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: InterpolateTransformation {#openvino_docs_IE_DG_lpt_InterpolateTransformation} + +ngraph::pass::low_precision::InterpolateTransformation class represents the `Interpolate` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md b/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md index 39675443de4cc1..4a6b2c92219670 100644 --- a/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md +++ b/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MatMulTransformation {#openvino_docs_IE_DG_lpt_MatMulTransformation} + +ngraph::pass::low_precision::MatMulTransformation class represents the `MatMul` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/concat.md b/docs/low_precision_transformations/transformations/step3_main/movement/concat.md index 57739bc3bc53f4..bfb3d75cd1d6f1 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/concat.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/concat.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ConcatTransformation {#openvino_docs_IE_DG_lpt_ConcatTransformation} + +ngraph::pass::low_precision::ConcatTransformation class represents the `Concat` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md b/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md index e4270a58427f2c..31799b9f7eb872 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: DepthToSpaceTransformation {#openvino_docs_IE_DG_lpt_DepthToSpaceTransformation} + +ngraph::pass::low_precision::DepthToSpaceTransformation class represents the `DepthToSpace` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md b/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md index d79cda0d163d14..2ed3139608a3ff 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ShuffleChannelsTransformation {#openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation} + +ngraph::pass::low_precision::ShuffleChannelsTransformation class represents the `ShuffleChannels` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/split.md b/docs/low_precision_transformations/transformations/step3_main/movement/split.md index e0095b4b3233c2..f0555afebc9634 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/split.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/split.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: SplitTransformation {#openvino_docs_IE_DG_lpt_SplitTransformation} + +ngraph::pass::low_precision::SplitTransformation class represents the `Split` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md b/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md index 9c53b5ec74936b..6815921f6bd397 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: StridedSliceTransformation {#openvino_docs_IE_DG_lpt_StridedSliceTransformation} + +ngraph::pass::low_precision::StridedSliceTransformation class represents the `StridedSlice` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md b/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md index 6b0046e202039b..5706648e6e4d1a 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: TransposeTransformation {#openvino_docs_IE_DG_lpt_TransposeTransformation} + +ngraph::pass::low_precision::TransposeTransformation class represents the `Transpose` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md b/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md index 3eaaff0c42508c..d33858c88e6d9a 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: VariadicSplitTransformation {#openvino_docs_IE_DG_lpt_VariadicSplitTransformation} + +ngraph::pass::low_precision::VariadicSplitTransformation class represents the `VariadicSplit` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md b/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md index d366da1065a8b5..cc2cbcf82dab6d 100644 --- a/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md +++ b/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MVNTransformation {#openvino_docs_IE_DG_lpt_MVNTransformation} + +ngraph::pass::low_precision::MVNTransformation class represents the `MVN` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md b/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md index 1e6ade2e9b2bd8..13eb10b6d7aed3 100644 --- a/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md +++ b/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: NormalizeL2Transformation {#openvino_docs_IE_DG_lpt_NormalizeL2Transformation} + +ngraph::pass::low_precision::NormalizeL2Transformation class represents the `NormalizeL2` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md b/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md index 8f83b13997734d..eeb9177294a11a 100644 --- a/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md +++ b/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: AvgPoolTransformation {#openvino_docs_IE_DG_lpt_AvgPoolTransformation} + +ngraph::pass::low_precision::AvgPoolTransformation class represents the `AvgPool` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md b/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md index a7180809ca202a..b311fac5df0b4e 100644 --- a/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md +++ b/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MaxPoolTransformation {#openvino_docs_IE_DG_lpt_MaxPoolTransformation} + +ngraph::pass::low_precision::MaxPoolTransformation class represents the `MaxPool` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md b/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md index 9d79c84d800e67..8c3b125bfb9378 100644 --- a/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FakeQuantizeTransformation} + +ngraph::pass::low_precision::FakeQuantizeTransformation class represents the `FakeQuantize` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md b/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md index bb270489a97326..42bc2b49bf52d3 100644 --- a/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FoldFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation} + +ngraph::pass::low_precision::FoldFakeQuantizeTransformation class represents the `FoldFakeQuantize` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md index f49d8856af29eb..b3630dca117dbe 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ReduceMaxTransformation {#openvino_docs_IE_DG_lpt_ReduceMaxTransformation} + +ngraph::pass::low_precision::ReduceMaxTransformation class represents the `ReduceMax` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md index 0cbbb7414342fe..be841e29f862d5 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ReduceMeanTransformation {#openvino_docs_IE_DG_lpt_ReduceMeanTransformation} + +ngraph::pass::low_precision::ReduceMeanTransformation class represents the `ReduceMean` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md index dce8c328441710..fa53b0ae0dcf10 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ReduceMinTransformation {#openvino_docs_IE_DG_lpt_ReduceMinTransformation} + +ngraph::pass::low_precision::ReduceMinTransformation class represents the `ReduceMin` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md index bab335d0f9d3c4..087d825cb02b4a 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ReduceSumTransformation {#openvino_docs_IE_DG_lpt_ReduceSumTransformation} + +ngraph::pass::low_precision::ReduceSumTransformation class represents the `ReduceSum` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md b/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md index 6594980e7c1f84..dc7ab9b24d9918 100644 --- a/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md +++ b/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: ReshapeTransformation {#openvino_docs_IE_DG_lpt_ReshapeTransformation} + +ngraph::pass::low_precision::ReshapeTransformation class represents the `Reshape` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md b/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md index e877bef28de374..7b1af5a0061b72 100644 --- a/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md +++ b/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: SqueezeTransformation {#openvino_docs_IE_DG_lpt_SqueezeTransformation} + +ngraph::pass::low_precision::SqueezeTransformation class represents the `Squeeze` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md b/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md index a6a6a47603ac03..05440d04db1270 100644 --- a/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md +++ b/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: UnsqueezeTransformation {#openvino_docs_IE_DG_lpt_UnsqueezeTransformation} + +ngraph::pass::low_precision::UnsqueezeTransformation class represents the `Unsqueeze` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md b/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md index 8dc01bb9aabde5..baed98fbe93706 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FakeQuantizeDecompositionTransformation {#openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation} + +ngraph::pass::low_precision::FakeQuantizeDecompositionTransformation class represents the `FakeQuantizeDecompositionTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md b/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md index c99f8a815125dd..c0185b2bf601b0 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FoldConvertTransformation {#openvino_docs_IE_DG_lpt_FoldConvertTransformation} + +ngraph::pass::low_precision::FoldConvertTransformation class represents the `FoldConvertTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md index 744d25709fdd19..296c9e9606e2ca 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FuseConvertTransformation {#openvino_docs_IE_DG_lpt_FuseConvertTransformation} + +ngraph::pass::low_precision::FuseConvertTransformation class represents the `FuseConvertTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md index 62e7b6cb3da661..5cd7a9ca26b2b5 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FuseMultiplyToFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation} + +ngraph::pass::low_precision::FuseMultiplyToFakeQuantizeTransformation class represents the `FuseMultiplyToFakeQuantizeTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md index 7c0f38c07789ae..379d77f93d7bfb 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: FuseSubtractToFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation} + +ngraph::pass::low_precision::FuseSubtractToFakeQuantizeTransformation class represents the `FuseSubtractToFakeQuantizeTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md b/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md index 64dd7b9d414e20..db70bee24e93a3 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md @@ -1 +1,3 @@ # OpenVINOâ„¢ Low Precision Transformations: MultiplyToGroupConvolutionTransformation {#openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation} + +ngraph::pass::low_precision::MultiplyToGroupConvolutionTransformation class represents the `MultiplyToGroupConvolutionTransformation` transformation. diff --git a/src/common/transformations/include/transformations/common_optimizations/lin_op_sequence_fusion.hpp b/src/common/transformations/include/transformations/common_optimizations/lin_op_sequence_fusion.hpp index 9f7f1587d1125f..eaf9d1c846efd1 100644 --- a/src/common/transformations/include/transformations/common_optimizations/lin_op_sequence_fusion.hpp +++ b/src/common/transformations/include/transformations/common_optimizations/lin_op_sequence_fusion.hpp @@ -39,6 +39,10 @@ class ngraph::pass::MultiplyMultiplyFusion: public ngraph::pass::MatcherPass { MultiplyMultiplyFusion(); }; +/** + * @ingroup ie_transformation_common_api + * @brief LinOpSequenceFusion transformation fuses linear operation sequence. + */ class ngraph::pass::LinOpSequenceFusion: public ngraph::pass::GraphRewrite { public: NGRAPH_RTTI_DECLARATION; From 211484dd2bc21fbc1a869b76ef9e640dc5ca8f4e Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Wed, 22 Sep 2021 18:23:53 +0300 Subject: [PATCH 06/19] [LPT] comments fixes --- .../avg_pool_precision_preserved.md | 2 +- .../attributes/intervals_alignment.md | 2 +- .../attributes/per_tensor_quantization.md | 2 +- .../attributes/precision_preserved.md | 2 +- .../attributes/quantization_alignment.md | 2 +- docs/low_precision_transformations/lpt.md | 42 +---------- .../lpt_attributes.md | 24 +++---- .../pipeline/img/step2_markup2.png | 4 +- .../pipeline/img/step2_markup2.svg | 2 +- .../pipeline/img/step2_markup3.png | 4 +- .../pipeline/img/step2_markup3.svg | 2 +- .../pipeline/img/step2_markup4.png | 4 +- .../pipeline/img/step2_markup4.svg | 2 +- .../pipeline/img/step2_markup5.png | 4 +- .../pipeline/img/step2_markup5.svg | 2 +- .../pipeline/img/step2_markup6.png | 4 +- .../pipeline/img/step2_markup6.svg | 2 +- .../pipeline/img/step2_markup7.png | 4 +- .../pipeline/img/step2_markup7.svg | 2 +- .../pipeline/img/step2_markup_original.png | 4 +- .../pipeline/img/step2_markup_original.svg | 2 +- .../pipeline/step1_prerequisites.md | 4 +- .../pipeline/step2_markup.md | 72 ++++++++++--------- .../pipeline/step3_main.md | 12 ++-- .../pipeline/step4_cleanup.md | 2 +- .../step3_main/arithmetic/add.md | 26 +++---- .../step3_main/convolution/convolution.md | 6 +- docs/snippets/lpt_mkldnn_plugin.cpp | 10 +-- .../low_precision/markup_can_be_quantized.hpp | 2 +- .../markup_per_tensor_quantization.hpp | 2 +- .../low_precision/markup_precisions.hpp | 2 +- .../pull_reshape_through_dequantization.hpp | 2 +- .../pull_transpose_through_dequantization.hpp | 2 +- .../rt_info/precision_preserved_attribute.hpp | 2 +- 34 files changed, 113 insertions(+), 149 deletions(-) diff --git a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md index f91b6e6022f2f4..9b9ef6cdd083be 100644 --- a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md +++ b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md @@ -2,7 +2,7 @@ ngraph::AvgPoolPrecisionPreservedAttribute class represents the `AvgPoolPrecisionPreserved` attribute. -Utility attribute which is used only during `AvgPool` operation precision preserved property definition. +Utility attribute, which is used only during `AvgPool` operation, precision preserved property definition. | Property name | Values | |---------------|----------------------------------------------| diff --git a/docs/low_precision_transformations/attributes/intervals_alignment.md b/docs/low_precision_transformations/attributes/intervals_alignment.md index bd78db0b429d88..984266b629ef85 100644 --- a/docs/low_precision_transformations/attributes/intervals_alignment.md +++ b/docs/low_precision_transformations/attributes/intervals_alignment.md @@ -2,7 +2,7 @@ ngraph::IntervalsAlignmentAttribute class represents the `IntervalsAlignment` attribute. -The attribute defines subgraph with the same quantization intervals alignment. `FakeQuantize` operations are included. The attribute is used by quantization operations. +The attribute defines a subgraph with the same quantization intervals alignment. `FakeQuantize` operations are included. The attribute is used by quantization operations. | Property name | Values | |---------------|----------------------------------------------| diff --git a/docs/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/low_precision_transformations/attributes/per_tensor_quantization.md index ac49c7fd1f8f3f..f5bec681e2594b 100644 --- a/docs/low_precision_transformations/attributes/per_tensor_quantization.md +++ b/docs/low_precision_transformations/attributes/per_tensor_quantization.md @@ -2,7 +2,7 @@ ngraph::PerTensorQuantizationAttribute class represents the `PerTensorQuantization` attribute. -The attribute defines if operation input port requires per-tensor quantization. +The attribute defines if the operation input port requires per-tensor quantization. | Property name | Values | |---------------|----------------------------------------------| diff --git a/docs/low_precision_transformations/attributes/precision_preserved.md b/docs/low_precision_transformations/attributes/precision_preserved.md index bf36ba512354ae..d5d69e34346b89 100644 --- a/docs/low_precision_transformations/attributes/precision_preserved.md +++ b/docs/low_precision_transformations/attributes/precision_preserved.md @@ -2,7 +2,7 @@ ngraph::PrecisionPreservedAttribute class represents the `PrecisionPreserved` attribute. -The attribute defines precision preserved operation. If attribute is absent then an operation is not precision preserved. +The attribute defines a precision preserved operation. If the attribute is absent, then an operation is not precision preserved. | Property name | Values | |---------------|----------------------------------------------| diff --git a/docs/low_precision_transformations/attributes/quantization_alignment.md b/docs/low_precision_transformations/attributes/quantization_alignment.md index 5c49e040ca9729..b3427ced1b2892 100644 --- a/docs/low_precision_transformations/attributes/quantization_alignment.md +++ b/docs/low_precision_transformations/attributes/quantization_alignment.md @@ -2,7 +2,7 @@ ngraph::QuantizationAlignmentAttribute class represents the `QuantizationAlignment` attribute. -The attribute defines subgraph with the same quantization alignment. `FakeQuantize` operations are not included. The attribute is used by quantization operations. +The attribute defines a subgraph with the same quantization alignment. `FakeQuantize` operations are not included. The attribute is used by quantization operations. | Property name | Values | |---------------|----------------------------------------------| diff --git a/docs/low_precision_transformations/lpt.md b/docs/low_precision_transformations/lpt.md index f3445b13f5d280..8c54ef10281790 100644 --- a/docs/low_precision_transformations/lpt.md +++ b/docs/low_precision_transformations/lpt.md @@ -1,9 +1,9 @@ # OpenVINOâ„¢ Low Precision Transformations {#openvino_docs_IE_DG_lpt} ## Introduction -`Low precision transformations` (known as `LPT`) are a set of nGraph transformations, which are combined in one library. The library is mandatory part of OpenVINO to infer quantized model in low precision with the maximum performance on Intel CPU, GPU and ARM platforms. The library includes more than 45 transformations and supports more then 30 operations. Some transformations are mandatory, some of them are optional and developed for specific device. +Low precision transformations (known as LPT) are a set of nGraph transformations, which are combined in one library. The library is mandatory part of OpenVINO to infer quantized model in low precision with the maximum performance on Intel CPU, GPU and ARM platforms. The library includes more than 45 transformations and supports more then 30 operations. Some transformations are mandatory, some of them are optional and developed for specific device. -The goal of `Low Precision Transformations` (`LPT`) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: +The goal of Low Precision Transformations (LPT) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: 1. `FakeQuantize` operation decomposition to two parts: - part #1: quantize operation - new `FakeQuantize` operation with output quantization intervals in low precision range (signed int8: [-128, 127] or [-127, 127], unsigned int8: [0, 255] or [0, 256]) and with low precision output (`signed int8` or `unsigned int8`), - part #2: dequantization operations with low precision input and original precision output. @@ -93,44 +93,6 @@ LPT transformation pipeline has several steps. For each transformation inside on ![](img/low_precision_transformation_pipeline.png) -
-Click to explore all LPT transformations by steps in one table - -| Step #1: Prerequisites | Step #2: Markup transformations | Step #3: Main transformations | Step #4: Cleanup transformations | -|------------------------------------|---------------------------------|-----------------------------------------|---------------------------------------------| -| PullReshapeThroughDequantization | MarkupCanBeQuantized | AddTransformation | FoldConvertTransformation | -| PullTransposeThroughDequantization | MarkupPrecisions | AvgPoolTransformation | FuseConvertTransformation | -| ngraph::pass::LinOpSequenceFusion | MarkupPerTensorQuantization | ClampTransformation | FuseSubtractToFakeQuantizeTransformation | -| | MarkupAvgPoolPrecisionPreserved | ConcatTransformation | FuseMultiplyToFakeQuantizeTransformation | -| | PropagatePrecisions | ConvolutionTransformation | MultiplyToGroupConvolutionTransformation | -| | AlignQuantizationIntervals | ConvolutionBackpropDataTransformation | SubtractMultiplyToMultiplyAddTransformation | -| | AlignQuantizationParameters | DepthToSpaceTransformation | FoldFakeQuantizeTransformation | -| | | FakeQuantizeDecompositionTransformation | | -| | | FakeQuantizeTransformation | | -| | | InterpolateTransformation | | -| | | GroupConvolutionTransformation | | -| | | MatMulTransformation | | -| | | MaxPoolTransformation | | -| | | MultiplyTransformation | | -| | | MVNTransformation | | -| | | NormalizeL2Transformation | | -| | | PReluTransformation | | -| | | ReduceMaxTransformation | | -| | | ReduceMeanTransformation | | -| | | ReduceMinTransformation | | -| | | ReduceSumTransformation | | -| | | ReluTransformation | | -| | | ReshapeTransformation | | -| | | SqueezeTransformation | | -| | | ShuffleChannelsTransformation | | -| | | SplitTransformation | | -| | | StridedSliceTransformation | | -| | | TransposeTransformation | | -| | | UnsqueezeTransformation | | -| | | VariadicSplitTransformation | | - -
- Inside each step LPT transformations handle input model operation by operation, applying transformation matching pattern for each transformation from the step to an operation, and execute transformation if pattern is matched. Decomposition transformation decomposes `FakeQuantize` to quantize and dequantization operations. Dequantization operations from previous transformation result is used for the current one and so on, until the end of the model is achieved. As result, usually all operations are inferred by plugin in low precision. If plugin doesn't support an operation inference in low precision, then corresponding LPT transformation can be disabled, and input tensor precisions for the operation will not be changed. In this case the operation is inferred in the original precision. diff --git a/docs/low_precision_transformations/lpt_attributes.md b/docs/low_precision_transformations/lpt_attributes.md index aa5a0fddf571d8..5eff9627360f96 100644 --- a/docs/low_precision_transformations/lpt_attributes.md +++ b/docs/low_precision_transformations/lpt_attributes.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: attributes {#openvino_docs_IE_DG_lpt_attributes} +# OpenVINOâ„¢ Low Precision Transformations: Attributes {#openvino_docs_IE_DG_lpt_attributes} ## Introduction @@ -12,19 +12,19 @@ | [QuantizationAlignment](@ref openvino_docs_IE_DG_lpt_QuantizationAlignment) | Quantization alignment | Yes | Yes | > `Target` attribute group defines attribute usage during model transformation for the best performance: -> - `Precision` - the attribute is used to define the most optimal output port precision. -> - `Quantization interval` - the attribute is used to define quantization interval. -> - `Quantization alignment` - the attribute is used to define quantization alignment: per-channel or per-tensor quantization. +> - `Precision` - the attribute defines the most optimal output port precision. +> - `Quantization interval` - the attribute defines quantization interval. +> - `Quantization alignment` - the attribute defines quantization alignment: per-channel or per-tensor quantization. > -> `Required` attribute group defines if attribute usage is required to get optimal model during transformation or not: -> - `Yes` - the attribute is used in low precision optimization which is used by all OpenVINO plugins. -> - `No` - the attribute is used in specific OpenVINO plugin. +> `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 existing attribute or not: -> - `Yes` - the attribute can be updated by the next transformations in pipeline. But attribute update order is still important. -> - `No` - existing attribute can not be updated by the next transformation. Previous handled transformation has optimized model in accordance with current value. +> `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 mandatory part of low precision transformations. Attributes which are used during decomposition are mandatory. Optional attributes are required for some operations only. +`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: @@ -37,4 +37,4 @@ Attributes usage by transformations: | IntervalsAlignment | AlignQuantizationIntervals | FakeQuantizeDecompositionTransformation | | QuantizationAlignment | AlignQuantizationParameters | FakeQuantizeDecompositionTransformation | -> Note, please, the same type attribute instances can be created in different transformations. This approach is result of transformation single-responsibility principle. For example `Precision` attribute instances are created in `MarkupCanBeQuantized` and `MarkupPrecisions` transformations but the creation reason is different. \ No newline at end of file +> **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. \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup2.png b/docs/low_precision_transformations/pipeline/img/step2_markup2.png index 07a66e8c080f54..a6ac9efadabd36 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup2.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:877171666a0120e0507b900e04a9a040a34bd92f1be9b906ce5af9642b5b1de2 -size 388880 +oid sha256:d54234622f538249dd5ccb5156cc10dd9b5bb40e800f6d1d906a0ff44ecabcf4 +size 388893 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup2.svg b/docs/low_precision_transformations/pipeline/img/step2_markup2.svg index 42747f71f680e1..d8d323becca2db 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup2.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup2.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: Precisions {precisions: {u8}}In1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: Precisions {precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convolution2in0: Precisions {precisions: {u8}}In1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: Precisions {precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup3.png b/docs/low_precision_transformations/pipeline/img/step2_markup3.png index 481b4d86bdd135..cdf276757ed5f2 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup3.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup3.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a1de684e554192b85c699a6f7b7e0a3f9863c55d93aede3b3a9fcd6e9255c0a3 -size 393432 +oid sha256:3132bad01388adf7f788592538194bceb6b94f76f1c3788ffb73b76b19a74990 +size 393300 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup3.svg b/docs/low_precision_transformations/pipeline/img/step2_markup3.svg index 5c2d39972bf221..80f3f0dea20625 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup3.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup3.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions {precisions: {u8}}in1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions {precisions: {}}in1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convolution2in0: PerTensorQuantization, Precisions {precisions: {u8}}in1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions {precisions: {}}in1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup4.png b/docs/low_precision_transformations/pipeline/img/step2_markup4.png index 9e262ee2d5c8a2..f3164acd1008f6 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup4.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup4.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7edfdb6e16f7c002f69a9682a0f6c10922d958ba4228db1b1e794afbe36cc77b -size 398944 +oid sha256:4f5a98e0ae8dc1f21dd0458ad9ed61de68b134e1128279c3e8b4e700ff3648f8 +size 398967 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup4.svg b/docs/low_precision_transformations/pipeline/img/step2_markup4.svg index 6837c953a3c9b5..60ecb5f9673fef 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup4.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup4.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions{precisions: {u8}}In1: Precisions{precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions{precisions: {}}In1: Precisions{precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}{f32} {1, 6, 299, 299}Convolutionname: convolution2in0: PerTensorQuantization, Precisions{precisions: {u8}}In1: Precisions{precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions{precisions: {}}In1: Precisions{precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup5.png b/docs/low_precision_transformations/pipeline/img/step2_markup5.png index 666ec8db6fd166..1523120717621c 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup5.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup5.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5cef7584b2ae82e0bbcdd36d0fe54f967afc6e7828c60a9232051d578c3b47e6 -size 475233 +oid sha256:2618a80fd1be4d25dfc1f7e57e046a7844c9933a6fed316a0660c3051325557e +size 474998 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup5.svg b/docs/low_precision_transformations/pipeline/img/step2_markup5.svg index d23952d0433bd3..358a3ceb5c6f44 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup5.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup5.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1levels: 256{f32} {1,3,299,299} Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299} Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299} Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}, Precisions {precisions: {u8}}{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions {precisions: {u8}}in1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions {precisions: {}}in1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1levels: 256{f32} {1,3,299,299} Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299} Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299} Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}, Precisions {precisions: {u8}}{f32} {1, 6, 299, 299}Convolutionname: convolution2in0: PerTensorQuantization, Precisions {precisions: {u8}}in1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions {precisions: {}}in1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup6.png b/docs/low_precision_transformations/pipeline/img/step2_markup6.png index f1ee1cd4057201..00a33774ce6699 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup6.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup6.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:093788a0decc92247b0c473314ba6b43d7ebf919e8ba28c628422e8e0d2fc52b -size 488509 +oid sha256:3b7750b3424540912ec590aa5b56cba9e4f2f9db6d45c23aed1d78d094321230 +size 488940 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup6.svg b/docs/low_precision_transformations/pipeline/img/step2_markup6.svg index ce9c24774508e4..c8834585723660 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup6.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup6.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1levels: 256rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}{f32} {1,3,299,299} Precisions{precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}, PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299} Precisions{precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299} Precisions{precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}}, PrecisionPreserved{value: true},Precisions{precisions: {u8}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{levels: 256, minLevels: 256, preferablePrecisions: {i8}},AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}, Precisions{precisions: {u8}{f32} {1, 6, 299, 299}Convolutionname: convlution2in0: PerTensorQuantization, Precisions{precisions: {u8}}In1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions{precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1levels: 256rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1,3,299,299} Precisions{precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}, PrecisionPreserved{value: true}, Precisions {precisions: {u8}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299} Precisions{precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299} Precisions{precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}, PrecisionPreserved{value: true},Precisions{precisions: {u8}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}},AvgPoolPrecisionPreserved{value: true}, PrecisionPreserved{value: true}, Precisions{precisions: {u8}{f32} {1, 6, 299, 299}Convolutionname: convolution2in0: PerTensorQuantization, Precisions{precisions: {u8}}In1: Precisions {precisions: {i8}}{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1in0: PerTensorQuantization, Precisions{precisions: {}}In1: Precisions {precisions: {}}{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup7.png b/docs/low_precision_transformations/pipeline/img/step2_markup7.png index 04464b34fff843..2724d138642391 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup7.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup7.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b7e746eb834cd3d1b638d84dba43317c6988f2a83e0b7bcf7585d80b580b712 -size 519897 +oid sha256:7836c25a0db5a5f08adf5539fb5ee29f52bc7923148dc42f4c78d3354b7b8464 +size 520539 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup7.svg b/docs/low_precision_transformations/pipeline/img/step2_markup7.svg index 1c1defa0356ad3..625792de5c0f94 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup7.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup7.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions{precisions: {u8}},QuantizationAlignment{value: false}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions {precisions: {u8}},QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true}Precisions {precisions: {u8}}QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}Convolutionname: convolutionin0: {f32}[1,6,7,7]: PerTensorQuantization, Precisions {precisions: {u8}}in1: {f32}[9,6,1,1]: Precisions {precisions: {i8}}{f32} {1, 6, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions{precisions: {u8}},QuantizationAlignment{value: false}{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}{f32} {1, 3, 299, 299}Precisions {precisions: {u8}}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2rt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true},Precisions {precisions: {u8}},QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}AvgPoolname: maxPoolrt info: IntervalsAlignment{combined: { -1.28, 1.27 }, preferablePrecisions: {i8}}PrecisionPreserved{value: true}Precisions {precisions: {u8}}QuantizationAlignment{value: true}{f32} {1, 6, 299, 299}Convolutionname: convolution2in0: {f32}[1,6,7,7]: PerTensorQuantization, Precisions {precisions: {u8}}in1: {f32}[9,6,1,1]: Precisions {precisions: {i8}}{f32} {1, 6, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {6, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {6, 1, 1, 1}Convert{f32} {6, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup_original.png b/docs/low_precision_transformations/pipeline/img/step2_markup_original.png index 28608500f8ef47..3d0a7abe126511 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup_original.png +++ b/docs/low_precision_transformations/pipeline/img/step2_markup_original.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c4edd8311874fb9a3a22f650c40ee5a247fd89220d81e4a373850d0040b695b4 -size 351552 +oid sha256:911d9730e6762a9919fe3a48f0c87a44a5aeac97468f2d28c5174c13c69ad74b +size 351583 diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg b/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg index 9f0d3495e50a7c..3663d9f8898819 100644 --- a/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg +++ b/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg @@ -1 +1 @@ -FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convlution2{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file +FakeQuantizename: fakeQuantize1levels: 256{f32} {1, 3, 299, 299}Parametername: input1{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]Constant{f32} {1, 1, 1, 1}value: [-0.42667]Constant{f32} {1, 1, 1, 1}value: [0.42333]ResultConcatname: concat1{f32} {1, 6, 299, 299}FakeQuantizename: fakeQuantize2levels: 256{f32} {1, 3, 299, 299}Parametername: input2{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]Constant{f32} {1, 1, 1, 1}value: [-0.64]Constant{f32} {1, 1, 1, 1}value: [0.635]FakeQuantizename: fakeQuantize3levels: 256{f32} {1, 3, 299, 299}Parametername: input3{f32} {1, 3, 299, 299}Constant{f32} {1, 1, 1, 1}value: -1.28]Constant{f32} {1, 1, 1, 1}value: [12.7]Constant{f32} {1, 1, 1, 1}value: [-1.28]Constant{f32} {1, 1, 1, 1}value: [1.27]ResultConcatname: concat2{f32} {1, 6, 299, 299}AvgPoolname: maxPool{f32} {1, 6, 299, 299}Convolutionname: convolution2{f32} {1, 9, 299, 299}Constant{i8} {9, 6, 1, 1}Dequantization on weightsMultiply{f32} {9, 6, 1, 1}Convert{f32} {9, 6, 1, 1}Constant{f32} {9, 1, 1, 1}Subtract{f32} {9, 6, 1, 1}Constant{i8} {9, 1, 1, 1}Convert{f32} {9, 1, 1, 1}Convolutionname: convolution1{f32} {1, 9, 299, 299}Constant{f32} {9, 6, 1, 1} \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/low_precision_transformations/pipeline/step1_prerequisites.md index 03d8fb18cc1c70..8d61f978631549 100644 --- a/docs/low_precision_transformations/pipeline/step1_prerequisites.md +++ b/docs/low_precision_transformations/pipeline/step1_prerequisites.md @@ -1,6 +1,6 @@ -# OpenVINOâ„¢ LPT: step #1. Prerequisites transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} +# OpenVINOâ„¢ LPT: Step #1. Prerequisites Transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} -Prerequisites transformations are optional. The goal is prepare a model before to run other low precision transformations. Transformations don't operate with dequantization operations, don't update precisions. Transformations: +Prerequisites transformations are optional. The transformations prepare a model before running other low precision transformations. The transformations do not operate with dequantization operations or update precisions. Prerequisites transformations include: * [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) * [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization) * [LinOpSequenceFusion](@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion) \ No newline at end of file diff --git a/docs/low_precision_transformations/pipeline/step2_markup.md b/docs/low_precision_transformations/pipeline/step2_markup.md index ffd3a6a0b1a09e..a4e8482111a6c5 100644 --- a/docs/low_precision_transformations/pipeline/step2_markup.md +++ b/docs/low_precision_transformations/pipeline/step2_markup.md @@ -1,6 +1,7 @@ -# OpenVINOâ„¢ LPT: step #2. Markup transformations {#openvino_docs_IE_DG_lpt_step2_markup} +# OpenVINOâ„¢ LPT: Step #2. Markup Transformations {#openvino_docs_IE_DG_lpt_step2_markup} + +This step defines the optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input and output ports and operations. Transformations do not change the operation output port precisions. A model markup low precision logic is decomposed and implemented into the following common markup transformations. Transformations order is important: -This step defines the most optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input & output ports and operations. Operation output port precisions are not changed in these transformations. Transformations order is important. A model markup low precision logic is decomposed and implemented into following common markup transformations (in usage order, order is important): 1. [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) 2. [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) 3. [MarkupPerTensorQuantization](@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization) @@ -9,8 +10,7 @@ This step defines the most optimal `FakeQuantize` decomposition precisions for t 6. [AlignQuantizationIntervals](@ref openvino_docs_IE_DG_lpt_AlignQuantizationIntervals) 7. [AlignQuantizationParameters](@ref openvino_docs_IE_DG_lpt_AlignQuantizationParameters) -
-Click to explore transformations and used attributes in one table +The table of transformations and used attributes: | Transformation name | Create attributes | Use attributes | |---------------------------------|-------------------------------|-------------------------------------------| @@ -22,11 +22,9 @@ This step defines the most optimal `FakeQuantize` decomposition precisions for t | AlignQuantizationIntervals | IntervalsAlignment | PrecisionPreserved | | AlignQuantizationParameters | QuantizationAlignment | PrecisionPreserved, PerTensorQuantization | -
- -Note, please, the same type attribute instances can be created in different transformations. This approach is result of transformation single-responsibility principle. For example `Precision` attribute instances are created in `MarkupCanBeQuantized` and `MarkupPrecisions` transformations but the creation reason is different. +> **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 -Common markup transformations can be decomposed to simpler utility markup transformations. Markup utility transformations (order is not important): +Common markup transformations can be decomposed into simpler utility markup transformations. The order of Markup utility transformations is not important: * [CreateAttribute](@ref openvino_docs_IE_DG_lpt_CreateAttribute) * [CreatePrecisionsDependentAttribute](@ref openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute) * [PropagateThroughPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved) @@ -39,43 +37,46 @@ Let's explore all transformations and their relations in details on the same mod The original model key features: * The first `concat1` concatenation operation has not quantized `convolution1` consumer. -* The second `concat2` concatenation operation has quantized `convolution2` consumer with requirements: 1) support `unsigned int8` on activations 2) per-tensor quantization. -* Between `concat2` concatenation operation and `Convolution` there is `AvgPool` operation which mathematically have to return `f32` tensor. But `MarkupAvgPoolPrecisionPreserved` transformation is active, which allows low precision after `AvgPool` transformation to propagate low precision tensor to the next consumer. +* The second `concat2` concatenation operation has quantized `convolution2` consumer with requirements: + - support `unsigned int8` on activations, + - per-tensor quantization. +* Between the `concat2` concatenation operation and `Convolution` there is an `AvgPool` operation, which mathematically should return an `f32` tensor. But the `MarkupAvgPoolPrecisionPreserved` transformation is active. This allows the low precision transformation, that goes after the `AvgPool`, to propagate low precision tensor to the next consumer. -Transformations are ran with parameters: +Transformations are run with the following parameters: @snippet snippets/lpt_mkldnn_plugin.cpp lpt_markup_pipeline ## 1. MarkupCanBeQuantized -The transformation marks operations which can not be quantized. The transformation doesn't require any attributes before. +The transformation marks operations that cannot be quantized. No attributes are required before the transformation. -Changes in example model after `MarkupCanBeQuantized` transformation: -* Not quantized `convolution1` operation is marked by `Precisions` attribute with empty values. This attribute allows to ignore not quantized operation by the next transformations. +Changes in the example model after `MarkupCanBeQuantized` transformation: +* Not quantized `convolution1` operation is marked by the `Precisions` attribute with empty values. This attribute allows the next transformation to ignore not quantized operation. Result model: ![MarkupCanBeQuantized](img/step2_markup1.png) -> Model display features (here and below): -> 1. Added by current transformation attributes are marked in bold. -> 2. If attributes are not fit into one line, then one line consists only one attribute. +Model display features (here and below): +* The attributes added by the current transformation are marked in bold. +* If attributes do not fit into one line, then one line consists of only one attribute. ## 2. MarkupPrecisions -The transformation is required and include two tasks: +The transformation is required and includes two tasks: 1. Mark operation input ports (create `Precision` attribute instance) by provided restrictions: input port index and required precisions. Restrictions are provided as input argument in `ngraph::pass::low_precision::LowPrecision` constructor. 2. Mark precision preserved operations. -The transformation doesn't require any attributes before. Changes in example model after `MarkupPrecisions` transformation: -* Both concatenation operations are marked as precision preserved operation. It allows to propagate precision via these operations. -* Quantized `convolution2` operation is marked by `Precisions` attribute with `u8` precision on activations and `i8` precisions on weights in accordance with provided restrictions. This attribute instance allows to specify which precisions are required for quantized `Convolution` operation. +No attributes are required before the transformation. Changes in the example model after `MarkupPrecisions` transformation: +* Both concatenation operations are marked as precision preserved operations. It allows to propagate precision via these operations. +* Quantized `convolution2` operation is marked by the `Precisions` attribute with `u8` precision on activations and `i8` precisions on weights according to the provided restrictions. This attribute instance allows to specify which precisions are required for quantized `Convolution` operation. Result model: ![MarkupPrecisions result](img/step2_markup2.png) ## 3. MarkupPerTensorQuantization -The transformation is required and marks operations (create `PerTensorQuantization` attribute instance) by provided restrictions: operation which requires per-tensor quantization. The transformation doesn't require any attributes before. -Changes in example model after `MarkupPerTensorQuantization` transformation: +The transformation is required and marks operations (create `PerTensorQuantization` attribute instance) by provided restrictions: an operation that requires per-tensor quantization. No attributes are required before the transformation. + +Changes in the example model after `MarkupPerTensorQuantization` transformation: * both `Convolution` operations are marked by `PerTensorQuantization` Result model: @@ -83,12 +84,12 @@ Result model: ![MarkupPerTensorQuantization result](img/step2_markup3.png) ## 4. MarkupAvgPoolPrecisionPreserved -The transformation is optional. `MarkupAvgPoolPrecisionPreserved` marks `AvgPool` operations as precision preserved or not precision preserved. `AvgPool` operation is precision preserved if next not precision preserved operation can be inferred in low precision. In other words: `AvgPool` operations became precision preserved operations to speed up model inference. The transformation uses `PrecisionPreserved` attributes created before. The transformation is combined and uses: +The transformation is optional. `MarkupAvgPoolPrecisionPreserved` marks `AvgPool` operations as precision preserved or not precision preserved. `AvgPool` operation is precision preserved if next not precision preserved operation can be inferred in low precision. In other words, `AvgPool` operations become precision preserved operations to speed up model inference. The transformation uses `PrecisionPreserved` attributes created before. The transformation is combined and uses: * CreatePrecisionsDependentAttribute * PropagateThroughPrecisionPreserved * UpdateSharedPrecisionPreserved -Changes in example model after `MarkupAvgPoolPrecisionPreserved` transformation: +Changes in the example model after `MarkupAvgPoolPrecisionPreserved` transformation: * `AvgPool` operations are marked by `PrecisionPreserved` and `AvgPoolPrecisionPreserved` (not used below). Result model: @@ -96,28 +97,29 @@ Result model: ![MarkupAvgPoolPrecisionPreserved](img/step2_markup4.png) ## 5. PropagatePrecisions -The transformation is required. `PropagatePrecision` is a key transformation in markup pipeline which marks `FakeQuantize` output port precisions. The transformation uses `PrecisionPreserved` attribute instances which are created before. The transformation is combined and uses: +The transformation is required. `PropagatePrecision` is a key transformation in the markup pipeline, which marks `FakeQuantize` output port precisions. The transformation uses `PrecisionPreserved` attribute instances created before. The transformation is combined and uses: + * CreateAttribute * PropagateThroughPrecisionPreserved * PropagateToInput -Changes in example model after `PropagatePrecisions` transformation: -* All precision preserved operations are marked by `Precisions` attribute instance which defines required precision for the operation. -* `FakeQuantize` operation output ports are marked by `Precisions` attribute instances which defines target precision for decomposition. In sample model `FakeQuantize` operations have signed intervals but `Precisions` attributes initialized by `u8` (`unsigned int8`) values as result applied during transformations restrictions for `Convolution` operations. +Changes in the example model after `PropagatePrecisions` transformation: +* All precision preserved operations are marked by the `Precisions` attribute instance, which defines the required precision for the operation. +* `FakeQuantize` operation output ports are marked by `Precisions` attribute instances, which define target precision for decomposition. In the sample model, `FakeQuantize` operations have signed intervals, but the `Precisions` attributes are initialized by `u8` (`unsigned int8`) values as the result applied during transformations restrictions for `Convolution` operations. Result model: ![PropagatePrecisions](img/step2_markup5.png) -> `AlignQuantizationIntervals` and `AlignQuantizationParameters` transformations are required if model has quantized concatenation operations. +> **NOTE**: `AlignQuantizationIntervals` and `AlignQuantizationParameters` transformations are required if the model has quantized concatenation operations. ## 6. AlignQuantizationIntervals -The transformation is required for models with quantized operation. The transformation marks `FakeQuantize` operation and precision preserved consumers to combine quantization information from different `FakeQuantize` operations for future quantization intervals alignment. The transformation is combined and uses: +The transformation is required for models with the quantized operation. The transformation marks `FakeQuantize` operation and precision preserved consumers to combine quantization information from different `FakeQuantize` operations for future quantization intervals alignment. The transformation is combined and uses: * CreateAttribute * PropagateThroughPrecisionPreserved -Changes in example model after `AlignQuantizationIntervals` transformation: -* All `FakeQuantize` operation and theirs precision preserved consumers are marked by `IntervalsAlignment` attribute instance. +Changes in the example model after `AlignQuantizationIntervals` transformation: +* All `FakeQuantize` operations and their precision preserved consumers are marked by the `IntervalsAlignment` attribute instance. Result model: @@ -130,8 +132,8 @@ The transformation is required for models with quantized concatenation operation * UpdateSharedPrecisionPreserved -Changes in example model after `AlignQuantizationParameters` transformation: -* All `FakeQuantize` precision preserved consumers are marked by `QuantizationAlignment` attribute instance. `convolution1` input ports are marked by `Precisions` attribute instances with empty precisions collection. As result `convolution1` operation was detected as not quantized and `QuantizationAlignment` attribute default value `false` was not changed. `convolution2` input ports are marked by `Precisions` attribute instances with not empty precisions collection. As result `convolution2` operation was detected as quantized with `PerTensorQuantization` attribute and `QuantizationAlignment` attribute default value was changed to `true`. +Changes in the example model after `AlignQuantizationParameters` transformation: +* All `FakeQuantize` precision preserved consumers are marked by `QuantizationAlignment` attribute instance. `convolution1` input ports are marked by `Precisions` attribute instances with empty precisions collection. As a result, the `convolution1` operation was detected as not quantized, and the `QuantizationAlignment` attribute default value `false` does not change. `convolution2` input ports are marked by `Precisions` attribute instances with not empty precisions collection. `convolution2` operation was detected as quantized with the `PerTensorQuantization` attribute, and the `QuantizationAlignment` attribute default value changed to `true`. Final model: diff --git a/docs/low_precision_transformations/pipeline/step3_main.md b/docs/low_precision_transformations/pipeline/step3_main.md index a42b9fff22d406..1e0f083f51454e 100644 --- a/docs/low_precision_transformations/pipeline/step3_main.md +++ b/docs/low_precision_transformations/pipeline/step3_main.md @@ -1,6 +1,6 @@ -# OpenVINOâ„¢ LPT: step #3. Main transformations {#openvino_docs_IE_DG_lpt_step3_main} +# OpenVINOâ„¢ LPT: Step #3. Main Transformations {#openvino_docs_IE_DG_lpt_step3_main} -Main transformations are the most part of low precision transformations. Transformations operate with dequantization operations. Transformations: +Main transformations are the majority of low precision transformations. Transformations operate with dequantization operations. Main transformations include: * [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) * [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) * [ClampTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) @@ -32,7 +32,7 @@ Main transformations are the most part of low precision transformations. Transfo * [UnsqueezeTransformation](@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation) * [VariadicSplitTransformation](@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation) -Let's explore some main transformations on example model. Original model: +Let's explore some main transformations on the example model. Original model: ![Original model](img/step3_original.png) @@ -40,10 +40,10 @@ Result model after main transformations: ![Original model](img/step3_transformed.png) -Changes in example model after main transformation: +Changes in the example model after main transformation: * All `FakeQuantize` operations (`fakeQuantize1`, `fakeQuantize2` and `fakeQuantize3`) were decomposed: - original `FakeQuantize` operations were replaced with new operations with other output intervals and output port precision, - dequantization operations. -* Dequantization operations were 'moved' via precision preserved (`concat1` and `concat2`) and quantized operations (`convolution2`) +* Dequantization operations were moved via precision preserved (`concat1` and `concat2`) and quantized (`convolution2`) operations. -> Note, left branch (branch #1) doesn't required per-tensor quantization. As result, `fakeQuantize1` output interval is [0, 255]. But quantized `convolution2` required per-tensor quantization on the right branch (branch #2). As result, all connected `FakeQuantize` interval operations (`fakeQuantize1` and `fakeQuantize2`) are aligned to have per-tensor quantization after concatenation (`concat2`) operation. \ No newline at end of file +> **Note:** the left branch (branch #1) does not require per-tensor quantization. As a result, the `fakeQuantize1`output interval is [0, 255]. But quantized `convolution2` requires per-tensor quantization on the right branch (branch #2). Then all connected `FakeQuantize` interval operations (`fakeQuantize1` and `fakeQuantize2`) are aligned to have per-tensor quantization after the concatenation (`concat2`) operation. diff --git a/docs/low_precision_transformations/pipeline/step4_cleanup.md b/docs/low_precision_transformations/pipeline/step4_cleanup.md index 6ffd0db25168bd..1acd709ddb6ff8 100644 --- a/docs/low_precision_transformations/pipeline/step4_cleanup.md +++ b/docs/low_precision_transformations/pipeline/step4_cleanup.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ LPT: step #4. Cleanup transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} +# OpenVINOâ„¢ LPT: Step #4. Cleanup Transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} * [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) * [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md index 964b801cfe34a2..b05cb2fc3a718b 100644 --- a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md @@ -4,29 +4,29 @@ ngraph::pass::low_precision::AddTransformation class represents the `Add` operat The transformation propagates dequantization subtraction from one input branch to another and propagates dequantization multiplication from the same branch through `Add` operation. In transformation result, one `Add` operation input branch is in low precision without dequantization operations (empty branch), another input branch is in original precision with updated dequantization operations (full branch). -Empty branch selection criteria step by step (by priority): +Criteria for selecting an empty branch in order of priority: -*Step #1.* If one branch is quantized only, then the quantized branch is empty branch. +*Step #1.* If one branch is quantized only, then the quantized branch is an empty branch. -*Step #2.* If only one branch has `FakeQuantize` before dequantization operations, then another branch is empty branch. +*Step #2.* If only one branch has `FakeQuantize` before dequantization operations, then another branch is an empty branch. -*Step #3.* If some `FakeQuantize` has more then one consumers and another only one, then the branch with `FakeQuantize` with several consumers is empty branch. +*Step #3.* If some `FakeQuantize` has more than one consumer and another has only one, then the branch with `FakeQuantize` with several consumers is an empty branch. -*Step #4.* Constant branch is in original precision, data branch is empty branch. In this case dequantization operations are propagated to constant branch and will be fused in one constant. +*Step #4.* Constant branch is in original precision, data branch is an empty branch. In this case, dequantization operations are propagated to a constant branch and will be fused in one constant. -*Step #5.* If both branches before `FakeQuantize` have operations from the list: `Convolution`, `GroupConvolution` and `MatMul`, or both branches before `FakeQuantize` don't have any operations from the same list, then the branch with larger shape volume is empty branch. +*Step #5.* If both branches have operations from the following list before `FakeQuantize`: `Convolution`, `GroupConvolution`, and `MatMul`, or do not have any operations from the list, then the branch with larger shape volume is empty. -*Step #6.* If in some branch an operation before `FakeQuantize` has several consumers then the branch is empty. +*Step #6.* If the operation before `FakeQuantize` has several consumers in any branch, then the branch is empty. -If dequantization operations on the full branch have `FakeQuantize` operation parent, then they will be fused with `FakeQuantize` during another low precision transformations. If `FakeQuantize` operation has a parent operation from the list: `Convolution`, `GroupConvolution` and `MatMul`, then during inference the `FakeQuantize` can be inferred in one plugin kernel with the parent operation. +If dequantization operations on the full branch have a `FakeQuantize` operation parent, then they will be fused with `FakeQuantize` during another low precision transformation. If a `FakeQuantize` operation has a parent operation from the list: `Convolution`, `GroupConvolution`, and `MatMul`, then during inference the `FakeQuantize` can be inferred in one plugin kernel with the parent operation. -Depending on the plugin instruction set, low precision inference for `Add` operation can be implemented in two logical steps in one plugin kernel: +Depending on the plugin instruction set, low precision inference for the `Add` operation can be implemented in two logical steps in one plugin kernel: - * Inference step #1: Operations in the full branch (for example: `Convolution` and `FakeQuantize` with fused dequantization operations) and `Add` can be inferred in original precision. + * Inference step #1: Operations in the full branch, for example, `Convolution` and `FakeQuantize` with fused dequantization operations, and `Add` can be inferred in the original precision. - * Inference step #2: Inference step #1 result can be added with empty branch tensor in low precision. + * Inference step #2: Inference step #1 result can be added with the empty branch tensor in low precision. -This approach allows to infer `Add` operation in the most optimal way. +This approach allows to infer the `Add` operation in the most optimal way. ## Subgraph before transformation The subgraph with quantized `Add` operation before transformation: @@ -38,7 +38,7 @@ y_{ch,i}=(scale1_{ch} * (x1_{ch,i} - shift1_{ch})) + (scale2_{ch} * (x2_{ch,i} - ![Add before](img/add.common.png) ## Subgraph after transformation -The subgraph with `Add` operation after the transformation: +The subgraph with the `Add` operation after the transformation: \f[ y_{ch,i}=scale2_{ch} * (scale1_{ch}' * (x1_{ch,i} - shift1_{ch}') + x2_{ch,i}) diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md index c924d9e80c1d1b..c6080743cb16dc 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md @@ -2,7 +2,7 @@ ngraph::pass::low_precision::ConvolutionTransformation class represents the `Convolution` operation transformation. -The transformation propagate dequantization operations on activations and on weights through `Convolution` operation. The transformation supports several weights quantization approaches: +The transformation propagates dequantization operations on activations and weights through the `Convolution` operation. The transformation supports several weights quantization approaches: * quantized weights in low precision with dequantization operations, * weights in original precision with `FakeQuantize` operation. @@ -13,8 +13,8 @@ result_{i} = a_{i} \cdot b_{i} \f] ## Limitations -* `Subtract` dequantization operations on activations and weights are not propagated and . -* Dequantization on activations have to be per-tensor. It means that dequantization `Multiply` constant value on activations has to be scalar. + +* Dequantization on activations must be per-tensor. It means that dequantization `Multiply` constant value on activations must be scalar. ## Subgraph before transformation diff --git a/docs/snippets/lpt_mkldnn_plugin.cpp b/docs/snippets/lpt_mkldnn_plugin.cpp index dc4af73d9146f7..6326a959c69a4c 100644 --- a/docs/snippets/lpt_mkldnn_plugin.cpp +++ b/docs/snippets/lpt_mkldnn_plugin.cpp @@ -33,7 +33,7 @@ std::shared_ptr nGraphFunc; ngraph::pass::Manager manager; auto pass_config = manager.get_pass_config(); //! [lpt_common] -// check if function is quantized to ignore LPT transformations for not quantized function to speed up model loading +// check if the function is quantized to ignore LPT transformations for not quantized function to speed up model loading const bool useLpt = ngraph::pass::low_precision::LowPrecision::isFunctionQuantized(nGraphFunc); if (useLpt) { // disable constant folding on constant subgraph to use the subgraph for LPT @@ -42,15 +42,15 @@ if (useLpt) { }); } -// nGraph common transformations are happened here +// nGraph common transformations happen here if (useLpt) { - // convert subtract constant to INT8 to prevent unnecessary conversion FP16 to FP32 + // convert subtract constant to INT8 to prevent unnecessary FP16 to FP32 conversion manager.register_pass(std::vector{ ngraph::element::i8, ngraph::element::u8, ngraph::element::i4, ngraph::element::u4 }); } -// nGraph common transformations are happened here +// nGraph common transformations happen here if (useLpt) { // convert not supported cases FakeQuantize -> Convert -> Convert -> Subtract -> Multiply to a single FakeQuantize @@ -90,7 +90,7 @@ if (useLpt) { }), }); - // Low precision transformations plugin specific configuration: per tensor quantization operations definition + // Low precision transformations plugin specific configuration: per-tensor quantization operations definition auto perTensorQuantization = std::vector({ OperationPerTensorQuantizationRestriction::create({0}), OperationPerTensorQuantizationRestriction::create({0}) diff --git a/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp b/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp index a7842ff47c412c..d5dfd222b1826d 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp @@ -21,7 +21,7 @@ class LP_TRANSFORMATIONS_API MarkupCanBeQuantized; /** * @ingroup ie_transformation_common_api * @brief MarkupCanBeQuantized transformation marks Convolution, ConvolutionBackpropData, GroupConvolution and Concat - * operations as can be quantized or not. If an operation is not quantized, then PrecisionsAttribute attribute instance + * operations as able to be quantized or not. If an operation is not quantized, then PrecisionsAttribute attribute instance * is created with empty precisions. */ class ngraph::pass::low_precision::MarkupCanBeQuantized : public ngraph::pass::FunctionPass { diff --git a/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp b/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp index 64a69858dc1597..08153ec6b4a75d 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp @@ -24,7 +24,7 @@ class LP_TRANSFORMATIONS_API MarkupPerTensorQuantization; /** * @ingroup ie_transformation_common_api - * @brief MarkupPerTensorQuantization transformation marks operations as required pre-tensor quantization in accordance with + * @brief MarkupPerTensorQuantization transformation marks operations as required per-tensor quantization according to the * provided restrictions. */ class ngraph::pass::low_precision::MarkupPerTensorQuantization : public ngraph::pass::FunctionPass { diff --git a/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp b/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp index fc9a7a0a87c50d..e6661914c432ce 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp @@ -27,7 +27,7 @@ class LP_TRANSFORMATIONS_API MarkupPrecisions; * @ingroup ie_transformation_common_api * @brief MarkupPrecisions transformation marks: * 1) not supported operations by PrecisionsAttribute attribute with empty precisions, - * 2) operations with required precisions by PrecisionsAttribute attribute in accordance with provided restrictions, + * 2) operations with required precisions by PrecisionsAttribute attribute according to the provided restrictions, * 3) precision preserved operations by PrecisionPreservedAttribute attribute. */ class ngraph::pass::low_precision::MarkupPrecisions : public ngraph::pass::FunctionPass { diff --git a/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp b/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp index f66e187c551784..36d778c2610501 100644 --- a/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp @@ -22,7 +22,7 @@ class LP_TRANSFORMATIONS_API PullReshapeThroughDequantization; /** * @ingroup ie_transformation_common_api * @brief PullReshapeThroughDequantization propagates dequantization operations through Reshape operations. - * The transformation is used on constant subgraph on weights to prepare a model for next low precision transformations. + * The transformation is used on constant subgraph weights to prepare a model for the next low precision transformations. */ class ngraph::pass::low_precision::PullReshapeThroughDequantization : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp b/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp index 54f8578508e294..da5370c729678f 100644 --- a/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp @@ -22,7 +22,7 @@ class LP_TRANSFORMATIONS_API PullTransposeThroughDequantization; /** * @ingroup ie_transformation_common_api * @brief PullTransposeThroughDequantization propagates dequantization operations through Transpose operations. - * The transformation is used on constant subgraph on weights to prepare a model for next low precision transformations. + * The transformation is used on constant subgraph weights to prepare a model for the next low precision transformations. */ class ngraph::pass::low_precision::PullTransposeThroughDequantization : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp index a12cfdc59f535d..1f13411f68e130 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp @@ -15,7 +15,7 @@ namespace ngraph { /** * @ingroup ie_transformation_common_api - * @brief PrecisionPreservedAttribute defines precision preserved operation. If attribute is absent then an operation is + * @brief PrecisionPreservedAttribute defines the precision preserved operation. If the attribute is absent, then an operation is * not precision preserved. */ class LP_TRANSFORMATIONS_API PrecisionPreservedAttribute : public SharedAttribute { From f14e8f1eb23cb211be56cf436b3d506ae186523f Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Wed, 22 Sep 2021 23:46:39 +0300 Subject: [PATCH 07/19] [LPT] Reference API to Developer Guide links were added --- .../include/low_precision/add.hpp | 4 ++++ .../include/low_precision/align_quantization_intervals.hpp | 7 +++++-- .../low_precision/align_quantization_parameters.hpp | 4 ++++ .../include/low_precision/avg_pool.hpp | 4 ++++ .../include/low_precision/clamp.hpp | 4 ++++ .../include/low_precision/concat.hpp | 4 ++++ .../include/low_precision/convert_subtract_constant.hpp | 4 ++++ .../include/low_precision/convolution.hpp | 4 ++++ .../include/low_precision/convolution_backprop_data.hpp | 4 ++++ .../include/low_precision/create_attribute.hpp | 3 +++ .../create_precisions_dependent_attribute.hpp | 4 ++++ .../include/low_precision/depth_to_space.hpp | 4 ++++ .../include/low_precision/fake_quantize.hpp | 4 ++++ .../include/low_precision/fake_quantize_decomposition.hpp | 4 ++++ .../include/low_precision/fold_convert.hpp | 4 ++++ .../include/low_precision/fold_fake_quantize.hpp | 4 ++++ .../include/low_precision/fuse_convert.hpp | 4 ++++ .../low_precision/fuse_multiply_to_fake_quantize.hpp | 4 ++++ .../low_precision/fuse_subtract_to_fake_quantize.hpp | 4 ++++ .../include/low_precision/group_convolution.hpp | 4 ++++ .../include/low_precision/interpolate.hpp | 4 ++++ .../low_precision/markup_avg_pool_precision_preserved.hpp | 4 ++++ .../include/low_precision/markup_can_be_quantized.hpp | 4 ++++ .../low_precision/markup_per_tensor_quantization.hpp | 4 ++++ .../include/low_precision/markup_precisions.hpp | 4 ++++ .../include/low_precision/mat_mul.hpp | 4 ++++ .../include/low_precision/max_pool.hpp | 4 ++++ .../include/low_precision/multiply.hpp | 4 ++++ .../low_precision/multiply_to_group_convolution.hpp | 4 ++++ .../include/low_precision/mvn.hpp | 4 ++++ .../include/low_precision/normalize_l2.hpp | 4 ++++ .../include/low_precision/pad.hpp | 4 ++++ .../include/low_precision/prelu.hpp | 4 ++++ .../include/low_precision/propagate_precisions.hpp | 4 ++++ .../include/low_precision/propagate_shared_value.hpp | 4 ++++ .../propagate_through_precision_preserved.hpp | 4 ++++ .../include/low_precision/propagate_to_input.hpp | 4 ++++ .../low_precision/pull_reshape_through_dequantization.hpp | 4 ++++ .../pull_transpose_through_dequantization.hpp | 4 ++++ .../include/low_precision/reduce_max.hpp | 4 ++++ .../include/low_precision/reduce_mean.hpp | 4 ++++ .../include/low_precision/reduce_min.hpp | 4 ++++ .../include/low_precision/reduce_sum.hpp | 4 ++++ .../include/low_precision/relu.hpp | 4 ++++ .../include/low_precision/reshape.hpp | 4 ++++ .../rt_info/avg_pool_precision_preserved_attribute.hpp | 3 +++ .../rt_info/intervals_alignment_attribute.hpp | 3 +++ .../rt_info/per_tensor_quantization_attribute.hpp | 3 +++ .../rt_info/precision_preserved_attribute.hpp | 3 +++ .../include/low_precision/rt_info/precisions_attribute.hpp | 3 +++ .../rt_info/quantization_alignment_attribute.hpp | 3 +++ .../include/low_precision/shuffle_channels.hpp | 4 ++++ .../include/low_precision/split.hpp | 4 ++++ .../include/low_precision/squeeze.hpp | 4 ++++ .../include/low_precision/strided_slice.hpp | 4 ++++ .../include/low_precision/subtract.hpp | 4 ++++ .../include/low_precision/transpose.hpp | 4 ++++ .../include/low_precision/unsqueeze.hpp | 4 ++++ .../low_precision/update_shared_precision_preserved.hpp | 4 ++++ .../include/low_precision/variadic_split.hpp | 4 ++++ 60 files changed, 234 insertions(+), 2 deletions(-) diff --git a/src/common/low_precision_transformations/include/low_precision/add.hpp b/src/common/low_precision_transformations/include/low_precision/add.hpp index d25aa28800e6be..f5bfc4d06fbe1d 100644 --- a/src/common/low_precision_transformations/include/low_precision/add.hpp +++ b/src/common/low_precision_transformations/include/low_precision/add.hpp @@ -15,6 +15,10 @@ namespace low_precision { * @ingroup ie_transformation_common_api * @brief AddTransformation propagates dequantization subtraction from one input branch to another and * propagates dequantization multiplication from the same branch through Add operation. + * + * For more details about the transformation, refer to + * [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API AddTransformation : public EltwiseBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp b/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp index f94df876513cd5..63500cf39b69e3 100644 --- a/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp +++ b/src/common/low_precision_transformations/include/low_precision/align_quantization_intervals.hpp @@ -21,8 +21,11 @@ class LP_TRANSFORMATIONS_API AlignQuantizationIntervals; /** * @ingroup ie_transformation_common_api * @brief AlignQuantizationIntervals transformation marks precision preserved operations subgraph by `IntervalsAlignmentAttribute` - * after FakeQuantize - * operations. + * after FakeQuantize operations. + * + * For more details about the transformation, refer to + * [AlignQuantizationIntervals](@ref openvino_docs_IE_DG_lpt_AlignQuantizationIntervals) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::AlignQuantizationIntervals : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp b/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp index d177ff46647458..f45d447cdfe04d 100644 --- a/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp +++ b/src/common/low_precision_transformations/include/low_precision/align_quantization_parameters.hpp @@ -23,6 +23,10 @@ class LP_TRANSFORMATIONS_API AlignQuantizationParameters; * @ingroup ie_transformation_common_api * @brief AlignQuantizationParameters transformation marks precision preserved operations subgraph by `QuantizationAlignmentAttribute` * attribute after FakeQuantize operations. + * + * For more details about the transformation, refer to + * [AlignQuantizationParameters](@ref openvino_docs_IE_DG_lpt_AlignQuantizationParameters) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::AlignQuantizationParameters : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp b/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp index 4e6c2eea6f5aa8..f6fa113fc8a432 100644 --- a/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp +++ b/src/common/low_precision_transformations/include/low_precision/avg_pool.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief AvgPoolTransformation propagates dequantization operations through AvgPool operation. + * + * For more details about the transformation, refer to + * [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API AvgPoolTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/clamp.hpp b/src/common/low_precision_transformations/include/low_precision/clamp.hpp index 16acc6683978d5..0af98ae690a561 100644 --- a/src/common/low_precision_transformations/include/low_precision/clamp.hpp +++ b/src/common/low_precision_transformations/include/low_precision/clamp.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ClampTransformation propagates dequantization operations through Clamp operation. + * + * For more details about the transformation, refer to + * [ClampTransformation](@ref openvino_docs_IE_DG_lpt_ClampTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ClampTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/concat.hpp b/src/common/low_precision_transformations/include/low_precision/concat.hpp index 12267bae6aa889..448b600f99445e 100644 --- a/src/common/low_precision_transformations/include/low_precision/concat.hpp +++ b/src/common/low_precision_transformations/include/low_precision/concat.hpp @@ -22,6 +22,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ConcatTransformation propagates dequantization operations through Concat operation. + * + * For more details about the transformation, refer to + * [ConcatTransformation](@ref openvino_docs_IE_DG_lpt_ConcatTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ConcatTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp b/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp index 1b43090254109a..d03b4895538309 100644 --- a/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp +++ b/src/common/low_precision_transformations/include/low_precision/convert_subtract_constant.hpp @@ -24,6 +24,10 @@ class LP_TRANSFORMATIONS_API ConvertSubtractConstant; * @ingroup ie_transformation_common_api * @brief ConvertSubtractConstant marks Convert operations on constant subgraph by DISABLED_CONSTANT_FOLDING attribute * to prevent constant folding. + * + * For more details about the transformation, refer to + * [ConvertSubtractConstant](@ref openvino_docs_IE_DG_lpt_ConvertSubtractConstant) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::ConvertSubtractConstant : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/convolution.hpp b/src/common/low_precision_transformations/include/low_precision/convolution.hpp index 495d155c7713b4..c124f1a7bf9aa8 100644 --- a/src/common/low_precision_transformations/include/low_precision/convolution.hpp +++ b/src/common/low_precision_transformations/include/low_precision/convolution.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ConvolutionTransformation propagates dequantization operations through Convolution operation. + * + * For more details about the transformation, refer to + * [ConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ConvolutionTransformation : public WeightableLayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp b/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp index bb22a392d49d2f..c64cc7198c251d 100644 --- a/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp +++ b/src/common/low_precision_transformations/include/low_precision/convolution_backprop_data.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ConvolutionBackpropDataTransformation propagates dequantization operations through ConvolutionBackpropData operation. + * + * For more details about the transformation, refer to + * [ConvolutionBackpropDataTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation) page in + * the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ConvolutionBackpropDataTransformation : public WeightableLayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp index c9a991de9e7a2d..8388003778b561 100644 --- a/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/create_attribute.hpp @@ -34,6 +34,9 @@ enum class AttributeSource { /** * @ingroup ie_transformation_common_api * @brief CreateAttribute transformation marks OperationType operations by AttributeType attribute. + * + * For more details about the transformation, refer to + * [CreateAttribute](@ref openvino_docs_IE_DG_lpt_CreateAttribute) page in the Inference Engine Developer Guide. */ template class ngraph::pass::low_precision::CreateAttribute : public ngraph::pass::low_precision::BaseMatcherPass { diff --git a/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp index 490015b1f3dc11..e157940b12d1ba 100644 --- a/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/create_precisions_dependent_attribute.hpp @@ -33,6 +33,10 @@ class CreatePrecisionsDependentAttribute; * @ingroup ie_transformation_common_api * @brief CreatePrecisionsDependentAttribute transformation marks OperationType operations by * PrecisionPreservedAttribute and AttributeType attributes with the same shared part. + * + * For more details about the transformation, refer to + * [CreatePrecisionsDependentAttribute](@ref openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute) page + * in the Inference Engine Developer Guide. */ template class ngraph::pass::low_precision::CreatePrecisionsDependentAttribute : public ngraph::pass::MatcherPass { diff --git a/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp b/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp index 015319d6accc8a..20e21110f5629c 100644 --- a/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp +++ b/src/common/low_precision_transformations/include/low_precision/depth_to_space.hpp @@ -13,6 +13,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief DepthToSpaceTransformation propagates dequantization operations through DepthToSpace operation. + * + * For more details about the transformation, refer to + * [DepthToSpaceTransformation](@ref openvino_docs_IE_DG_lpt_DepthToSpaceTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API DepthToSpaceTransformation : public TransparentBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp index 78400a5148555d..cb56422246769f 100644 --- a/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fake_quantize.hpp @@ -16,6 +16,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief FakeQuantizeTransformation fuses dequantization operations into FakeQuantize operation. + * + * For more details about the transformation, refer to + * [FakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FakeQuantizeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp b/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp index f4f56a5b7b2bb9..7123fbe0157b16 100644 --- a/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fake_quantize_decomposition.hpp @@ -17,6 +17,10 @@ namespace low_precision { * @ingroup ie_transformation_common_api * @brief FakeQuantizeDecompositionTransformation decomposes FakeQuantize operations to quantize * (FakeQuantize with changes output intervals and low precision output type) and dequantize operations. + * + * For more details about the transformation, refer to + * [FakeQuantizeDecompositionTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FakeQuantizeDecompositionTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp b/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp index 1911151c6df8a9..0c5fd8cf0025fa 100644 --- a/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fold_convert.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief FoldConvertTransformation evaluates Convert operation on Subtract constant subgraph. + * + * For more details about the transformation, refer to + * [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FoldConvertTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp index d1be45afb0e2f3..474fd4dfe8e926 100644 --- a/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fold_fake_quantize.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief FoldFakeQuantizeTransformation evaluate FakeQuantize operations. + * + * For more details about the transformation, refer to + * [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FoldFakeQuantizeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp index 58a7c431e56f8b..24ee1ee89949ab 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_convert.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief FuseConvertTransformation fuses Convert operation with Multiply, Subtract or Add operations. + * + * For more details about the transformation, refer to + * [FuseConvertTransformation](@ref openvino_docs_IE_DG_lpt_FuseConvertTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FuseConvertTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp index aa2b42e39e6e7e..335eb292be9d5e 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_multiply_to_fake_quantize.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief FuseMultiplyToFakeQuantizeTransformation fuses Multiply operation to FakeQuantize. + * + * For more details about the transformation, refer to + * [FuseMultiplyToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FuseMultiplyToFakeQuantizeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp index 241b4b69338397..6b06e1505fcfba 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_subtract_to_fake_quantize.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief FuseSubtractToFakeQuantizeTransformation fuses Subtract operation to FakeQuantize. + * + * For more details about the transformation, refer to + * [FuseSubtractToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API FuseSubtractToFakeQuantizeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp b/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp index ae01a040131de4..2e249fd79475ce 100644 --- a/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp +++ b/src/common/low_precision_transformations/include/low_precision/group_convolution.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief GroupConvolutionTransformation propagates dequantization operations through GroupConvolution operation. + * + * For more details about the transformation, refer to + * [GroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_GroupConvolutionTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API GroupConvolutionTransformation : public ConvolutionTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/interpolate.hpp b/src/common/low_precision_transformations/include/low_precision/interpolate.hpp index 73f597bd81108b..cfb7d1c3a80c48 100644 --- a/src/common/low_precision_transformations/include/low_precision/interpolate.hpp +++ b/src/common/low_precision_transformations/include/low_precision/interpolate.hpp @@ -13,6 +13,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief InterpolateTransformation propagates dequantization operations through Interpolate operation. + * + * For more details about the transformation, refer to + * [InterpolateTransformation](@ref openvino_docs_IE_DG_lpt_InterpolateTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API InterpolateTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp b/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp index 2e1f66bd2d7329..d2d3f6d75c6f2c 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_avg_pool_precision_preserved.hpp @@ -21,6 +21,10 @@ class LP_TRANSFORMATIONS_API MarkupAvgPoolPrecisionPreserved; /** * @ingroup ie_transformation_common_api * @brief MarkupAvgPoolPrecisionPreserved transformation marks AvgPool operations as precision preserved or not. + * + * For more details about the transformation, refer to + * [MarkupAvgPoolPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::MarkupAvgPoolPrecisionPreserved : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp b/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp index d5dfd222b1826d..81885274cb1e1c 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_can_be_quantized.hpp @@ -23,6 +23,10 @@ class LP_TRANSFORMATIONS_API MarkupCanBeQuantized; * @brief MarkupCanBeQuantized transformation marks Convolution, ConvolutionBackpropData, GroupConvolution and Concat * operations as able to be quantized or not. If an operation is not quantized, then PrecisionsAttribute attribute instance * is created with empty precisions. + * + * For more details about the transformation, refer to + * [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::MarkupCanBeQuantized : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp b/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp index 08153ec6b4a75d..fda9a25030d4f1 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_per_tensor_quantization.hpp @@ -26,6 +26,10 @@ class LP_TRANSFORMATIONS_API MarkupPerTensorQuantization; * @ingroup ie_transformation_common_api * @brief MarkupPerTensorQuantization transformation marks operations as required per-tensor quantization according to the * provided restrictions. + * + * For more details about the transformation, refer to + * [MarkupPerTensorQuantization](@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::MarkupPerTensorQuantization : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp b/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp index e6661914c432ce..87c9a0d0563603 100644 --- a/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp +++ b/src/common/low_precision_transformations/include/low_precision/markup_precisions.hpp @@ -29,6 +29,10 @@ class LP_TRANSFORMATIONS_API MarkupPrecisions; * 1) not supported operations by PrecisionsAttribute attribute with empty precisions, * 2) operations with required precisions by PrecisionsAttribute attribute according to the provided restrictions, * 3) precision preserved operations by PrecisionPreservedAttribute attribute. + * + * For more details about the transformation, refer to + * [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::MarkupPrecisions : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp b/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp index 929052e8532f67..a97e896bd30673 100644 --- a/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp +++ b/src/common/low_precision_transformations/include/low_precision/mat_mul.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief MatMulTransformation propagates dequantization operations through MatMul operation. + * + * For more details about the transformation, refer to + * [MatMulTransformation](@ref openvino_docs_IE_DG_lpt_MatMulTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API MatMulTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/max_pool.hpp b/src/common/low_precision_transformations/include/low_precision/max_pool.hpp index 216d5eb90c8d49..dcea90fca82596 100644 --- a/src/common/low_precision_transformations/include/low_precision/max_pool.hpp +++ b/src/common/low_precision_transformations/include/low_precision/max_pool.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief MaxPoolTransformation propagates dequantization operations through MaxPool operation. + * + * For more details about the transformation, refer to + * [MaxPoolTransformation](@ref openvino_docs_IE_DG_lpt_MaxPoolTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API MaxPoolTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/multiply.hpp b/src/common/low_precision_transformations/include/low_precision/multiply.hpp index 7cd9fe945d8b5c..aeec4e8b9d57c9 100644 --- a/src/common/low_precision_transformations/include/low_precision/multiply.hpp +++ b/src/common/low_precision_transformations/include/low_precision/multiply.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief MultiplyTransformation propagates dequantization operations through Multiply operation. + * + * For more details about the transformation, refer to + * [MultiplyTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API MultiplyTransformation : public EltwiseBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp b/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp index 12d9c09cc12e82..eb0122d390d34e 100644 --- a/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp +++ b/src/common/low_precision_transformations/include/low_precision/multiply_to_group_convolution.hpp @@ -16,6 +16,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief MultiplyToGroupConvolutionTransformation replace quantized Multiply operations to GroupConvolution to speed up inference. + * + * For more details about the transformation, refer to + * [MultiplyToGroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API MultiplyToGroupConvolutionTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/mvn.hpp b/src/common/low_precision_transformations/include/low_precision/mvn.hpp index 44a99f69b42b68..a853ccf89118d6 100644 --- a/src/common/low_precision_transformations/include/low_precision/mvn.hpp +++ b/src/common/low_precision_transformations/include/low_precision/mvn.hpp @@ -13,6 +13,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief MVNTransformation propagates dequantization operations through MVN operation. + * + * For more details about the transformation, refer to + * [MVNTransformation](@ref openvino_docs_IE_DG_lpt_MVNTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API MVNTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp b/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp index 31c48d521f9e39..28250fadd21f00 100644 --- a/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp +++ b/src/common/low_precision_transformations/include/low_precision/normalize_l2.hpp @@ -13,6 +13,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief NormalizeL2Transformation propagates dequantization operations through NormalizeL2 operation. + * + * For more details about the transformation, refer to + * [NormalizeL2Transformation](@ref openvino_docs_IE_DG_lpt_NormalizeL2Transformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API NormalizeL2Transformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/pad.hpp b/src/common/low_precision_transformations/include/low_precision/pad.hpp index f005f6eb12efb2..ce01ca32b5d431 100644 --- a/src/common/low_precision_transformations/include/low_precision/pad.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pad.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief PadTransformation propagates dequantization operations through Pad operation. + * + * For more details about the transformation, refer to + * [PadTransformation](@ref openvino_docs_IE_DG_lpt_PadTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API PadTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/prelu.hpp b/src/common/low_precision_transformations/include/low_precision/prelu.hpp index cb5b1177451bed..e93d70a9078f40 100644 --- a/src/common/low_precision_transformations/include/low_precision/prelu.hpp +++ b/src/common/low_precision_transformations/include/low_precision/prelu.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief PReluTransformation propagates dequantization operations through PRelu operation. + * + * For more details about the transformation, refer to + * [PReluTransformation](@ref openvino_docs_IE_DG_lpt_PReluTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API PReluTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp index 8708973960727d..57e8eb07da3195 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_precisions.hpp @@ -25,6 +25,10 @@ class LP_TRANSFORMATIONS_API PropagatePrecisions; /** * @ingroup ie_transformation_common_api * @brief PropagatePrecisions transformation propagates PrecisionsAttribute attribute instances precision preserved operations. + * + * For more details about the transformation, refer to + * [PropagatePrecisions](@ref openvino_docs_IE_DG_lpt_PropagatePrecisions) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::PropagatePrecisions : public ngraph::pass::FunctionPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp index 2e368e229dd0a1..2049d062a535bb 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_shared_value.hpp @@ -31,6 +31,10 @@ class LP_TRANSFORMATIONS_API PropagateSharedValue; * @ingroup ie_transformation_common_api * @brief PropagateSharedValue transformation propagates shared value AttributeType attribute instances * through precision preserved operations. + * + * For more details about the transformation, refer to + * [PropagateSharedValue](@ref openvino_docs_IE_DG_lpt_PropagateSharedValue) page + * in the Inference Engine Developer Guide. */ template class ngraph::pass::low_precision::PropagateSharedValue : public ngraph::pass::FunctionPass { diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp index 3d0addfeec289c..cf2512e0a523ae 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_through_precision_preserved.hpp @@ -31,6 +31,10 @@ class PropagateThroughPrecisionPreserved; * @ingroup ie_transformation_common_api * @brief PropagateThroughPrecisionPreserved transformation propagates AttributeType attribute instances * through precision preserved operations. + * + * For more details about the transformation, refer to + * [PropagateThroughPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved) page + * in the Inference Engine Developer Guide. */ template class ngraph::pass::low_precision::PropagateThroughPrecisionPreserved : public ngraph::pass::MatcherPass { diff --git a/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp b/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp index 496b44c424c235..7bc661f292ae13 100644 --- a/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp +++ b/src/common/low_precision_transformations/include/low_precision/propagate_to_input.hpp @@ -30,6 +30,10 @@ class PropagateToInput; * @ingroup ie_transformation_common_api * @brief PropagateToInput transformation propagates AttributeType shared value attribute instances * from parent output ports to consumers input ports. + * + * For more details about the transformation, refer to + * [PropagateToInput](@ref openvino_docs_IE_DG_lpt_PropagateToInput) page + * in the Inference Engine Developer Guide. */ template class ngraph::pass::low_precision::PropagateToInput : public ngraph::pass::MatcherPass { diff --git a/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp b/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp index 36d778c2610501..4a872e257b9802 100644 --- a/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pull_reshape_through_dequantization.hpp @@ -23,6 +23,10 @@ class LP_TRANSFORMATIONS_API PullReshapeThroughDequantization; * @ingroup ie_transformation_common_api * @brief PullReshapeThroughDequantization propagates dequantization operations through Reshape operations. * The transformation is used on constant subgraph weights to prepare a model for the next low precision transformations. + * + * For more details about the transformation, refer to + * [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::PullReshapeThroughDequantization : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp b/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp index da5370c729678f..973ec50e3c0802 100644 --- a/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp +++ b/src/common/low_precision_transformations/include/low_precision/pull_transpose_through_dequantization.hpp @@ -23,6 +23,10 @@ class LP_TRANSFORMATIONS_API PullTransposeThroughDequantization; * @ingroup ie_transformation_common_api * @brief PullTransposeThroughDequantization propagates dequantization operations through Transpose operations. * The transformation is used on constant subgraph weights to prepare a model for the next low precision transformations. + * + * For more details about the transformation, refer to + * [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization) page + * in the Inference Engine Developer Guide. */ class ngraph::pass::low_precision::PullTransposeThroughDequantization : public ngraph::pass::MatcherPass { public: diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp index a5d2feb5fe755d..a94d6937313a7b 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_max.hpp @@ -17,6 +17,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ReduceMaxTransformation propagates dequantization operations through ReduceMax operation. + * + * For more details about the transformation, refer to + * [ReduceMaxTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMaxTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ReduceMaxTransformation : public ReduceBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp index 82edc5213f5892..fd2e8cb1e69856 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_mean.hpp @@ -17,6 +17,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ReduceMeanTransformation propagates dequantization operations through ReduceMean operation. + * + * For more details about the transformation, refer to + * [ReduceMeanTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMeanTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ReduceMeanTransformation : public ReduceBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp index 077c5d4d70ba41..fa203fec71c700 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_min.hpp @@ -17,6 +17,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ReduceMinTransformation propagates dequantization operations through ReduceMin operation. + * + * For more details about the transformation, refer to + * [ReduceMinTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMinTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ReduceMinTransformation : public ReduceBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp b/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp index 35a1ac64692f0d..ac37fa47ca6523 100644 --- a/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reduce_sum.hpp @@ -17,6 +17,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ReduceSumTransformation propagates dequantization operations through ReduceSum operation. + * + * For more details about the transformation, refer to + * [ReduceSumTransformation](@ref openvino_docs_IE_DG_lpt_ReduceSumTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ReduceSumTransformation : public ReduceBaseTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/relu.hpp b/src/common/low_precision_transformations/include/low_precision/relu.hpp index 1cfe662fb210d2..fdca5d5cafa818 100644 --- a/src/common/low_precision_transformations/include/low_precision/relu.hpp +++ b/src/common/low_precision_transformations/include/low_precision/relu.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ReluTransformation propagates dequantization operations through Relu operation. + * + * For more details about the transformation, refer to + * [ReluTransformation](@ref openvino_docs_IE_DG_lpt_ReluTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ReluTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/reshape.hpp b/src/common/low_precision_transformations/include/low_precision/reshape.hpp index bb4b9753d04381..53b904d87095e0 100644 --- a/src/common/low_precision_transformations/include/low_precision/reshape.hpp +++ b/src/common/low_precision_transformations/include/low_precision/reshape.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ReshapeTransformation propagates dequantization operations through Reshape operation. + * + * For more details about the transformation, refer to + * [ReshapeTransformation](@ref openvino_docs_IE_DG_lpt_ReshapeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ReshapeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp index cecceafcf134b0..2e2a83cd2610ea 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/avg_pool_precision_preserved_attribute.hpp @@ -18,6 +18,9 @@ namespace ngraph { * @ingroup ie_transformation_common_api * @brief AvgPoolPrecisionPreservedAttribute is utility attribute which is used only during `AvgPool` operation precision * preserved property definition. + * + * For more details about the attribute, refer to + * [AvgPoolPrecisionPreservedAttribute](@ref openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved) page in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API AvgPoolPrecisionPreservedAttribute : public PrecisionPreservedAttribute { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp index ea5bb135fbb8a6..f24593dfbb91fb 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/intervals_alignment_attribute.hpp @@ -53,6 +53,9 @@ class LP_TRANSFORMATIONS_API IntervalsAlignmentSharedValue { * @ingroup ie_transformation_common_api * @brief IntervalsAlignmentAttribute defines subgraph with the same quantization intervals alignment. * FakeQuantize operations are included. The attribute is used by quantization operations. + * + * For more details about the attribute, refer to + * [IntervalsAlignmentAttribute](@ref openvino_docs_IE_DG_lpt_IntervalsAlignment) page in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API IntervalsAlignmentAttribute : public SharedAttribute { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp index 271afd15dc49b9..bef9a3157fd3c8 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/per_tensor_quantization_attribute.hpp @@ -17,6 +17,9 @@ namespace ngraph { /** * @ingroup ie_transformation_common_api * @brief PerTensorQuantizationAttribute defines if operation input port requires per-tensor quantization. + * + * For more details about the attribute, refer to + * [PerTensorQuantizationAttribute](@ref openvino_docs_IE_DG_lpt_PerTensorQuantization) page in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API PerTensorQuantizationAttribute : public ov::RuntimeAttribute { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp index 1f13411f68e130..3f2bbec9977f9f 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/precision_preserved_attribute.hpp @@ -17,6 +17,9 @@ namespace ngraph { * @ingroup ie_transformation_common_api * @brief PrecisionPreservedAttribute defines the precision preserved operation. If the attribute is absent, then an operation is * not precision preserved. + * + * For more details about the attribute, refer to + * [PrecisionPreservedAttribute](@ref openvino_docs_IE_DG_lpt_PrecisionPreserved) page in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API PrecisionPreservedAttribute : public SharedAttribute { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp index 389a533cc2cb5f..264494427d6401 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/precisions_attribute.hpp @@ -21,6 +21,9 @@ namespace ngraph { /** * @ingroup ie_transformation_common_api * @brief PrecisionsAttribute defines precision which is required for input/output port or an operation. + * + * For more details about the attribute, refer to + * [PrecisionsAttribute](@ref openvino_docs_IE_DG_lpt_Precisions) page in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API PrecisionsAttribute : public SharedAttribute> { public: diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp index 61a794c5c7fda5..96f5b9ec02bd24 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/quantization_alignment_attribute.hpp @@ -22,6 +22,9 @@ namespace ngraph { * @ingroup ie_transformation_common_api * @brief QuantizationAlignmentAttribute defines subgraph with the same quantization alignment. * FakeQuantize operations are not included. The attribute is used by quantization operations. + * + * For more details about the attribute, refer to + * [QuantizationAlignmentAttribute](@ref openvino_docs_IE_DG_lpt_QuantizationAlignment) page in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API QuantizationAlignmentAttribute : public SharedAttribute { public: diff --git a/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp b/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp index b4d8bdfa0c6b4e..f5dd05fc8bce8a 100644 --- a/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp +++ b/src/common/low_precision_transformations/include/low_precision/shuffle_channels.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief ShuffleChannelsTransformation propagates dequantization operations through ShuffleChannels operation. + * + * For more details about the transformation, refer to + * [ShuffleChannelsTransformation](@ref openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API ShuffleChannelsTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/split.hpp b/src/common/low_precision_transformations/include/low_precision/split.hpp index b1578429eddfa8..e85b5ed2dde8ab 100644 --- a/src/common/low_precision_transformations/include/low_precision/split.hpp +++ b/src/common/low_precision_transformations/include/low_precision/split.hpp @@ -16,6 +16,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief SplitTransformation propagates dequantization operations through Split operation. + * + * For more details about the transformation, refer to + * [SplitTransformation](@ref openvino_docs_IE_DG_lpt_SplitTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API SplitTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/squeeze.hpp b/src/common/low_precision_transformations/include/low_precision/squeeze.hpp index f0db65d0837a8d..2bac4300c14ab8 100644 --- a/src/common/low_precision_transformations/include/low_precision/squeeze.hpp +++ b/src/common/low_precision_transformations/include/low_precision/squeeze.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief SqueezeTransformation propagates dequantization operations through Squeeze operation. + * + * For more details about the transformation, refer to + * [SqueezeTransformation](@ref openvino_docs_IE_DG_lpt_SqueezeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API SqueezeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp b/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp index 3b26d6562482c9..cf7bc52f4086ef 100644 --- a/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp +++ b/src/common/low_precision_transformations/include/low_precision/strided_slice.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief StridedSliceTransformation propagates dequantization operations through StridedSlice operation. + * + * For more details about the transformation, refer to + * [StridedSliceTransformation](@ref openvino_docs_IE_DG_lpt_StridedSliceTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API StridedSliceTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/subtract.hpp b/src/common/low_precision_transformations/include/low_precision/subtract.hpp index 7e3a79ebd1f76e..4d15b62c6c27d0 100644 --- a/src/common/low_precision_transformations/include/low_precision/subtract.hpp +++ b/src/common/low_precision_transformations/include/low_precision/subtract.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief SubtractTransformation propagates dequantization operations through Subtract operation. + * + * For more details about the transformation, refer to + * [SubtractTransformation](@ref openvino_docs_IE_DG_lpt_SubtractTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API SubtractTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/transpose.hpp b/src/common/low_precision_transformations/include/low_precision/transpose.hpp index abb0e50662b773..f9eadc075782f8 100644 --- a/src/common/low_precision_transformations/include/low_precision/transpose.hpp +++ b/src/common/low_precision_transformations/include/low_precision/transpose.hpp @@ -15,6 +15,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief TransposeTransformation propagates dequantization operations through Transpose operation. + * + * For more details about the transformation, refer to + * [TransposeTransformation](@ref openvino_docs_IE_DG_lpt_TransposeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API TransposeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp b/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp index ce00fc65514bd0..92e4e2671e05e8 100644 --- a/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp +++ b/src/common/low_precision_transformations/include/low_precision/unsqueeze.hpp @@ -14,6 +14,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief UnsqueezeTransformation propagates dequantization operations through Unsqueeze operation. + * + * For more details about the transformation, refer to + * [UnsqueezeTransformation](@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API UnsqueezeTransformation : public LayerTransformation { public: diff --git a/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp b/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp index 80fabdc47bad10..e7899731d9a9da 100644 --- a/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp +++ b/src/common/low_precision_transformations/include/low_precision/update_shared_precision_preserved.hpp @@ -29,6 +29,10 @@ class UpdateSharedPrecisionPreserved; * @ingroup ie_transformation_common_api * @brief UpdateSharedPrecisionPreserved transformation updates shared AttributeType attribute instance value to true * for precision preserved operations if ExpectedAttributeType exist. + * + * For more details about the transformation, refer to + * [UpdateSharedPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved) page + * in the Inference Engine Developer Guide. */ template class ngraph::pass::low_precision::UpdateSharedPrecisionPreserved : public ngraph::pass::MatcherPass { diff --git a/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp b/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp index f8cbd71f0587a2..2b45d001023c87 100644 --- a/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp +++ b/src/common/low_precision_transformations/include/low_precision/variadic_split.hpp @@ -16,6 +16,10 @@ namespace low_precision { /** * @ingroup ie_transformation_common_api * @brief VariadicSplitTransformation propagates dequantization operations through VariadicSplit operation. + * + * For more details about the transformation, refer to + * [VariadicSplitTransformation](@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation) page + * in the Inference Engine Developer Guide. */ class LP_TRANSFORMATIONS_API VariadicSplitTransformation : public SplitTransformation { public: From 2b3b6b2f32de1c4c9400a2faf4f70893b3e08ec1 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Thu, 23 Sep 2021 16:25:11 +0300 Subject: [PATCH 08/19] [LPT] titles were changed --- .../attributes/avg_pool_precision_preserved.md | 2 +- .../attributes/intervals_alignment.md | 2 +- .../attributes/per_tensor_quantization.md | 2 +- .../attributes/precision_preserved.md | 2 +- docs/low_precision_transformations/attributes/precisions.md | 2 +- .../attributes/quantization_alignment.md | 2 +- docs/low_precision_transformations/lpt_attributes.md | 2 +- .../pipeline/step1_prerequisites.md | 2 +- docs/low_precision_transformations/pipeline/step2_markup.md | 2 +- docs/low_precision_transformations/pipeline/step3_main.md | 2 +- docs/low_precision_transformations/pipeline/step4_cleanup.md | 2 +- .../step1_prerequisites/lin_op_sequence_fusion.md | 2 +- .../step1_prerequisites/pull_reshape_through_dequantization.md | 2 +- .../pull_transpose_through_dequantization.md | 2 +- .../step2_markup/align_quantization_intervals.md | 2 +- .../step2_markup/align_quantization_parameters.md | 2 +- .../transformations/step2_markup/create_attribute.md | 2 +- .../step2_markup/create_precisions_dependent_attribute.md | 2 +- .../step2_markup/markup_avg_pool_precision_preserved.md | 2 +- .../transformations/step2_markup/markup_can_be_quantized.md | 2 +- .../step2_markup/markup_per_tensor_quantization.md | 2 +- .../transformations/step2_markup/markup_precisions.md | 2 +- .../transformations/step2_markup/propagate_precisions.md | 2 +- .../step2_markup/propagate_through_precision_preserved.md | 2 +- .../transformations/step2_markup/propagate_to_input.md | 2 +- .../step2_markup/update_shared_precision_preserved.md | 2 +- .../transformations/step3_main/activation/clamp.md | 2 +- .../transformations/step3_main/activation/prelu.md | 2 +- .../transformations/step3_main/activation/relu.md | 2 +- .../transformations/step3_main/arithmetic/add.md | 2 +- .../transformations/step3_main/arithmetic/multiply.md | 2 +- .../transformations/step3_main/convolution/convolution.md | 2 +- .../step3_main/convolution/convolution_backprop_data.md | 2 +- .../transformations/step3_main/convolution/group_convolution.md | 2 +- .../transformations/step3_main/image/interpolate.md | 2 +- .../transformations/step3_main/matrix/mat_mul.md | 2 +- .../transformations/step3_main/movement/concat.md | 2 +- .../transformations/step3_main/movement/depth_to_space.md | 2 +- .../transformations/step3_main/movement/shuffle_channels.md | 2 +- .../transformations/step3_main/movement/split.md | 2 +- .../transformations/step3_main/movement/strided_slice.md | 2 +- .../transformations/step3_main/movement/transpose.md | 2 +- .../transformations/step3_main/movement/variadic_split.md | 2 +- .../transformations/step3_main/normalization/mvn.md | 2 +- .../transformations/step3_main/normalization/normalize_l2.md | 2 +- .../transformations/step3_main/pooling/avg_pool.md | 2 +- .../transformations/step3_main/pooling/max_pool.md | 2 +- .../transformations/step3_main/quantization/fake_quantize.md | 2 +- .../step3_main/quantization/fold_fake_quantize.md | 2 +- .../transformations/step3_main/reduction/reduce_max.md | 2 +- .../transformations/step3_main/reduction/reduce_mean.md | 2 +- .../transformations/step3_main/reduction/reduce_min.md | 2 +- .../transformations/step3_main/reduction/reduce_sum.md | 2 +- .../transformations/step3_main/shape/reshape.md | 2 +- .../transformations/step3_main/shape/squeeze.md | 2 +- .../transformations/step3_main/shape/unsqueeze.md | 2 +- .../step4_cleanup/fake_quantize_decomposition.md | 2 +- .../transformations/step4_cleanup/fold_convert.md | 2 +- .../transformations/step4_cleanup/fuse_convert.md | 2 +- .../step4_cleanup/fuse_multiply_to_fake_quantize.md | 2 +- .../step4_cleanup/fuse_subtract_to_fake_quantize.md | 2 +- .../step4_cleanup/multiply_to_group_convolution.md | 2 +- 62 files changed, 62 insertions(+), 62 deletions(-) diff --git a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md index 9b9ef6cdd083be..30f7411cbd9772 100644 --- a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md +++ b/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: AvgPoolPrecisionPreserved {#openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved} +# AvgPoolPrecisionPreserved attribute {#openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved} ngraph::AvgPoolPrecisionPreservedAttribute class represents the `AvgPoolPrecisionPreserved` attribute. diff --git a/docs/low_precision_transformations/attributes/intervals_alignment.md b/docs/low_precision_transformations/attributes/intervals_alignment.md index 984266b629ef85..b977fd4a325fe2 100644 --- a/docs/low_precision_transformations/attributes/intervals_alignment.md +++ b/docs/low_precision_transformations/attributes/intervals_alignment.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: IntervalsAlignment {#openvino_docs_IE_DG_lpt_IntervalsAlignment} +# IntervalsAlignment attribute {#openvino_docs_IE_DG_lpt_IntervalsAlignment} ngraph::IntervalsAlignmentAttribute class represents the `IntervalsAlignment` attribute. diff --git a/docs/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/low_precision_transformations/attributes/per_tensor_quantization.md index f5bec681e2594b..03a8a6721779bf 100644 --- a/docs/low_precision_transformations/attributes/per_tensor_quantization.md +++ b/docs/low_precision_transformations/attributes/per_tensor_quantization.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: PerTensorQuantization {#openvino_docs_IE_DG_lpt_PerTensorQuantization} +# PerTensorQuantization attribute {#openvino_docs_IE_DG_lpt_PerTensorQuantization} ngraph::PerTensorQuantizationAttribute class represents the `PerTensorQuantization` attribute. diff --git a/docs/low_precision_transformations/attributes/precision_preserved.md b/docs/low_precision_transformations/attributes/precision_preserved.md index d5d69e34346b89..cf75ecc61c6bed 100644 --- a/docs/low_precision_transformations/attributes/precision_preserved.md +++ b/docs/low_precision_transformations/attributes/precision_preserved.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: PrecisionPreserved {#openvino_docs_IE_DG_lpt_PrecisionPreserved} +# PrecisionPreserved attribute {#openvino_docs_IE_DG_lpt_PrecisionPreserved} ngraph::PrecisionPreservedAttribute class represents the `PrecisionPreserved` attribute. diff --git a/docs/low_precision_transformations/attributes/precisions.md b/docs/low_precision_transformations/attributes/precisions.md index 1149fc4f1a9203..0b5c1a56e2de92 100644 --- a/docs/low_precision_transformations/attributes/precisions.md +++ b/docs/low_precision_transformations/attributes/precisions.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: Precisions {#openvino_docs_IE_DG_lpt_Precisions} +# Precisions attribute {#openvino_docs_IE_DG_lpt_Precisions} ngraph::PrecisionsAttribute class represents the `Precisions` attribute. diff --git a/docs/low_precision_transformations/attributes/quantization_alignment.md b/docs/low_precision_transformations/attributes/quantization_alignment.md index b3427ced1b2892..66747a63ecdea0 100644 --- a/docs/low_precision_transformations/attributes/quantization_alignment.md +++ b/docs/low_precision_transformations/attributes/quantization_alignment.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: QuantizationAlignment {#openvino_docs_IE_DG_lpt_QuantizationAlignment} +# QuantizationAlignment attribute {#openvino_docs_IE_DG_lpt_QuantizationAlignment} ngraph::QuantizationAlignmentAttribute class represents the `QuantizationAlignment` attribute. diff --git a/docs/low_precision_transformations/lpt_attributes.md b/docs/low_precision_transformations/lpt_attributes.md index 5eff9627360f96..166fa5625fb168 100644 --- a/docs/low_precision_transformations/lpt_attributes.md +++ b/docs/low_precision_transformations/lpt_attributes.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: Attributes {#openvino_docs_IE_DG_lpt_attributes} +# Attributes {#openvino_docs_IE_DG_lpt_attributes} ## Introduction diff --git a/docs/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/low_precision_transformations/pipeline/step1_prerequisites.md index 8d61f978631549..392e55358291a1 100644 --- a/docs/low_precision_transformations/pipeline/step1_prerequisites.md +++ b/docs/low_precision_transformations/pipeline/step1_prerequisites.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ LPT: Step #1. Prerequisites Transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} +# Step #1. Prerequisites Transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} Prerequisites transformations are optional. The transformations prepare a model before running other low precision transformations. The transformations do not operate with dequantization operations or update precisions. Prerequisites transformations include: * [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) diff --git a/docs/low_precision_transformations/pipeline/step2_markup.md b/docs/low_precision_transformations/pipeline/step2_markup.md index a4e8482111a6c5..b917d12d6a2079 100644 --- a/docs/low_precision_transformations/pipeline/step2_markup.md +++ b/docs/low_precision_transformations/pipeline/step2_markup.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ LPT: Step #2. Markup Transformations {#openvino_docs_IE_DG_lpt_step2_markup} +# Step #2. Markup Transformations {#openvino_docs_IE_DG_lpt_step2_markup} This step defines the optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input and output ports and operations. Transformations do not change the operation output port precisions. A model markup low precision logic is decomposed and implemented into the following common markup transformations. Transformations order is important: diff --git a/docs/low_precision_transformations/pipeline/step3_main.md b/docs/low_precision_transformations/pipeline/step3_main.md index 1e0f083f51454e..c2220acef8a8a8 100644 --- a/docs/low_precision_transformations/pipeline/step3_main.md +++ b/docs/low_precision_transformations/pipeline/step3_main.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ LPT: Step #3. Main Transformations {#openvino_docs_IE_DG_lpt_step3_main} +# Step #3. Main Transformations {#openvino_docs_IE_DG_lpt_step3_main} Main transformations are the majority of low precision transformations. Transformations operate with dequantization operations. Main transformations include: * [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) diff --git a/docs/low_precision_transformations/pipeline/step4_cleanup.md b/docs/low_precision_transformations/pipeline/step4_cleanup.md index 1acd709ddb6ff8..940c1ec47063d4 100644 --- a/docs/low_precision_transformations/pipeline/step4_cleanup.md +++ b/docs/low_precision_transformations/pipeline/step4_cleanup.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ LPT: Step #4. Cleanup Transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} +# Step #4. Cleanup Transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} * [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) * [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md b/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md index db9ed9594c8ab0..14e23a6175842c 100644 --- a/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: LinOpSequenceFusion {#openvino_docs_IE_DG_lpt_LinOpSequenceFusion} +# LinOpSequenceFusion transformation {#openvino_docs_IE_DG_lpt_LinOpSequenceFusion} ngraph::pass::LinOpSequenceFusion class represents the `LinOpSequenceFusion` transformation. diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md index 014f3a04d736a6..214e8ac99932fe 100644 --- a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: PullReshapeThroughDequantization {#openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization} +# PullReshapeThroughDequantization transformation {#openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization} ngraph::pass::low_precision::PullReshapeThroughDequantization class represents the `PullReshapeThroughDequantization` transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md index aa6796257f2d71..1acd058af162fc 100644 --- a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md +++ b/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: PullTransposeThroughDequantization {#openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization} +# PullTransposeThroughDequantization transformation {#openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization} ngraph::pass::low_precision::PullTransposeThroughDequantization class represents the `PullTransposeThroughDequantization` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md index 3d77395e747981..b41afd0b8f352f 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md +++ b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationIntervals {#openvino_docs_IE_DG_lpt_AlignQuantizationIntervals} +# AlignQuantizationIntervals transformation {#openvino_docs_IE_DG_lpt_AlignQuantizationIntervals} ngraph::pass::low_precision::AlignQuantizationIntervals class represents the `AlignQuantizationIntervals` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md index a5a756e1c065ce..7477d96dbbf4c5 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md +++ b/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: AlignQuantizationParameters {#openvino_docs_IE_DG_lpt_AlignQuantizationParameters} +# AlignQuantizationParameters transformation {#openvino_docs_IE_DG_lpt_AlignQuantizationParameters} ngraph::pass::low_precision::AlignQuantizationParameters class represents the `AlignQuantizationParameters` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md b/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md index be1318c3f0246f..118ce14305ea08 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md +++ b/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: CreateAttribute {#openvino_docs_IE_DG_lpt_CreateAttribute} +# CreateAttribute transformation {#openvino_docs_IE_DG_lpt_CreateAttribute} ngraph::pass::low_precision::CreateAttribute class represents the `CreateAttribute` transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md b/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md index d227a61babab85..c747462e4c9e9a 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md +++ b/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: CreatePrecisionsDependentAttribute {#openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute} +# CreatePrecisionsDependentAttribute transformation {#openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute} ngraph::pass::low_precision::CreatePrecisionsDependentAttribute class represents the `CreatePrecisionsDependentAttribute` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md index 17a34d0636da39..4d9a97ffc47cd4 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MarkupAvgPoolPrecisionPreserved {#openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved} +# MarkupAvgPoolPrecisionPreserved transformation {#openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved} ngraph::pass::low_precision::MarkupAvgPoolPrecisionPreserved class represents the `MarkupAvgPoolPrecisionPreserved` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md b/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md index 6872fb677f1fd6..1bd149e332a163 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MarkupCanBeQuantized {#openvino_docs_IE_DG_lpt_MarkupCanBeQuantized} +# MarkupCanBeQuantized transformation {#openvino_docs_IE_DG_lpt_MarkupCanBeQuantized} ngraph::pass::low_precision::MarkupCanBeQuantized class represents the `MarkupCanBeQuantized` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md b/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md index 4cbb092fe079f2..d915ef73183111 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MarkupPerTensorQuantization {#openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization} +# MarkupPerTensorQuantization transformation {#openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization} ngraph::pass::low_precision::MarkupPerTensorQuantization class represents the `MarkupPerTensorQuantization` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md b/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md index 0c6d26194fdbb6..673a8932529384 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md +++ b/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MarkupPrecisions {#openvino_docs_IE_DG_lpt_MarkupPrecisions} +# MarkupPrecisions transformation {#openvino_docs_IE_DG_lpt_MarkupPrecisions} ngraph::pass::low_precision::MarkupPrecisions class represents the `MarkupPrecisions` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md index a39f543ebc7477..50dcc23ce96e70 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: PropagatePrecisions {#openvino_docs_IE_DG_lpt_PropagatePrecisions} +# PropagatePrecisions transformation {#openvino_docs_IE_DG_lpt_PropagatePrecisions} ngraph::pass::low_precision::PropagatePrecisions class represents the `PropagatePrecisions` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md index 11c34581d6a29d..e183b5265d75b2 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: PropagateThroughPrecisionPreserved {#openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved} +# PropagateThroughPrecisionPreserved transformation {#openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved} ngraph::pass::low_precision::PropagateThroughPrecisionPreserved class represents the `PropagateThroughPrecisionPreserved` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md b/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md index 9d1a4ac671c9e1..08136272cdbe5e 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md +++ b/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: PropagateToInput {#openvino_docs_IE_DG_lpt_PropagateToInput} +# PropagateToInput transformation {#openvino_docs_IE_DG_lpt_PropagateToInput} ngraph::pass::low_precision::PropagateToInput class represents the `PropagateToInput` transformation. diff --git a/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md b/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md index c614192c73bed4..aa18aea07cdfd3 100644 --- a/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md +++ b/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: UpdateSharedPrecisionPreserved {#openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved} +# UpdateSharedPrecisionPreserved transformation {#openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved} ngraph::pass::low_precision::UpdateSharedPrecisionPreserved class represents the `UpdateSharedPrecisionPreserved` transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md b/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md index bbcc96f814a362..5e00b6a3ca0b62 100644 --- a/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md +++ b/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ClampTransformation {#openvino_docs_IE_DG_lpt_ClampTransformation} +# ClampTransformation transformation {#openvino_docs_IE_DG_lpt_ClampTransformation} ngraph::pass::low_precision::ClampTransformation class represents the `Clamp` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md b/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md index 9059199bed17f4..4ffcade1647238 100644 --- a/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md +++ b/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: PReluTransformation {#openvino_docs_IE_DG_lpt_PReluTransformation} +# PReluTransformation transformation {#openvino_docs_IE_DG_lpt_PReluTransformation} ngraph::pass::low_precision::PReluTransformation class represents the `PRelu` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/relu.md b/docs/low_precision_transformations/transformations/step3_main/activation/relu.md index 81861fb3fbd6ef..8831de7aee6f02 100644 --- a/docs/low_precision_transformations/transformations/step3_main/activation/relu.md +++ b/docs/low_precision_transformations/transformations/step3_main/activation/relu.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ReluTransformation {#openvino_docs_IE_DG_lpt_ReluTransformation} +# ReluTransformation transformation {#openvino_docs_IE_DG_lpt_ReluTransformation} ngraph::pass::low_precision::ReluTransformation class represents the `Relu` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md index b05cb2fc3a718b..44688a8d091523 100644 --- a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: AddTransformation {#openvino_docs_IE_DG_lpt_AddTransformation} +# AddTransformation transformation {#openvino_docs_IE_DG_lpt_AddTransformation} ngraph::pass::low_precision::AddTransformation class represents the `Add` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md index 71a99bef4793fd..4389309394493a 100644 --- a/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MultiplyTransformation {#openvino_docs_IE_DG_lpt_MultiplyTransformation} +# MultiplyTransformation transformation {#openvino_docs_IE_DG_lpt_MultiplyTransformation} ngraph::pass::low_precision::MultiplyTransformation class represents the `Multiply` operation transformation. \ No newline at end of file diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md index c6080743cb16dc..c29aa9c5b29d8f 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md @@ -1,4 +1,4 @@ -# OpenVINOâ„¢ Low Precision Transformations: ConvolutionTransformation {#openvino_docs_IE_DG_lpt_ConvolutionTransformation} +# ConvolutionTransformation transformation {#openvino_docs_IE_DG_lpt_ConvolutionTransformation} ngraph::pass::low_precision::ConvolutionTransformation class represents the `Convolution` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md index ec5849beb5c5fd..aa9af9f28b8f5d 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ConvolutionBackpropDataTransformation {#openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation} +# ConvolutionBackpropDataTransformation transformation {#openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation} ngraph::pass::low_precision::ConvolutionBackpropDataTransformation class represents the `ConvolutionBackpropData` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md b/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md index 3ed0050c9d0344..c5571fbada39c1 100644 --- a/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md +++ b/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: GroupConvolutionTransformation {#openvino_docs_IE_DG_lpt_GroupConvolutionTransformation} +# GroupConvolutionTransformation transformation {#openvino_docs_IE_DG_lpt_GroupConvolutionTransformation} ngraph::pass::low_precision::GroupConvolutionTransformation class represents the `GroupConvolution` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md b/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md index e3ab77dfc67eed..c6d3a3fbc257ab 100644 --- a/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md +++ b/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: InterpolateTransformation {#openvino_docs_IE_DG_lpt_InterpolateTransformation} +# InterpolateTransformation transformation {#openvino_docs_IE_DG_lpt_InterpolateTransformation} ngraph::pass::low_precision::InterpolateTransformation class represents the `Interpolate` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md b/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md index 4a6b2c92219670..3a54ca5e5747e9 100644 --- a/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md +++ b/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MatMulTransformation {#openvino_docs_IE_DG_lpt_MatMulTransformation} +# MatMulTransformation transformation {#openvino_docs_IE_DG_lpt_MatMulTransformation} ngraph::pass::low_precision::MatMulTransformation class represents the `MatMul` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/concat.md b/docs/low_precision_transformations/transformations/step3_main/movement/concat.md index bfb3d75cd1d6f1..698d3e3cc985ed 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/concat.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/concat.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ConcatTransformation {#openvino_docs_IE_DG_lpt_ConcatTransformation} +# ConcatTransformation transformation {#openvino_docs_IE_DG_lpt_ConcatTransformation} ngraph::pass::low_precision::ConcatTransformation class represents the `Concat` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md b/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md index 31799b9f7eb872..c3ae40d70ba01c 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: DepthToSpaceTransformation {#openvino_docs_IE_DG_lpt_DepthToSpaceTransformation} +# DepthToSpaceTransformation transformation {#openvino_docs_IE_DG_lpt_DepthToSpaceTransformation} ngraph::pass::low_precision::DepthToSpaceTransformation class represents the `DepthToSpace` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md b/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md index 2ed3139608a3ff..e41e1c05aa32b5 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ShuffleChannelsTransformation {#openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation} +# ShuffleChannelsTransformation transformation {#openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation} ngraph::pass::low_precision::ShuffleChannelsTransformation class represents the `ShuffleChannels` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/split.md b/docs/low_precision_transformations/transformations/step3_main/movement/split.md index f0555afebc9634..166ad30e3dc80f 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/split.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/split.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: SplitTransformation {#openvino_docs_IE_DG_lpt_SplitTransformation} +# SplitTransformation transformation {#openvino_docs_IE_DG_lpt_SplitTransformation} ngraph::pass::low_precision::SplitTransformation class represents the `Split` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md b/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md index 6815921f6bd397..4b385dc6e73a49 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: StridedSliceTransformation {#openvino_docs_IE_DG_lpt_StridedSliceTransformation} +# StridedSliceTransformation transformation {#openvino_docs_IE_DG_lpt_StridedSliceTransformation} ngraph::pass::low_precision::StridedSliceTransformation class represents the `StridedSlice` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md b/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md index 5706648e6e4d1a..bcf2ac02c502c0 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: TransposeTransformation {#openvino_docs_IE_DG_lpt_TransposeTransformation} +# TransposeTransformation transformation {#openvino_docs_IE_DG_lpt_TransposeTransformation} ngraph::pass::low_precision::TransposeTransformation class represents the `Transpose` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md b/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md index d33858c88e6d9a..10bc02ead1c255 100644 --- a/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md +++ b/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: VariadicSplitTransformation {#openvino_docs_IE_DG_lpt_VariadicSplitTransformation} +# VariadicSplitTransformation transformation {#openvino_docs_IE_DG_lpt_VariadicSplitTransformation} ngraph::pass::low_precision::VariadicSplitTransformation class represents the `VariadicSplit` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md b/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md index cc2cbcf82dab6d..3b712696b5447c 100644 --- a/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md +++ b/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MVNTransformation {#openvino_docs_IE_DG_lpt_MVNTransformation} +# MVNTransformation transformation {#openvino_docs_IE_DG_lpt_MVNTransformation} ngraph::pass::low_precision::MVNTransformation class represents the `MVN` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md b/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md index 13eb10b6d7aed3..6f86660f1a50ae 100644 --- a/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md +++ b/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: NormalizeL2Transformation {#openvino_docs_IE_DG_lpt_NormalizeL2Transformation} +# NormalizeL2Transformation transformation {#openvino_docs_IE_DG_lpt_NormalizeL2Transformation} ngraph::pass::low_precision::NormalizeL2Transformation class represents the `NormalizeL2` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md b/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md index eeb9177294a11a..d53a8e28a783f6 100644 --- a/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md +++ b/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: AvgPoolTransformation {#openvino_docs_IE_DG_lpt_AvgPoolTransformation} +# AvgPoolTransformation transformation {#openvino_docs_IE_DG_lpt_AvgPoolTransformation} ngraph::pass::low_precision::AvgPoolTransformation class represents the `AvgPool` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md b/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md index b311fac5df0b4e..ce7f2a28c7cb51 100644 --- a/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md +++ b/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MaxPoolTransformation {#openvino_docs_IE_DG_lpt_MaxPoolTransformation} +# MaxPoolTransformation transformation {#openvino_docs_IE_DG_lpt_MaxPoolTransformation} ngraph::pass::low_precision::MaxPoolTransformation class represents the `MaxPool` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md b/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md index 8c3b125bfb9378..8441554f637c82 100644 --- a/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FakeQuantizeTransformation} +# FakeQuantizeTransformation transformation {#openvino_docs_IE_DG_lpt_FakeQuantizeTransformation} ngraph::pass::low_precision::FakeQuantizeTransformation class represents the `FakeQuantize` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md b/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md index 42bc2b49bf52d3..34ec1af1b0abea 100644 --- a/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FoldFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation} +# FoldFakeQuantizeTransformation transformation {#openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation} ngraph::pass::low_precision::FoldFakeQuantizeTransformation class represents the `FoldFakeQuantize` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md index b3630dca117dbe..27153c02125288 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ReduceMaxTransformation {#openvino_docs_IE_DG_lpt_ReduceMaxTransformation} +# ReduceMaxTransformation transformation {#openvino_docs_IE_DG_lpt_ReduceMaxTransformation} ngraph::pass::low_precision::ReduceMaxTransformation class represents the `ReduceMax` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md index be841e29f862d5..ca05bd56a8d32a 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ReduceMeanTransformation {#openvino_docs_IE_DG_lpt_ReduceMeanTransformation} +# ReduceMeanTransformation transformation {#openvino_docs_IE_DG_lpt_ReduceMeanTransformation} ngraph::pass::low_precision::ReduceMeanTransformation class represents the `ReduceMean` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md index fa53b0ae0dcf10..0d5d0f74fd7803 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ReduceMinTransformation {#openvino_docs_IE_DG_lpt_ReduceMinTransformation} +# ReduceMinTransformation transformation {#openvino_docs_IE_DG_lpt_ReduceMinTransformation} ngraph::pass::low_precision::ReduceMinTransformation class represents the `ReduceMin` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md index 087d825cb02b4a..b67ebf5d3a0062 100644 --- a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md +++ b/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ReduceSumTransformation {#openvino_docs_IE_DG_lpt_ReduceSumTransformation} +# ReduceSumTransformation transformation {#openvino_docs_IE_DG_lpt_ReduceSumTransformation} ngraph::pass::low_precision::ReduceSumTransformation class represents the `ReduceSum` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md b/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md index dc7ab9b24d9918..b4c69a720bc458 100644 --- a/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md +++ b/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: ReshapeTransformation {#openvino_docs_IE_DG_lpt_ReshapeTransformation} +# ReshapeTransformation transformation {#openvino_docs_IE_DG_lpt_ReshapeTransformation} ngraph::pass::low_precision::ReshapeTransformation class represents the `Reshape` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md b/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md index 7b1af5a0061b72..a409c8ca61c923 100644 --- a/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md +++ b/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: SqueezeTransformation {#openvino_docs_IE_DG_lpt_SqueezeTransformation} +# SqueezeTransformation transformation {#openvino_docs_IE_DG_lpt_SqueezeTransformation} ngraph::pass::low_precision::SqueezeTransformation class represents the `Squeeze` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md b/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md index 05440d04db1270..a9ffac0fa4aa01 100644 --- a/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md +++ b/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: UnsqueezeTransformation {#openvino_docs_IE_DG_lpt_UnsqueezeTransformation} +# UnsqueezeTransformation transformation {#openvino_docs_IE_DG_lpt_UnsqueezeTransformation} ngraph::pass::low_precision::UnsqueezeTransformation class represents the `Unsqueeze` operation transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md b/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md index baed98fbe93706..83c4eb3d9e674c 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FakeQuantizeDecompositionTransformation {#openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation} +# FakeQuantizeDecompositionTransformation transformation {#openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation} ngraph::pass::low_precision::FakeQuantizeDecompositionTransformation class represents the `FakeQuantizeDecompositionTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md b/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md index c0185b2bf601b0..c84e19da98e19d 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FoldConvertTransformation {#openvino_docs_IE_DG_lpt_FoldConvertTransformation} +# FoldConvertTransformation transformation {#openvino_docs_IE_DG_lpt_FoldConvertTransformation} ngraph::pass::low_precision::FoldConvertTransformation class represents the `FoldConvertTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md index 296c9e9606e2ca..3b720729c7fad2 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FuseConvertTransformation {#openvino_docs_IE_DG_lpt_FuseConvertTransformation} +# FuseConvertTransformation transformation {#openvino_docs_IE_DG_lpt_FuseConvertTransformation} ngraph::pass::low_precision::FuseConvertTransformation class represents the `FuseConvertTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md index 5cd7a9ca26b2b5..10cab1a1788f00 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FuseMultiplyToFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation} +# FuseMultiplyToFakeQuantizeTransformation transformation {#openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation} ngraph::pass::low_precision::FuseMultiplyToFakeQuantizeTransformation class represents the `FuseMultiplyToFakeQuantizeTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md index 379d77f93d7bfb..7bd326435d68bd 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: FuseSubtractToFakeQuantizeTransformation {#openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation} +# FuseSubtractToFakeQuantizeTransformation transformation {#openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation} ngraph::pass::low_precision::FuseSubtractToFakeQuantizeTransformation class represents the `FuseSubtractToFakeQuantizeTransformation` transformation. diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md b/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md index db70bee24e93a3..27742998abdf6b 100644 --- a/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md +++ b/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md @@ -1,3 +1,3 @@ -# OpenVINOâ„¢ Low Precision Transformations: MultiplyToGroupConvolutionTransformation {#openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation} +# MultiplyToGroupConvolutionTransformation transformation {#openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation} ngraph::pass::low_precision::MultiplyToGroupConvolutionTransformation class represents the `MultiplyToGroupConvolutionTransformation` transformation. From 446bae5e14766920cdc43e26948ba725e45f23f0 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Thu, 23 Sep 2021 18:42:11 +0300 Subject: [PATCH 09/19] [LPT] comments fixes #2 --- docs/doxygen/ie_docs.xml | 8 ++++---- .../img/low_precision_transformation_pipeline.png | 4 ++-- .../img/low_precision_transformation_pipeline.svg | 2 +- docs/low_precision_transformations/lpt.md | 14 +++++++------- .../pipeline/step1_prerequisites.md | 2 +- .../pipeline/step2_markup.md | 2 +- .../pipeline/step3_main.md | 2 +- .../pipeline/step4_cleanup.md | 2 +- .../transformations/step3_main/arithmetic/add.md | 12 ++++++------ 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/doxygen/ie_docs.xml b/docs/doxygen/ie_docs.xml index 77a71cda73a74c..cf01e46b69db50 100644 --- a/docs/doxygen/ie_docs.xml +++ b/docs/doxygen/ie_docs.xml @@ -325,12 +325,12 @@ limitations under the License. - + - + @@ -344,7 +344,7 @@ limitations under the License. - + @@ -377,7 +377,7 @@ limitations under the License. - + diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png index be2d990da85013..749a83c1015f29 100644 --- a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png +++ b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2dd82c2747d7a37b5452c4a801977127765991c7a3c816a67d5a74883f23fa3b -size 387864 +oid sha256:3ee64e2c942110b8dbbc7cb3d200ed7061da6a12a55c0f379378e31db9ae2180 +size 366513 diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg index f2fe86d3196658..9292ce92a6a052 100644 --- a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg +++ b/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg @@ -1 +1 @@ -Step #1PrerequisitesStep #2Markup transformationsStep #3Main transformationsStep #4Cleanup transformationsPullReshapeThroughDequantizationPullTransposeThroughDequantizationngraph::pass::LinOpSequenceFusionMarkupCanBeQuantizedMarkupPrecisionsMarkupPerTensorQuantizationMarkupAvgPoolPrecisionPreservedPropagatePrecisionsAlignQuantizationInttervalsAlignQuantizationParametersAddTransformationAvgPoolTransformationClampTransformationConcatTransformationConvolutionTransformationConvolutionBackpropDataTransformationDepthToSpaceTransformationFakeQuantizeDecompositionTransformationFakeQuantizeTransformationInterpolateTransformationGroupConvolutionTransformationMatMulTransformationMaxPoolTransformationMultiplyTransformationMVNTransformationNormalizeL2TransformationPReluTransformationReduceMaxTransformationReduceMeanTransformationReduceMinTransformationReduceSumTransformationReluTransformationReshapeTransformationSqueezeTransformationShuffleChannelsTransformationSplitTransformationStridedSliceTransformationTransposeTransformationUnsqueezeTransformationVariadicSplitTransformationFoldConvertTransformationFuseConvertTransformationFuseSubtractToFakeQuantizeTransformationFuseMultiplyToFakeQuantizeTransformationMultiplyToGroupConvolutionTransformationSubtractMultiplyToMultiplyAddTransformationFoldFakeQuantizeTransformation \ No newline at end of file +Step 1PrerequisitesStep 2Markup transformationsStep 3Main transformationsStep 4Cleanup transformationsPullReshapeThroughDequantizationPullTransposeThroughDequantizationngraph::pass::LinOpSequenceFusionMarkupCanBeQuantizedMarkupPrecisionsMarkupPerTensorQuantizationMarkupAvgPoolPrecisionPreservedPropagatePrecisionsAlignQuantizationInttervalsAlignQuantizationParametersAddTransformationAvgPoolTransformationClampTransformationConcatTransformationConvolutionTransformationConvolutionBackpropDataTransformationDepthToSpaceTransformationFakeQuantizeDecompositionTransformationFakeQuantizeTransformationInterpolateTransformationGroupConvolutionTransformationMatMulTransformationMaxPoolTransformationMultiplyTransformationMVNTransformationNormalizeL2TransformationPReluTransformationReduceMaxTransformationReduceMeanTransformationReduceMinTransformationReduceSumTransformationReluTransformationReshapeTransformationSqueezeTransformationShuffleChannelsTransformationSplitTransformationStridedSliceTransformationTransposeTransformationUnsqueezeTransformationVariadicSplitTransformationFoldConvertTransformationFuseConvertTransformationFuseSubtractToFakeQuantizeTransformationFuseMultiplyToFakeQuantizeTransformationMultiplyToGroupConvolutionTransformationSubtractMultiplyToMultiplyAddTransformationFoldFakeQuantizeTransformation \ No newline at end of file diff --git a/docs/low_precision_transformations/lpt.md b/docs/low_precision_transformations/lpt.md index 8c54ef10281790..011a652ae4d97f 100644 --- a/docs/low_precision_transformations/lpt.md +++ b/docs/low_precision_transformations/lpt.md @@ -103,7 +103,7 @@ Low precision transformations pipeline includes four steps: * [Step #3: Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main) * [Step #4: Cleanup transformations](@ref openvino_docs_IE_DG_lpt_step4_cleanup) -### Step #1. Prerequisites +### Step 1. Prerequisites This step fuses and propagates some operations in the model before run the next step. The step is required for OpenVINO plugins. Transformations: * [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) * [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization) @@ -111,7 +111,7 @@ This step fuses and propagates some operations in the model before run the next The model on this step is changed. There are more details in developer guide [Prerequisites transformations](@ref openvino_docs_IE_DG_lpt_step1_prerequisites). -### Step #2. Markup +### Step 2. Markup This step create runtime attributes for operations. Attributes will be used in next step. Transformations: * [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) * [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) @@ -123,7 +123,7 @@ This step create runtime attributes for operations. Attributes will be used in n The model on this step is changed: only new attributes are added to some operations. There are more details in developer guide [Markup transformations](@ref openvino_docs_IE_DG_lpt_step2_markup). -### Step #3. Main transformations, FakeQuantize decomposition and dequantization operations handling +### Step 3. Main transformations, FakeQuantize decomposition and dequantization operations handling This step has the most transformations. Transformations: * [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) * [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) @@ -180,7 +180,7 @@ Original `Convolution` operation in FP32 with dequantization operations before: `Convolution` operation in INT8 after decomposition and dequantization operations handling: ![Convolution operation after LPT](img/model_fq_and_convolution.transformed.png) -### Step #4: Cleanup result model +### Step 4: Cleanup result model LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. Transformations: * [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) * [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) @@ -202,17 +202,17 @@ There are more details in developer guide [Cleanup transformations](@ref openvin ## Low precision transformations in plugin transformation pipeline Typical transformation pipeline described below. -### Step #1. Common optimizations +### Step 1. Common optimizations This step is optional for LPT but typically is presented in OpenVINOâ„¢ plugins. The step doesn't use any LPT transformation. Firstly, the step disables dequantization operations constant folding on constant subgraph on weights to prevent the lost of dequantization info on the next plugin transformations. After that, it optimizes nGraph function and convert operations to operation set 1. Typically, usage of this step is the simplest way to meet LPT requirements for the input quantized model. If plugin can guarantee that LPT input requirements are met, then this step can be skipped. @snippet snippets/lpt_mkldnn_plugin.cpp lpt_common -### Step #2. Low precision transformations execution +### Step 2. Low precision transformations execution This step is mandatory. The step configure and run LPT transformations. @snippet snippets/lpt_mkldnn_plugin.cpp lpt_execution -### Step #3. Plugin specific transformations +### Step 3. Plugin specific transformations This step is optional. The step modifies nGraph function to device specific operation set. @snippet snippets/lpt_mkldnn_plugin.cpp lpt_device diff --git a/docs/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/low_precision_transformations/pipeline/step1_prerequisites.md index 392e55358291a1..71d082054cd779 100644 --- a/docs/low_precision_transformations/pipeline/step1_prerequisites.md +++ b/docs/low_precision_transformations/pipeline/step1_prerequisites.md @@ -1,4 +1,4 @@ -# Step #1. Prerequisites Transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} +# Step 1. Prerequisites Transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites} Prerequisites transformations are optional. The transformations prepare a model before running other low precision transformations. The transformations do not operate with dequantization operations or update precisions. Prerequisites transformations include: * [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) diff --git a/docs/low_precision_transformations/pipeline/step2_markup.md b/docs/low_precision_transformations/pipeline/step2_markup.md index b917d12d6a2079..fcb5519143514e 100644 --- a/docs/low_precision_transformations/pipeline/step2_markup.md +++ b/docs/low_precision_transformations/pipeline/step2_markup.md @@ -1,4 +1,4 @@ -# Step #2. Markup Transformations {#openvino_docs_IE_DG_lpt_step2_markup} +# Step 2. Markup Transformations {#openvino_docs_IE_DG_lpt_step2_markup} This step defines the optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input and output ports and operations. Transformations do not change the operation output port precisions. A model markup low precision logic is decomposed and implemented into the following common markup transformations. Transformations order is important: diff --git a/docs/low_precision_transformations/pipeline/step3_main.md b/docs/low_precision_transformations/pipeline/step3_main.md index c2220acef8a8a8..81a07a82125511 100644 --- a/docs/low_precision_transformations/pipeline/step3_main.md +++ b/docs/low_precision_transformations/pipeline/step3_main.md @@ -1,4 +1,4 @@ -# Step #3. Main Transformations {#openvino_docs_IE_DG_lpt_step3_main} +# Step 3. Main Transformations {#openvino_docs_IE_DG_lpt_step3_main} Main transformations are the majority of low precision transformations. Transformations operate with dequantization operations. Main transformations include: * [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) diff --git a/docs/low_precision_transformations/pipeline/step4_cleanup.md b/docs/low_precision_transformations/pipeline/step4_cleanup.md index 940c1ec47063d4..0b4913273c6207 100644 --- a/docs/low_precision_transformations/pipeline/step4_cleanup.md +++ b/docs/low_precision_transformations/pipeline/step4_cleanup.md @@ -1,4 +1,4 @@ -# Step #4. Cleanup Transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} +# Step 4. Cleanup Transformations {#openvino_docs_IE_DG_lpt_step4_cleanup} * [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) * [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md index 44688a8d091523..b08d865a60bae0 100644 --- a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md +++ b/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md @@ -6,17 +6,17 @@ The transformation propagates dequantization subtraction from one input branch t Criteria for selecting an empty branch in order of priority: -*Step #1.* If one branch is quantized only, then the quantized branch is an empty branch. +*Step 1.* If one branch is quantized only, then the quantized branch is an empty branch. -*Step #2.* If only one branch has `FakeQuantize` before dequantization operations, then another branch is an empty branch. +*Step 2.* If only one branch has `FakeQuantize` before dequantization operations, then another branch is an empty branch. -*Step #3.* If some `FakeQuantize` has more than one consumer and another has only one, then the branch with `FakeQuantize` with several consumers is an empty branch. +*Step 3.* If some `FakeQuantize` has more than one consumer and another has only one, then the branch with `FakeQuantize` with several consumers is an empty branch. -*Step #4.* Constant branch is in original precision, data branch is an empty branch. In this case, dequantization operations are propagated to a constant branch and will be fused in one constant. +*Step 4.* Constant branch is in original precision, data branch is an empty branch. In this case, dequantization operations are propagated to a constant branch and will be fused in one constant. -*Step #5.* If both branches have operations from the following list before `FakeQuantize`: `Convolution`, `GroupConvolution`, and `MatMul`, or do not have any operations from the list, then the branch with larger shape volume is empty. +*Step 5.* If both branches have operations from the following list before `FakeQuantize`: `Convolution`, `GroupConvolution`, and `MatMul`, or do not have any operations from the list, then the branch with larger shape volume is empty. -*Step #6.* If the operation before `FakeQuantize` has several consumers in any branch, then the branch is empty. +*Step 6.* If the operation before `FakeQuantize` has several consumers in any branch, then the branch is empty. If dequantization operations on the full branch have a `FakeQuantize` operation parent, then they will be fused with `FakeQuantize` during another low precision transformation. If a `FakeQuantize` operation has a parent operation from the list: `Convolution`, `GroupConvolution`, and `MatMul`, then during inference the `FakeQuantize` can be inferred in one plugin kernel with the parent operation. From 38094841ed4285f1a95579ef97f978a0bac62337 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Thu, 30 Sep 2021 16:26:03 +0300 Subject: [PATCH 10/19] [LPT] root document was moved to Plugin DG --- docs/IE_PLUGIN_DG/layout.xml | 72 +++++++++++++++++++ .../avg_pool_precision_preserved.md | 0 .../attributes/intervals_alignment.md | 0 .../attributes/per_tensor_quantization.md | 0 .../attributes/precision_preserved.md | 0 .../attributes/precisions.md | 0 .../attributes/quantization_alignment.md | 0 .../low_precision_transformation_pipeline.png | 0 .../low_precision_transformation_pipeline.svg | 0 .../img/model_fq_and_convolution.common.png | 0 .../img/model_fq_and_convolution.common.svg | 0 .../model_fq_and_convolution.transformed.png | 0 .../model_fq_and_convolution.transformed.svg | 0 .../model_fq_fq_and_convolution.common.png | 0 .../model_fq_fq_and_convolution.common.svg | 0 .../img/model_qdq_and_convolution.common.png | 0 .../img/model_qdq_and_convolution.common.svg | 0 .../low_precision_transformations/lpt.md | 0 .../lpt_attributes.md | 0 .../pipeline/img/step2_markup1.png | 0 .../pipeline/img/step2_markup1.svg | 0 .../pipeline/img/step2_markup2.png | 0 .../pipeline/img/step2_markup2.svg | 0 .../pipeline/img/step2_markup3.png | 0 .../pipeline/img/step2_markup3.svg | 0 .../pipeline/img/step2_markup4.png | 0 .../pipeline/img/step2_markup4.svg | 0 .../pipeline/img/step2_markup5.png | 0 .../pipeline/img/step2_markup5.svg | 0 .../pipeline/img/step2_markup6.png | 0 .../pipeline/img/step2_markup6.svg | 0 .../pipeline/img/step2_markup7.png | 0 .../pipeline/img/step2_markup7.svg | 0 .../pipeline/img/step2_markup_original.png | 0 .../pipeline/img/step2_markup_original.svg | 0 .../pipeline/img/step3_original.png | 0 .../pipeline/img/step3_original.svg | 0 .../pipeline/img/step3_transformed.png | 0 .../pipeline/img/step3_transformed.svg | 0 .../pipeline/step1_prerequisites.md | 0 .../pipeline/step2_markup.md | 0 .../pipeline/step3_main.md | 0 .../pipeline/step4_cleanup.md | 0 .../quantization/img/fq.common.png | 0 .../quantization/img/fq.common.svg | 0 .../quantization/img/fq.transformed.png | 0 .../quantization/img/fq.transformed.svg | 0 .../lin_op_sequence_fusion.md | 0 .../pull_reshape_through_dequantization.md | 0 .../pull_transpose_through_dequantization.md | 0 .../align_quantization_intervals.md | 0 .../align_quantization_parameters.md | 0 .../step2_markup/create_attribute.md | 0 .../create_precisions_dependent_attribute.md | 0 .../markup_avg_pool_precision_preserved.md | 0 .../step2_markup/markup_can_be_quantized.md | 0 .../markup_per_tensor_quantization.md | 0 .../step2_markup/markup_precisions.md | 0 .../step2_markup/propagate_precisions.md | 0 .../propagate_through_precision_preserved.md | 0 .../step2_markup/propagate_to_input.md | 0 .../update_shared_precision_preserved.md | 0 .../step3_main/activation/clamp.md | 0 .../step3_main/activation/prelu.md | 0 .../step3_main/activation/relu.md | 0 .../step3_main/arithmetic/add.md | 0 .../step3_main/arithmetic/img/add.common.png | 0 .../step3_main/arithmetic/img/add.common.svg | 0 .../arithmetic/img/add.transformed.png | 0 .../arithmetic/img/add.transformed.svg | 0 .../step3_main/arithmetic/multiply.md | 0 .../step3_main/convolution/convolution.md | 0 .../convolution/convolution_backprop_data.md | 0 .../convolution/group_convolution.md | 0 .../img/fq_and_convolution.common.png | 0 .../img/fq_and_convolution.common.svg | 0 .../img/fq_and_convolution.transformed.png | 0 .../img/fq_and_convolution.transformed.svg | 0 .../img/fq_fq_and_convolution.common.png | 0 .../img/fq_fq_and_convolution.common.svg | 0 .../step3_main/image/interpolate.md | 0 .../step3_main/matrix/mat_mul.md | 0 .../step3_main/movement/concat.md | 0 .../step3_main/movement/depth_to_space.md | 0 .../step3_main/movement/shuffle_channels.md | 0 .../step3_main/movement/split.md | 0 .../step3_main/movement/strided_slice.md | 0 .../step3_main/movement/transpose.md | 0 .../step3_main/movement/variadic_split.md | 0 .../step3_main/normalization/mvn.md | 0 .../step3_main/normalization/normalize_l2.md | 0 .../step3_main/pooling/avg_pool.md | 0 .../step3_main/pooling/max_pool.md | 0 .../step3_main/quantization/fake_quantize.md | 0 .../quantization/fold_fake_quantize.md | 0 .../step3_main/reduction/reduce_max.md | 0 .../step3_main/reduction/reduce_mean.md | 0 .../step3_main/reduction/reduce_min.md | 0 .../step3_main/reduction/reduce_sum.md | 0 .../step3_main/shape/reshape.md | 0 .../step3_main/shape/squeeze.md | 0 .../step3_main/shape/unsqueeze.md | 0 .../fake_quantize_decomposition.md | 0 .../step4_cleanup/fold_convert.md | 0 .../step4_cleanup/fuse_convert.md | 0 .../fuse_multiply_to_fake_quantize.md | 0 .../fuse_subtract_to_fake_quantize.md | 0 .../multiply_to_group_convolution.md | 0 .../plugin_pipeline.md | 6 ++ docs/doxygen/ie_docs.xml | 70 ------------------ 110 files changed, 78 insertions(+), 70 deletions(-) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/attributes/avg_pool_precision_preserved.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/attributes/intervals_alignment.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/attributes/per_tensor_quantization.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/attributes/precision_preserved.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/attributes/precisions.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/attributes/quantization_alignment.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/low_precision_transformation_pipeline.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/low_precision_transformation_pipeline.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.transformed.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.transformed.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_fq_fq_and_convolution.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_qdq_and_convolution.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/img/model_qdq_and_convolution.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/lpt.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/lpt_attributes.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup1.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup1.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup2.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup2.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup3.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup3.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup4.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup4.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup5.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup5.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup6.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup6.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup7.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup7.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup_original.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup_original.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step3_original.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step3_original.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step3_transformed.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/img/step3_transformed.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/step1_prerequisites.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/step2_markup.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/step3_main.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/pipeline/step4_cleanup.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/quantization/img/fq.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/quantization/img/fq.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/quantization/img/fq.transformed.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/quantization/img/fq.transformed.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/create_attribute.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_precisions.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_precisions.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_to_input.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/activation/clamp.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/activation/prelu.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/activation/relu.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/add.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/convolution.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/image/interpolate.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/concat.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/split.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/strided_slice.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/transpose.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/variadic_split.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/normalization/mvn.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/pooling/max_pool.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/shape/reshape.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/shape/squeeze.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fold_convert.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md (100%) rename docs/{ => IE_PLUGIN_DG/transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md (100%) create mode 100644 docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md diff --git a/docs/IE_PLUGIN_DG/layout.xml b/docs/IE_PLUGIN_DG/layout.xml index 3dc629d959c13b..d0a0837efdf681 100644 --- a/docs/IE_PLUGIN_DG/layout.xml +++ b/docs/IE_PLUGIN_DG/layout.xml @@ -4,6 +4,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/avg_pool_precision_preserved.md similarity index 100% rename from docs/low_precision_transformations/attributes/avg_pool_precision_preserved.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/avg_pool_precision_preserved.md diff --git a/docs/low_precision_transformations/attributes/intervals_alignment.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/intervals_alignment.md similarity index 100% rename from docs/low_precision_transformations/attributes/intervals_alignment.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/intervals_alignment.md diff --git a/docs/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/per_tensor_quantization.md similarity index 100% rename from docs/low_precision_transformations/attributes/per_tensor_quantization.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/per_tensor_quantization.md diff --git a/docs/low_precision_transformations/attributes/precision_preserved.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precision_preserved.md similarity index 100% rename from docs/low_precision_transformations/attributes/precision_preserved.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precision_preserved.md diff --git a/docs/low_precision_transformations/attributes/precisions.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md similarity index 100% rename from docs/low_precision_transformations/attributes/precisions.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md diff --git a/docs/low_precision_transformations/attributes/quantization_alignment.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/quantization_alignment.md similarity index 100% rename from docs/low_precision_transformations/attributes/quantization_alignment.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/quantization_alignment.md diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.png similarity index 100% rename from docs/low_precision_transformations/img/low_precision_transformation_pipeline.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.png diff --git a/docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.svg similarity index 100% rename from docs/low_precision_transformations/img/low_precision_transformation_pipeline.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.svg diff --git a/docs/low_precision_transformations/img/model_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.png similarity index 100% rename from docs/low_precision_transformations/img/model_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.png diff --git a/docs/low_precision_transformations/img/model_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/img/model_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/img/model_fq_and_convolution.transformed.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.png similarity index 100% rename from docs/low_precision_transformations/img/model_fq_and_convolution.transformed.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.png diff --git a/docs/low_precision_transformations/img/model_fq_and_convolution.transformed.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.svg similarity index 100% rename from docs/low_precision_transformations/img/model_fq_and_convolution.transformed.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.svg diff --git a/docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.png similarity index 100% rename from docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.png diff --git a/docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/img/model_qdq_and_convolution.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.png similarity index 100% rename from docs/low_precision_transformations/img/model_qdq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.png diff --git a/docs/low_precision_transformations/img/model_qdq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/img/model_qdq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md similarity index 100% rename from docs/low_precision_transformations/lpt.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md diff --git a/docs/low_precision_transformations/lpt_attributes.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt_attributes.md similarity index 100% rename from docs/low_precision_transformations/lpt_attributes.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt_attributes.md diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup1.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup1.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup1.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup1.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup2.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup2.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup2.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup2.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup3.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup3.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup3.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup3.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup4.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup4.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup4.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup4.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup5.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup5.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup5.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup5.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup6.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup6.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup6.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup6.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup7.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup7.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup7.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup7.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.svg diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup_original.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup_original.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.png diff --git a/docs/low_precision_transformations/pipeline/img/step2_markup_original.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step2_markup_original.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.svg diff --git a/docs/low_precision_transformations/pipeline/img/step3_original.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step3_original.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.png diff --git a/docs/low_precision_transformations/pipeline/img/step3_original.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step3_original.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.svg diff --git a/docs/low_precision_transformations/pipeline/img/step3_transformed.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.png similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step3_transformed.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.png diff --git a/docs/low_precision_transformations/pipeline/img/step3_transformed.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.svg similarity index 100% rename from docs/low_precision_transformations/pipeline/img/step3_transformed.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.svg diff --git a/docs/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step1_prerequisites.md similarity index 100% rename from docs/low_precision_transformations/pipeline/step1_prerequisites.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step1_prerequisites.md diff --git a/docs/low_precision_transformations/pipeline/step2_markup.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md similarity index 100% rename from docs/low_precision_transformations/pipeline/step2_markup.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md diff --git a/docs/low_precision_transformations/pipeline/step3_main.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step3_main.md similarity index 100% rename from docs/low_precision_transformations/pipeline/step3_main.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step3_main.md diff --git a/docs/low_precision_transformations/pipeline/step4_cleanup.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step4_cleanup.md similarity index 100% rename from docs/low_precision_transformations/pipeline/step4_cleanup.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step4_cleanup.md diff --git a/docs/low_precision_transformations/quantization/img/fq.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.png similarity index 100% rename from docs/low_precision_transformations/quantization/img/fq.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.png diff --git a/docs/low_precision_transformations/quantization/img/fq.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.svg similarity index 100% rename from docs/low_precision_transformations/quantization/img/fq.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.svg diff --git a/docs/low_precision_transformations/quantization/img/fq.transformed.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.png similarity index 100% rename from docs/low_precision_transformations/quantization/img/fq.transformed.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.png diff --git a/docs/low_precision_transformations/quantization/img/fq.transformed.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.svg similarity index 100% rename from docs/low_precision_transformations/quantization/img/fq.transformed.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.svg diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md similarity index 100% rename from docs/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md similarity index 100% rename from docs/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md diff --git a/docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md similarity index 100% rename from docs/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_attribute.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_attribute.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/create_attribute.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_attribute.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_precisions.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/markup_precisions.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_precisions.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_precisions.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/propagate_precisions.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_precisions.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_to_input.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/propagate_to_input.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_to_input.md diff --git a/docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md similarity index 100% rename from docs/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/clamp.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/clamp.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/activation/clamp.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/clamp.md diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/prelu.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/prelu.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/activation/prelu.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/prelu.md diff --git a/docs/low_precision_transformations/transformations/step3_main/activation/relu.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/relu.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/activation/relu.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/relu.md diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/arithmetic/add.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg diff --git a/docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/convolution.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution.md diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png diff --git a/docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg diff --git a/docs/low_precision_transformations/transformations/step3_main/image/interpolate.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/image/interpolate.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/image/interpolate.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/image/interpolate.md diff --git a/docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/concat.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/concat.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/concat.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/concat.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/split.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/split.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/split.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/split.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/strided_slice.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/strided_slice.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/strided_slice.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/transpose.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/transpose.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/transpose.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/transpose.md diff --git a/docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/variadic_split.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/movement/variadic_split.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/variadic_split.md diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/mvn.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/normalization/mvn.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/mvn.md diff --git a/docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md diff --git a/docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/max_pool.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/pooling/max_pool.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/max_pool.md diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md diff --git a/docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md diff --git a/docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/reshape.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/reshape.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/shape/reshape.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/reshape.md diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/squeeze.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/shape/squeeze.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/squeeze.md diff --git a/docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md similarity index 100% rename from docs/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md similarity index 100% rename from docs/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fold_convert.md similarity index 100% rename from docs/low_precision_transformations/transformations/step4_cleanup/fold_convert.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fold_convert.md diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md similarity index 100% rename from docs/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md similarity index 100% rename from docs/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md similarity index 100% rename from docs/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md diff --git a/docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md similarity index 100% rename from docs/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md rename to docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md b/docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md new file mode 100644 index 00000000000000..ad38622e62be77 --- /dev/null +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md @@ -0,0 +1,6 @@ +# Plugin Transformation Pipeline {#openvino_docs_IE_DG_plugin_pipeline} + +Typical plugin transformation pipeline includes steps: + 1. Common transformations + 2. [Low precision transformations](@ref openvino_docs_IE_DG_lpt) + 3. Plugin specific transformations diff --git a/docs/doxygen/ie_docs.xml b/docs/doxygen/ie_docs.xml index cf01e46b69db50..3a0f6d854eb4c8 100644 --- a/docs/doxygen/ie_docs.xml +++ b/docs/doxygen/ie_docs.xml @@ -316,76 +316,6 @@ limitations under the License. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From d21594321b23d07e32e2865323a889994a6a7efd Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Tue, 23 Nov 2021 10:54:16 +0300 Subject: [PATCH 11/19] [LPT] Documentation: image link quick fix --- .../low_precision_transformations/lpt.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md index 011a652ae4d97f..61d7a6029b1e19 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md @@ -70,12 +70,12 @@ Let's explore both approaches in details on `Convolution` operation. ### FakeQuantize operation In this case `FakeQuantize` operation is used on activations and quantized constant on weights. Original input model: -![](img/model_fq_and_convolution.common.png) +![Original model with FakeQuantize](img/model_fq_and_convolution.common.png) ### Quantize and dequantization operations In this case `FakeQuantize` operation and `Convert` are used as quantize operation and return quantized low precision tensor. After quantize operation on activations there are `Convert` and dequantization operations to compensate decomposition. Original input model: -![](img/model_qdq_and_convolution.common.png) +![Original model with Q/DQ](img/model_qdq_and_convolution.common.png) In both cases result is the same. In LPT result model you can see, that: 1. if necessary, `FakeQuantize` operations on activations were decomposed to two part: @@ -86,12 +86,12 @@ In both cases result is the same. In LPT result model you can see, that: LPT result model: -![](img/fq_and_convolution.transformed.png) +![Result model](img/model_fq_and_convolution.transformed.png) ### Low precision transformations pipeline LPT transformation pipeline has several steps. For each transformation inside one step pattern matcher is unique per transformation, but each operation can be assigned to several transformations. -![](img/low_precision_transformation_pipeline.png) +![Low precision transformations pipeline](img/low_precision_transformation_pipeline.png) Inside each step LPT transformations handle input model operation by operation, applying transformation matching pattern for each transformation from the step to an operation, and execute transformation if pattern is matched. Decomposition transformation decomposes `FakeQuantize` to quantize and dequantization operations. Dequantization operations from previous transformation result is used for the current one and so on, until the end of the model is achieved. From b07723557503fe2412ca95c95b61ab011115d197 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Fri, 26 Nov 2021 00:14:40 +0300 Subject: [PATCH 12/19] [LPT] Docummentation: PrecisionsAttribute description quick fix --- .../low_precision_transformations/attributes/precisions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md index 0b5c1a56e2de92..0b0c27a4801b20 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md @@ -8,4 +8,4 @@ The attribute defines precision which is required for input/output port or an op |---------------|----------------------------------------------| | Required | Yes | | Defined | Operation, input port, output port | -| Properties | value (boolean) | \ No newline at end of file +| Properties | precisions | \ No newline at end of file From b917c51b1296550807c67ff1684e0dd51d120751 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Sun, 19 Dec 2021 15:29:28 +0300 Subject: [PATCH 13/19] fix comments from Karol --- .../low_precision_transformations/lpt.md | 32 +++++++++---------- .../pipeline/step2_markup.md | 4 +-- .../step3_main/arithmetic/add.md | 2 +- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md index 61d7a6029b1e19..24dfba4e0afa29 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md @@ -3,19 +3,19 @@ ## Introduction Low precision transformations (known as LPT) are a set of nGraph transformations, which are combined in one library. The library is mandatory part of OpenVINO to infer quantized model in low precision with the maximum performance on Intel CPU, GPU and ARM platforms. The library includes more than 45 transformations and supports more then 30 operations. Some transformations are mandatory, some of them are optional and developed for specific device. -The goal of Low Precision Transformations (LPT) is transform quantized model from original precisions (FP16 or FP32) to low precision (INT8: `signed int8` or `unsigned int8`) model to prepare model for low precision inference in OpenVINOâ„¢ plugin. It achieved by two main principles: +The goal of Low Precision Transformations (LPT) is to transform a quantized model from its original precision (FP16 or FP32) to a low precision (INT8: `signed int8` or `unsigned int8`), so that it is prepared for low precision inference in OpenVINOâ„¢ plugin. It is achieved by two main principles: 1. `FakeQuantize` operation decomposition to two parts: - part #1: quantize operation - new `FakeQuantize` operation with output quantization intervals in low precision range (signed int8: [-128, 127] or [-127, 127], unsigned int8: [0, 255] or [0, 256]) and with low precision output (`signed int8` or `unsigned int8`), - part #2: dequantization operations with low precision input and original precision output. -2. Dequantization operation propagation through original models operations to avoid dequantization operations before original model operations, thus the quantize operations with low precision output remains before original model operations. +2. Propagation of the dequantization operation through original model's operations. It is done to avoid dequantization operations before original model operations, thus the quantize operations with low precision output remain before the original model operations. As result, operation input tensor precisions will be changed from original to low precision and operations can be inferred by OpenVINOâ„¢ plugin in low precision. -How quantize a model in details you can explore in [Low precision tools](#low-precision-tools) section below. For more information about model quantization, refer to **Brief History of Lower Precision in Deep Learning** section in [this whitepaper](https://software.intel.com/en-us/articles/lower-numerical-precision-deep-learning-inference-and-training). +For a more detailed description on how to quantize a model, see the [Low precision tools](#low-precision-tools) section below. For more information about model quantization, refer to **Brief History of Lower Precision in Deep Learning** section in [this whitepaper](https://software.intel.com/en-us/articles/lower-numerical-precision-deep-learning-inference-and-training). ## Input model requirements -LPT transformations propagate dequantization operations through follow operations: +LPT transformations propagate dequantization operations through the following operations: * [Add-1](@ref openvino_docs_ops_arithmetic_Add_1) * [AvgPool-1](@ref openvino_docs_ops_pooling_AvgPool_1) * [Clamp-1](@ref openvino_docs_ops_activation_Clamp_1) @@ -59,7 +59,7 @@ There are two tools to quantize a model: 1. [Post-Training Optimization Toolkit](@ref pot_README.html) (POT) 2. [Neural Network Compression Framework](https://github.com/openvinotoolkit/nncf) (NNCF) -Additionally, low precision transformations can handle ONNX quantized model. +Additionally, low precision transformations can handle ONNX quantized models. ## Quantization approaches LPT transformations support two quantization approaches: @@ -81,7 +81,7 @@ In both cases result is the same. In LPT result model you can see, that: 1. if necessary, `FakeQuantize` operations on activations were decomposed to two part: - new `FakeQuantize`operation with updated output intervals in low precision range and low precision output, - dequantization operations on activations; -2. if necessary, existing `FakeQuantize` decomposition can be rework to get more optimal precision; +2. if necessary, an existing `FakeQuantize` decomposition can be reworked to get better precision; 3. dequantization operations were propagated through `Convolution`. LPT result model: @@ -104,7 +104,7 @@ Low precision transformations pipeline includes four steps: * [Step #4: Cleanup transformations](@ref openvino_docs_IE_DG_lpt_step4_cleanup) ### Step 1. Prerequisites -This step fuses and propagates some operations in the model before run the next step. The step is required for OpenVINO plugins. Transformations: +This step fuses and propagates some operations in the model to prepare for the next step. It is required for OpenVINO plugins. Transformations: * [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization) * [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization) * [LinOpSequenceFusion](@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion) @@ -112,7 +112,7 @@ This step fuses and propagates some operations in the model before run the next The model on this step is changed. There are more details in developer guide [Prerequisites transformations](@ref openvino_docs_IE_DG_lpt_step1_prerequisites). ### Step 2. Markup -This step create runtime attributes for operations. Attributes will be used in next step. Transformations: +This step creates runtime attributes for operations. These attributes will be used in next step. Transformations: * [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) * [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) * [MarkupPerTensorQuantization](@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization) @@ -124,7 +124,7 @@ This step create runtime attributes for operations. Attributes will be used in n The model on this step is changed: only new attributes are added to some operations. There are more details in developer guide [Markup transformations](@ref openvino_docs_IE_DG_lpt_step2_markup). ### Step 3. Main transformations, FakeQuantize decomposition and dequantization operations handling -This step has the most transformations. Transformations: +This step has the most transformations. These transformations can be separated in two groups: decomposition transformation and dequantization operations handling. There are more details in developer guide [Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main). Transformations: * [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation) * [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) * [ClampTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation) @@ -156,10 +156,8 @@ This step has the most transformations. Transformations: * [UnsqueezeTransformation](@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation) * [VariadicSplitTransformation](@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation) -Transformations from this step can be separated in two groups: decomposition transformation and dequantization operations handling. There are more details in developer guide [Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main). - #### Decomposition transformations -Decomposition transformations decompose `FakeQuantize` operation to quantize (`FakeQuantize` with low precision output) and dequantization operations (revers operations to quantize, with low precision input and original precision output). For dequantization operations LPT uses three operations: `Convert`, `Subtract` and `Multiply`. Element-wise operations `Subtract` and `Multiply` have constants on the second branches. If dequantization operations are not handled at the end of LPT pipeline, then they will be fused back to the `FakeQuantize`. +Decomposition transformations decompose the `FakeQuantize` operation to: quantize (`FakeQuantize` with low precision output) and dequantization operations (opposite to quantize, with low precision input and the original precision output). For dequantization operations LPT uses three operations: `Convert`, `Subtract` and `Multiply`. Element-wise operations `Subtract` and `Multiply` have constants on the second branches. If dequantization operations are not handled at the end of LPT pipeline, then they will be fused back to the `FakeQuantize`. Original `FakeQuantize`: @@ -172,7 +170,7 @@ Original `FakeQuantize`: #### Dequantization operations handling transformations -In this step LPT transformations fuse or move dequantization operations through existing model operations as more as possible. +In this step, LPT transformations fuse dequantization operations or move them through existing model operations as much as possible. Original `Convolution` operation in FP32 with dequantization operations before: ![Convolution operation before LPT](img/model_fq_and_convolution.common.png) @@ -180,7 +178,7 @@ Original `Convolution` operation in FP32 with dequantization operations before: `Convolution` operation in INT8 after decomposition and dequantization operations handling: ![Convolution operation after LPT](img/model_fq_and_convolution.transformed.png) -### Step 4: Cleanup result model +### Step 4: Cleanup of the result model LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. Transformations: * [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation) * [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation) @@ -208,12 +206,12 @@ This step is optional for LPT but typically is presented in OpenVINOâ„¢ plugins. @snippet snippets/lpt_mkldnn_plugin.cpp lpt_common ### Step 2. Low precision transformations execution -This step is mandatory. The step configure and run LPT transformations. +This step is mandatory. It configures and runs LPT transformations. @snippet snippets/lpt_mkldnn_plugin.cpp lpt_execution -### Step 3. Plugin specific transformations -This step is optional. The step modifies nGraph function to device specific operation set. +### Step 3. Plugin-specific transformations +This step is optional. It modifies the nGraph function to a device-specific operation set. @snippet snippets/lpt_mkldnn_plugin.cpp lpt_device diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md index fcb5519143514e..8d32ffef000faa 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md @@ -1,6 +1,6 @@ # Step 2. Markup Transformations {#openvino_docs_IE_DG_lpt_step2_markup} -This step defines the optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input and output ports and operations. Transformations do not change the operation output port precisions. A model markup low precision logic is decomposed and implemented into the following common markup transformations. Transformations order is important: +This step defines the optimal `FakeQuantize` decomposition precisions for the best inference performance via operations markup with runtime attribute instances. Attributes are created for input and output ports and operations. Transformations do not change the operation output port precisions. A model markup low precision logic is decomposed and implemented into the following common markup transformations. The order of transformations is important: 1. [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized) 2. [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions) @@ -31,7 +31,7 @@ Common markup transformations can be decomposed into simpler utility markup tran * [PropagateToInput](@ref openvino_docs_IE_DG_lpt_PropagateToInput) * [UpdateSharedPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved) -Let's explore all transformations and their relations in details on the same model: +Let's explore all transformations and their relations in detail, using one and the same model: ![](img/step2_markup_original.png) diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md index b08d865a60bae0..337c49a9749aed 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md @@ -26,7 +26,7 @@ Depending on the plugin instruction set, low precision inference for the `Add` o * Inference step #2: Inference step #1 result can be added with the empty branch tensor in low precision. -This approach allows to infer the `Add` operation in the most optimal way. +This approach allows to infer the `Add` operation in the optimal way. ## Subgraph before transformation The subgraph with quantized `Add` operation before transformation: From bf169e23dd25465775ae9de4d83d9a0d83fc3915 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Tue, 21 Dec 2021 23:55:44 +0300 Subject: [PATCH 14/19] fixes --- .../step1_prerequisites/convert_subtract_constant.md | 3 +++ .../transformations/step2_markup/propagate_shared_value.md | 3 +++ .../transformations/step3_main/movement/pad.md | 3 +++ .../low_precision_transformations/lpt.md | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md create mode 100644 docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md create mode 100644 docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/pad.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md new file mode 100644 index 00000000000000..49011c482f5c7c --- /dev/null +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md @@ -0,0 +1,3 @@ +# ConvertSubtractConstant transformation {#openvino_docs_IE_DG_lpt_ConvertSubtractConstant} + +ngraph::pass::low_precision::ConvertSubtractConstant class represents the `ConvertSubtractConstant` transformation. diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md new file mode 100644 index 00000000000000..e7f93dd64f0643 --- /dev/null +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md @@ -0,0 +1,3 @@ +# PropagateSharedValue transformation {#openvino_docs_IE_DG_lpt_PropagateSharedValue} + +ngraph::pass::low_precision::PropagateSharedValue class represents the `PropagateSharedValue` transformation. diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/pad.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/pad.md new file mode 100644 index 00000000000000..feb8561f3c00ec --- /dev/null +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/pad.md @@ -0,0 +1,3 @@ +# PadTransformation transformation {#openvino_docs_IE_DG_lpt_PadTransformation} + +ngraph::pass::low_precision::PadTransformation class represents the `Pad` operation transformation. diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md index 24dfba4e0afa29..d30eced5c5b5e6 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md +++ b/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md @@ -56,7 +56,7 @@ For example, if you would like to infer a model with `Convolution` operation in ### Low precision tools There are two tools to quantize a model: -1. [Post-Training Optimization Toolkit](@ref pot_README.html) (POT) +1. [Post-Training Optimization Toolkit](@ref pot_docs_LowPrecisionOptimizationGuide) (POT) 2. [Neural Network Compression Framework](https://github.com/openvinotoolkit/nncf) (NNCF) Additionally, low precision transformations can handle ONNX quantized models. @@ -228,7 +228,7 @@ After that you should quantize model by the [Model Quantizer](@ref omz_tools_dow ### Inference -The simplest way to infer the model and collect performance counters is [C++ Benchmark Application](../../inference-engine/samples/benchmark_app/README.md). +The simplest way to infer the model and collect performance counters is [Benchmark Application](../../samples/cpp/benchmark_app/README.md). ```sh ./benchmark_app -m resnet-50-tf.xml -d CPU -niter 1 -api sync -report_type average_counters -report_folder pc_report_dir ``` From 57d2303b46f92786927551efebab83c50a38e9f5 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Mon, 20 Dec 2021 00:28:19 +0300 Subject: [PATCH 15/19] movement --- docs/IE_PLUGIN_DG/ExecutableNetwork.md | 2 +- docs/IE_PLUGIN_DG/Intro.md | 1 + docs/IE_PLUGIN_DG/layout.xml | 3 +-- .../attributes/avg_pool_precision_preserved.md | 0 .../attributes/intervals_alignment.md | 0 .../attributes/per_tensor_quantization.md | 0 .../attributes/precision_preserved.md | 0 .../low_precision_transformations/attributes/precisions.md | 0 .../attributes/quantization_alignment.md | 0 .../img/low_precision_transformation_pipeline.png | 0 .../img/low_precision_transformation_pipeline.svg | 0 .../img/model_fq_and_convolution.common.png | 0 .../img/model_fq_and_convolution.common.svg | 0 .../img/model_fq_and_convolution.transformed.png | 0 .../img/model_fq_and_convolution.transformed.svg | 0 .../img/model_fq_fq_and_convolution.common.png | 0 .../img/model_fq_fq_and_convolution.common.svg | 0 .../img/model_qdq_and_convolution.common.png | 0 .../img/model_qdq_and_convolution.common.svg | 0 .../low_precision_transformations/lpt.md | 2 +- .../low_precision_transformations/lpt_attributes.md | 0 .../pipeline/img/step2_markup1.png | 0 .../pipeline/img/step2_markup1.svg | 0 .../pipeline/img/step2_markup2.png | 0 .../pipeline/img/step2_markup2.svg | 0 .../pipeline/img/step2_markup3.png | 0 .../pipeline/img/step2_markup3.svg | 0 .../pipeline/img/step2_markup4.png | 0 .../pipeline/img/step2_markup4.svg | 0 .../pipeline/img/step2_markup5.png | 0 .../pipeline/img/step2_markup5.svg | 0 .../pipeline/img/step2_markup6.png | 0 .../pipeline/img/step2_markup6.svg | 0 .../pipeline/img/step2_markup7.png | 0 .../pipeline/img/step2_markup7.svg | 0 .../pipeline/img/step2_markup_original.png | 0 .../pipeline/img/step2_markup_original.svg | 0 .../pipeline/img/step3_original.png | 0 .../pipeline/img/step3_original.svg | 0 .../pipeline/img/step3_transformed.png | 0 .../pipeline/img/step3_transformed.svg | 0 .../pipeline/step1_prerequisites.md | 0 .../low_precision_transformations/pipeline/step2_markup.md | 0 .../low_precision_transformations/pipeline/step3_main.md | 0 .../low_precision_transformations/pipeline/step4_cleanup.md | 0 .../quantization/img/fq.common.png | 0 .../quantization/img/fq.common.svg | 0 .../quantization/img/fq.transformed.png | 0 .../quantization/img/fq.transformed.svg | 0 .../step1_prerequisites/lin_op_sequence_fusion.md | 0 .../pull_reshape_through_dequantization.md | 0 .../pull_transpose_through_dequantization.md | 0 .../step2_markup/align_quantization_intervals.md | 0 .../step2_markup/align_quantization_parameters.md | 0 .../transformations/step2_markup/create_attribute.md | 0 .../step2_markup/create_precisions_dependent_attribute.md | 0 .../step2_markup/markup_avg_pool_precision_preserved.md | 0 .../transformations/step2_markup/markup_can_be_quantized.md | 0 .../step2_markup/markup_per_tensor_quantization.md | 0 .../transformations/step2_markup/markup_precisions.md | 0 .../transformations/step2_markup/propagate_precisions.md | 0 .../step2_markup/propagate_through_precision_preserved.md | 0 .../transformations/step2_markup/propagate_to_input.md | 0 .../step2_markup/update_shared_precision_preserved.md | 0 .../transformations/step3_main/activation/clamp.md | 0 .../transformations/step3_main/activation/prelu.md | 0 .../transformations/step3_main/activation/relu.md | 0 .../transformations/step3_main/arithmetic/add.md | 0 .../step3_main/arithmetic/img/add.common.png | 0 .../step3_main/arithmetic/img/add.common.svg | 0 .../step3_main/arithmetic/img/add.transformed.png | 0 .../step3_main/arithmetic/img/add.transformed.svg | 0 .../transformations/step3_main/arithmetic/multiply.md | 0 .../transformations/step3_main/arithmetic/subtract.md | 3 +++ .../transformations/step3_main/convolution/convolution.md | 0 .../step3_main/convolution/convolution_backprop_data.md | 0 .../step3_main/convolution/group_convolution.md | 0 .../convolution/img/fq_and_convolution.common.png | 0 .../convolution/img/fq_and_convolution.common.svg | 0 .../convolution/img/fq_and_convolution.transformed.png | 0 .../convolution/img/fq_and_convolution.transformed.svg | 0 .../convolution/img/fq_fq_and_convolution.common.png | 0 .../convolution/img/fq_fq_and_convolution.common.svg | 0 .../transformations/step3_main/image/interpolate.md | 0 .../transformations/step3_main/matrix/mat_mul.md | 0 .../transformations/step3_main/movement/concat.md | 0 .../transformations/step3_main/movement/depth_to_space.md | 0 .../transformations/step3_main/movement/shuffle_channels.md | 0 .../transformations/step3_main/movement/split.md | 0 .../transformations/step3_main/movement/strided_slice.md | 0 .../transformations/step3_main/movement/transpose.md | 0 .../transformations/step3_main/movement/variadic_split.md | 0 .../transformations/step3_main/normalization/mvn.md | 0 .../step3_main/normalization/normalize_l2.md | 0 .../transformations/step3_main/pooling/avg_pool.md | 0 .../transformations/step3_main/pooling/max_pool.md | 0 .../step3_main/quantization/fake_quantize.md | 0 .../step3_main/quantization/fold_fake_quantize.md | 0 .../transformations/step3_main/reduction/reduce_max.md | 0 .../transformations/step3_main/reduction/reduce_mean.md | 0 .../transformations/step3_main/reduction/reduce_min.md | 0 .../transformations/step3_main/reduction/reduce_sum.md | 0 .../transformations/step3_main/shape/reshape.md | 0 .../transformations/step3_main/shape/squeeze.md | 0 .../transformations/step3_main/shape/unsqueeze.md | 0 .../step4_cleanup/fake_quantize_decomposition.md | 0 .../transformations/step4_cleanup/fold_convert.md | 0 .../transformations/step4_cleanup/fuse_convert.md | 0 .../step4_cleanup/fuse_multiply_to_fake_quantize.md | 0 .../step4_cleanup/fuse_subtract_to_fake_quantize.md | 0 .../step4_cleanup/multiply_to_group_convolution.md | 0 .../IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md | 6 ------ 112 files changed, 7 insertions(+), 10 deletions(-) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/attributes/avg_pool_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/attributes/intervals_alignment.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/attributes/per_tensor_quantization.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/attributes/precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/attributes/precisions.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/attributes/quantization_alignment.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/low_precision_transformation_pipeline.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/low_precision_transformation_pipeline.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_fq_and_convolution.transformed.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_fq_and_convolution.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_fq_fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_qdq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/img/model_qdq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/lpt.md (99%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/lpt_attributes.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup1.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup1.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup2.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup2.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup3.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup3.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup4.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup4.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup5.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup5.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup6.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup6.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup7.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup7.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup_original.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step2_markup_original.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step3_original.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step3_original.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step3_transformed.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/img/step3_transformed.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/step1_prerequisites.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/step2_markup.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/step3_main.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/pipeline/step4_cleanup.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/quantization/img/fq.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/quantization/img/fq.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/quantization/img/fq.transformed.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/quantization/img/fq.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/create_attribute.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/markup_precisions.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/propagate_precisions.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/propagate_to_input.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/activation/clamp.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/activation/prelu.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/activation/relu.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/arithmetic/add.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md (100%) create mode 100644 docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/convolution.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/image/interpolate.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/concat.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/split.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/strided_slice.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/transpose.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/movement/variadic_split.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/normalization/mvn.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/pooling/max_pool.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/shape/reshape.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/shape/squeeze.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step4_cleanup/fold_convert.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{transformation_pipeline => }/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md (100%) delete mode 100644 docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md diff --git a/docs/IE_PLUGIN_DG/ExecutableNetwork.md b/docs/IE_PLUGIN_DG/ExecutableNetwork.md index d9fc8af11abe0a..5f703bcd88091b 100644 --- a/docs/IE_PLUGIN_DG/ExecutableNetwork.md +++ b/docs/IE_PLUGIN_DG/ExecutableNetwork.md @@ -37,7 +37,7 @@ The implementation `CompileNetwork` is fully device-specific. The function accepts a const shared pointer to `ngraph::Function` object and performs the following steps: -1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. +1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. To support low precision inference, the pipeline can include Low Precision Transformations. These transformations are usually hardware specific. You can find how to use and configure Low Precisions Transformations in [Low Precision Transformations](@ref openvino_docs_IE_DG_lpt) guide. 2. Maps the transformed graph to a backend specific graph representation (for example, to MKLDNN graph for Intel CPU). 3. Allocates and fills memory for graph weights, backend specific memory handles and so on. diff --git a/docs/IE_PLUGIN_DG/Intro.md b/docs/IE_PLUGIN_DG/Intro.md index 8979d4c74a96b3..5a85573e5432e3 100644 --- a/docs/IE_PLUGIN_DG/Intro.md +++ b/docs/IE_PLUGIN_DG/Intro.md @@ -52,6 +52,7 @@ Detailed guides * [Build](@ref openvino_docs_ie_plugin_dg_plugin_build) a plugin library using CMake\* * Plugin and its components [testing](@ref openvino_docs_ie_plugin_dg_plugin_testing) * [Quantized networks](@ref openvino_docs_ie_plugin_dg_quantized_networks) +* [Low precision transformations](@ref openvino_docs_IE_DG_lpt) guide * [Writing nGraph transformations](@ref ngraph_transformation) guide API References diff --git a/docs/IE_PLUGIN_DG/layout.xml b/docs/IE_PLUGIN_DG/layout.xml index d0a0837efdf681..bba21ddd206e16 100644 --- a/docs/IE_PLUGIN_DG/layout.xml +++ b/docs/IE_PLUGIN_DG/layout.xml @@ -4,7 +4,7 @@ - + @@ -76,7 +76,6 @@ - diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/avg_pool_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/avg_pool_precision_preserved.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/attributes/avg_pool_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/intervals_alignment.md b/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/intervals_alignment.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/intervals_alignment.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/attributes/intervals_alignment.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/per_tensor_quantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/per_tensor_quantization.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/attributes/per_tensor_quantization.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precision_preserved.md b/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precision_preserved.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md b/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precisions.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/precisions.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precisions.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/quantization_alignment.md b/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/quantization_alignment.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/attributes/quantization_alignment.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/attributes/quantization_alignment.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.png b/docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.png b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md similarity index 99% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md index d30eced5c5b5e6..14a93bde8abfd1 100644 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt.md +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md @@ -228,7 +228,7 @@ After that you should quantize model by the [Model Quantizer](@ref omz_tools_dow ### Inference -The simplest way to infer the model and collect performance counters is [Benchmark Application](../../samples/cpp/benchmark_app/README.md). +The simplest way to infer the model and collect performance counters is [Benchmark Application](../../../samples/cpp/benchmark_app/README.md). ```sh ./benchmark_app -m resnet-50-tf.xml -d CPU -niter 1 -api sync -report_type average_counters -report_folder pc_report_dir ``` diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt_attributes.md b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/lpt_attributes.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.png b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step1_prerequisites.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step1_prerequisites.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step1_prerequisites.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step2_markup.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step2_markup.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step3_main.md b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step3_main.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step3_main.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step3_main.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step4_cleanup.md b/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step4_cleanup.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/pipeline/step4_cleanup.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step4_cleanup.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.png b/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_attribute.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_attribute.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_attribute.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_attribute.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_precisions.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_precisions.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_precisions.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_precisions.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_precisions.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_precisions.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_precisions.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_precisions.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_to_input.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_to_input.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_to_input.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_to_input.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/clamp.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/clamp.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/clamp.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/clamp.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/prelu.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/prelu.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/prelu.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/prelu.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/relu.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/relu.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/relu.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/relu.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/add.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/add.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md new file mode 100644 index 00000000000000..8ba827aaea93cc --- /dev/null +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md @@ -0,0 +1,3 @@ +# SubtractTransformation transformation {#openvino_docs_IE_DG_lpt_SubtractTransformation} + +ngraph::pass::low_precision::SubtractTransformation class represents the `Subtract` operation transformation. \ No newline at end of file diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/image/interpolate.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/image/interpolate.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/image/interpolate.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/image/interpolate.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/concat.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/concat.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/concat.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/concat.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/split.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/split.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/split.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/split.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/strided_slice.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/strided_slice.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/strided_slice.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/strided_slice.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/transpose.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/transpose.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/transpose.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/transpose.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/variadic_split.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/variadic_split.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/variadic_split.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/variadic_split.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/mvn.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/mvn.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/mvn.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/mvn.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/max_pool.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/max_pool.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/max_pool.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/max_pool.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/reshape.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/reshape.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/reshape.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/reshape.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/squeeze.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/squeeze.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/squeeze.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/squeeze.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fold_convert.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fold_convert.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fold_convert.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fold_convert.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md b/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md similarity index 100% rename from docs/IE_PLUGIN_DG/transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md rename to docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md diff --git a/docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md b/docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md deleted file mode 100644 index ad38622e62be77..00000000000000 --- a/docs/IE_PLUGIN_DG/transformation_pipeline/plugin_pipeline.md +++ /dev/null @@ -1,6 +0,0 @@ -# Plugin Transformation Pipeline {#openvino_docs_IE_DG_plugin_pipeline} - -Typical plugin transformation pipeline includes steps: - 1. Common transformations - 2. [Low precision transformations](@ref openvino_docs_IE_DG_lpt) - 3. Plugin specific transformations From 69ea77581bc240a7d77bc9b860602b92a0b5b0fa Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Wed, 22 Dec 2021 22:39:02 +0300 Subject: [PATCH 16/19] directive was added --- docs/IE_PLUGIN_DG/ExecutableNetwork.md | 11 +++++++++++ .../low_precision_transformations/lpt.md | 17 +++++++++++++++++ .../lpt_attributes.md | 16 ++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/docs/IE_PLUGIN_DG/ExecutableNetwork.md b/docs/IE_PLUGIN_DG/ExecutableNetwork.md index 5f703bcd88091b..12db8094597476 100644 --- a/docs/IE_PLUGIN_DG/ExecutableNetwork.md +++ b/docs/IE_PLUGIN_DG/ExecutableNetwork.md @@ -1,5 +1,16 @@ # Executable Network {#openvino_docs_ie_plugin_dg_executable_network} +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :caption: Executable Network + :hidden: + + Low Precision Transformations + +@endsphinxdirective + `ExecutableNetwork` class functionality: - Compile an InferenceEngine::ICNNNetwork instance to a backend specific graph representation - Create an arbitrary number of `InferRequest` objects diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md index 14a93bde8abfd1..e0930ac3e08e31 100644 --- a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md @@ -1,5 +1,22 @@ # OpenVINOâ„¢ Low Precision Transformations {#openvino_docs_IE_DG_lpt} +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :caption: Low Precision Transformations + :hidden: + + Low Precision Transformations + + Attributes + Step 1. Prerequisites transformations + Step 2. Markup transformations + Step 3. Main transformations + Step 4. Cleanup transformations + +@endsphinxdirective + ## Introduction Low precision transformations (known as LPT) are a set of nGraph transformations, which are combined in one library. The library is mandatory part of OpenVINO to infer quantized model in low precision with the maximum performance on Intel CPU, GPU and ARM platforms. The library includes more than 45 transformations and supports more then 30 operations. Some transformations are mandatory, some of them are optional and developed for specific device. diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md index 166fa5625fb168..ce567c746e717e 100644 --- a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md +++ b/docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md @@ -1,5 +1,21 @@ # Attributes {#openvino_docs_IE_DG_lpt_attributes} +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :caption: Attributes + :hidden: + + AvgPoolPrecisionPreserved + IntervalsAlignment + PerTensorQuantization + PrecisionPreserved + Precisions + QuantizationAlignment + +@endsphinxdirective + ## Introduction | Name | Target | Required | Mutable | From 6c3e23296cae157f438bd4fd9719ed01cb64aee6 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Fri, 24 Dec 2021 19:41:18 +0300 Subject: [PATCH 17/19] movement #2 --- docs/IE_PLUGIN_DG/ExecutableNetwork.md | 13 +------------ .../PluginTransformationPipeline.md | 17 +++++++++++++++++ .../attributes/avg_pool_precision_preserved.md | 0 .../attributes/intervals_alignment.md | 0 .../attributes/per_tensor_quantization.md | 0 .../attributes/precision_preserved.md | 0 .../attributes/precisions.md | 0 .../attributes/quantization_alignment.md | 0 .../low_precision_transformation_pipeline.png | 0 .../low_precision_transformation_pipeline.svg | 0 .../img/model_fq_and_convolution.common.png | 0 .../img/model_fq_and_convolution.common.svg | 0 .../model_fq_and_convolution.transformed.png | 0 .../model_fq_and_convolution.transformed.svg | 0 .../img/model_fq_fq_and_convolution.common.png | 0 .../img/model_fq_fq_and_convolution.common.svg | 0 .../img/model_qdq_and_convolution.common.png | 0 .../img/model_qdq_and_convolution.common.svg | 0 .../low_precision_transformations/lpt.md | 2 +- .../lpt_attributes.md | 0 .../pipeline/img/step2_markup1.png | 0 .../pipeline/img/step2_markup1.svg | 0 .../pipeline/img/step2_markup2.png | 0 .../pipeline/img/step2_markup2.svg | 0 .../pipeline/img/step2_markup3.png | 0 .../pipeline/img/step2_markup3.svg | 0 .../pipeline/img/step2_markup4.png | 0 .../pipeline/img/step2_markup4.svg | 0 .../pipeline/img/step2_markup5.png | 0 .../pipeline/img/step2_markup5.svg | 0 .../pipeline/img/step2_markup6.png | 0 .../pipeline/img/step2_markup6.svg | 0 .../pipeline/img/step2_markup7.png | 0 .../pipeline/img/step2_markup7.svg | 0 .../pipeline/img/step2_markup_original.png | 0 .../pipeline/img/step2_markup_original.svg | 0 .../pipeline/img/step3_original.png | 0 .../pipeline/img/step3_original.svg | 0 .../pipeline/img/step3_transformed.png | 0 .../pipeline/img/step3_transformed.svg | 0 .../pipeline/step1_prerequisites.md | 0 .../pipeline/step2_markup.md | 0 .../pipeline/step3_main.md | 0 .../pipeline/step4_cleanup.md | 0 .../quantization/img/fq.common.png | 0 .../quantization/img/fq.common.svg | 0 .../quantization/img/fq.transformed.png | 0 .../quantization/img/fq.transformed.svg | 0 .../convert_subtract_constant.md | 0 .../lin_op_sequence_fusion.md | 0 .../pull_reshape_through_dequantization.md | 0 .../pull_transpose_through_dequantization.md | 0 .../align_quantization_intervals.md | 0 .../align_quantization_parameters.md | 0 .../step2_markup/create_attribute.md | 0 .../create_precisions_dependent_attribute.md | 0 .../markup_avg_pool_precision_preserved.md | 0 .../step2_markup/markup_can_be_quantized.md | 0 .../markup_per_tensor_quantization.md | 0 .../step2_markup/markup_precisions.md | 0 .../step2_markup/propagate_precisions.md | 0 .../step2_markup/propagate_shared_value.md | 0 .../propagate_through_precision_preserved.md | 0 .../step2_markup/propagate_to_input.md | 0 .../update_shared_precision_preserved.md | 0 .../step3_main/activation/clamp.md | 0 .../step3_main/activation/prelu.md | 0 .../step3_main/activation/relu.md | 0 .../step3_main/arithmetic/add.md | 0 .../step3_main/arithmetic/img/add.common.png | 0 .../step3_main/arithmetic/img/add.common.svg | 0 .../arithmetic/img/add.transformed.png | 0 .../arithmetic/img/add.transformed.svg | 0 .../step3_main/arithmetic/multiply.md | 0 .../step3_main/arithmetic/subtract.md | 0 .../step3_main/convolution/convolution.md | 0 .../convolution/convolution_backprop_data.md | 0 .../step3_main/convolution/group_convolution.md | 0 .../img/fq_and_convolution.common.png | 0 .../img/fq_and_convolution.common.svg | 0 .../img/fq_and_convolution.transformed.png | 0 .../img/fq_and_convolution.transformed.svg | 0 .../img/fq_fq_and_convolution.common.png | 0 .../img/fq_fq_and_convolution.common.svg | 0 .../step3_main/image/interpolate.md | 0 .../step3_main/matrix/mat_mul.md | 0 .../step3_main/movement/concat.md | 0 .../step3_main/movement/depth_to_space.md | 0 .../transformations/step3_main/movement/pad.md | 0 .../step3_main/movement/shuffle_channels.md | 0 .../step3_main/movement/split.md | 0 .../step3_main/movement/strided_slice.md | 0 .../step3_main/movement/transpose.md | 0 .../step3_main/movement/variadic_split.md | 0 .../step3_main/normalization/mvn.md | 0 .../step3_main/normalization/normalize_l2.md | 0 .../step3_main/pooling/avg_pool.md | 0 .../step3_main/pooling/max_pool.md | 0 .../step3_main/quantization/fake_quantize.md | 0 .../quantization/fold_fake_quantize.md | 0 .../step3_main/reduction/reduce_max.md | 0 .../step3_main/reduction/reduce_mean.md | 0 .../step3_main/reduction/reduce_min.md | 0 .../step3_main/reduction/reduce_sum.md | 0 .../transformations/step3_main/shape/reshape.md | 0 .../transformations/step3_main/shape/squeeze.md | 0 .../step3_main/shape/unsqueeze.md | 0 .../fake_quantize_decomposition.md | 0 .../step4_cleanup/fold_convert.md | 0 .../step4_cleanup/fuse_convert.md | 0 .../fuse_multiply_to_fake_quantize.md | 0 .../fuse_subtract_to_fake_quantize.md | 0 .../multiply_to_group_convolution.md | 0 docs/documentation.md | 1 + 114 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 docs/IE_PLUGIN_DG/plugin_transformation_pipeline/PluginTransformationPipeline.md rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/attributes/avg_pool_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/attributes/intervals_alignment.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/attributes/per_tensor_quantization.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/attributes/precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/attributes/precisions.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/attributes/quantization_alignment.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/low_precision_transformation_pipeline.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/low_precision_transformation_pipeline.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.transformed.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_fq_and_convolution.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_fq_fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_qdq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/img/model_qdq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/lpt.md (99%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/lpt_attributes.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup1.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup1.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup2.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup2.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup3.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup3.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup4.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup4.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup5.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup5.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup6.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup6.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup7.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup7.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup_original.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step2_markup_original.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step3_original.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step3_original.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step3_transformed.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/img/step3_transformed.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/step1_prerequisites.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/step2_markup.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/step3_main.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/pipeline/step4_cleanup.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/quantization/img/fq.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/quantization/img/fq.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/quantization/img/fq.transformed.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/quantization/img/fq.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/create_attribute.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/markup_precisions.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_precisions.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/propagate_to_input.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/activation/clamp.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/activation/prelu.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/activation/relu.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/add.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/convolution.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/image/interpolate.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/concat.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/pad.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/split.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/strided_slice.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/transpose.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/movement/variadic_split.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/normalization/mvn.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/pooling/max_pool.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/shape/reshape.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/shape/squeeze.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fold_convert.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md (100%) rename docs/IE_PLUGIN_DG/{ => plugin_transformation_pipeline}/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md (100%) diff --git a/docs/IE_PLUGIN_DG/ExecutableNetwork.md b/docs/IE_PLUGIN_DG/ExecutableNetwork.md index 12db8094597476..d9fc8af11abe0a 100644 --- a/docs/IE_PLUGIN_DG/ExecutableNetwork.md +++ b/docs/IE_PLUGIN_DG/ExecutableNetwork.md @@ -1,16 +1,5 @@ # Executable Network {#openvino_docs_ie_plugin_dg_executable_network} -@sphinxdirective - -.. toctree:: - :maxdepth: 1 - :caption: Executable Network - :hidden: - - Low Precision Transformations - -@endsphinxdirective - `ExecutableNetwork` class functionality: - Compile an InferenceEngine::ICNNNetwork instance to a backend specific graph representation - Create an arbitrary number of `InferRequest` objects @@ -48,7 +37,7 @@ The implementation `CompileNetwork` is fully device-specific. The function accepts a const shared pointer to `ngraph::Function` object and performs the following steps: -1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. To support low precision inference, the pipeline can include Low Precision Transformations. These transformations are usually hardware specific. You can find how to use and configure Low Precisions Transformations in [Low Precision Transformations](@ref openvino_docs_IE_DG_lpt) guide. +1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. 2. Maps the transformed graph to a backend specific graph representation (for example, to MKLDNN graph for Intel CPU). 3. Allocates and fills memory for graph weights, backend specific memory handles and so on. diff --git a/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/PluginTransformationPipeline.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/PluginTransformationPipeline.md new file mode 100644 index 00000000000000..7e13077f44f98f --- /dev/null +++ b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/PluginTransformationPipeline.md @@ -0,0 +1,17 @@ +# Plugin Transformation Pipeline {#openvino_docs_IE_DG_plugin_transformation_pipeline} + +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :caption: Executable Network + :hidden: + + Low Precision Transformations + +@endsphinxdirective + +Typical plugin transformation pipeline includes steps: + 1. Common transformations + 2. [Low precision transformations](@ref openvino_docs_IE_DG_lpt) + 3. Plugin specific transformations \ No newline at end of file diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/avg_pool_precision_preserved.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/avg_pool_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/attributes/avg_pool_precision_preserved.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/avg_pool_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/intervals_alignment.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/intervals_alignment.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/attributes/intervals_alignment.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/intervals_alignment.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/per_tensor_quantization.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/per_tensor_quantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/attributes/per_tensor_quantization.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/per_tensor_quantization.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precision_preserved.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precision_preserved.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precisions.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/precisions.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/attributes/precisions.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/precisions.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/attributes/quantization_alignment.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/quantization_alignment.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/attributes/quantization_alignment.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/attributes/quantization_alignment.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/low_precision_transformation_pipeline.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/low_precision_transformation_pipeline.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_and_convolution.transformed.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_and_convolution.transformed.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_fq_fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/img/model_qdq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/img/model_qdq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/lpt.md similarity index 99% rename from docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/lpt.md index e0930ac3e08e31..0267e801004a48 100644 --- a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt.md +++ b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/lpt.md @@ -245,7 +245,7 @@ After that you should quantize model by the [Model Quantizer](@ref omz_tools_dow ### Inference -The simplest way to infer the model and collect performance counters is [Benchmark Application](../../../samples/cpp/benchmark_app/README.md). +The simplest way to infer the model and collect performance counters is [Benchmark Application](../../../../samples/cpp/benchmark_app/README.md). ```sh ./benchmark_app -m resnet-50-tf.xml -d CPU -niter 1 -api sync -report_type average_counters -report_folder pc_report_dir ``` diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/lpt_attributes.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/lpt_attributes.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/lpt_attributes.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup1.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup1.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup2.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup2.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup3.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup3.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup4.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup4.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup5.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup5.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup6.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup6.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup7.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup7.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step2_markup_original.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step2_markup_original.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_original.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_original.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/img/step3_transformed.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/img/step3_transformed.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step1_prerequisites.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step1_prerequisites.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step1_prerequisites.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step1_prerequisites.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step2_markup.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step2_markup.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step2_markup.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step3_main.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step3_main.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step3_main.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step3_main.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step4_cleanup.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step4_cleanup.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/pipeline/step4_cleanup.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/pipeline/step4_cleanup.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/quantization/img/fq.transformed.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/quantization/img/fq.transformed.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/convert_subtract_constant.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/lin_op_sequence_fusion.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_reshape_through_dequantization.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step1_prerequisites/pull_transpose_through_dequantization.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_intervals.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/align_quantization_parameters.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_attribute.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_attribute.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_attribute.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_attribute.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/create_precisions_dependent_attribute.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_avg_pool_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_can_be_quantized.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_per_tensor_quantization.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_precisions.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_precisions.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/markup_precisions.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/markup_precisions.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_precisions.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_precisions.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_precisions.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_precisions.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_shared_value.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_through_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_to_input.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_to_input.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/propagate_to_input.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/propagate_to_input.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step2_markup/update_shared_precision_preserved.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/clamp.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/clamp.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/clamp.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/clamp.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/prelu.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/prelu.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/prelu.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/prelu.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/relu.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/relu.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/activation/relu.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/activation/relu.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/add.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/add.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/add.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/img/add.transformed.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/multiply.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/arithmetic/subtract.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/convolution_backprop_data.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/group_convolution.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_and_convolution.transformed.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.png diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/convolution/img/fq_fq_and_convolution.common.svg diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/image/interpolate.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/image/interpolate.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/image/interpolate.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/image/interpolate.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/matrix/mat_mul.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/concat.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/concat.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/concat.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/concat.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/depth_to_space.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/pad.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/pad.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/pad.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/pad.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/shuffle_channels.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/split.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/split.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/split.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/split.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/strided_slice.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/strided_slice.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/strided_slice.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/strided_slice.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/transpose.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/transpose.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/transpose.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/transpose.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/variadic_split.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/variadic_split.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/movement/variadic_split.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/movement/variadic_split.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/mvn.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/mvn.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/mvn.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/mvn.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/normalization/normalize_l2.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/avg_pool.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/max_pool.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/max_pool.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/pooling/max_pool.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/pooling/max_pool.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/quantization/fold_fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_max.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_mean.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_min.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/reduction/reduce_sum.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/reshape.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/reshape.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/reshape.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/reshape.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/squeeze.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/squeeze.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/squeeze.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/squeeze.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step3_main/shape/unsqueeze.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fake_quantize_decomposition.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fold_convert.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fold_convert.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fold_convert.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fold_convert.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_convert.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_multiply_to_fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/fuse_subtract_to_fake_quantize.md diff --git a/docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md b/docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md similarity index 100% rename from docs/IE_PLUGIN_DG/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md rename to docs/IE_PLUGIN_DG/plugin_transformation_pipeline/low_precision_transformations/transformations/step4_cleanup/multiply_to_group_convolution.md diff --git a/docs/documentation.md b/docs/documentation.md index bd4444f14696ce..e421351fca7170 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -75,6 +75,7 @@ Inference Engine Plugin Developer Guide groupie_dev_api + Plugin Transformation Pipeline .. toctree:: :maxdepth: 1 From bc13d9e4085e4c7b1e1b430899890b0c70386867 Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Mon, 27 Dec 2021 13:53:30 +0300 Subject: [PATCH 18/19] LPT reference in Executable Network rollback --- docs/IE_PLUGIN_DG/ExecutableNetwork.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/IE_PLUGIN_DG/ExecutableNetwork.md b/docs/IE_PLUGIN_DG/ExecutableNetwork.md index d9fc8af11abe0a..5f703bcd88091b 100644 --- a/docs/IE_PLUGIN_DG/ExecutableNetwork.md +++ b/docs/IE_PLUGIN_DG/ExecutableNetwork.md @@ -37,7 +37,7 @@ The implementation `CompileNetwork` is fully device-specific. The function accepts a const shared pointer to `ngraph::Function` object and performs the following steps: -1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. +1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. To support low precision inference, the pipeline can include Low Precision Transformations. These transformations are usually hardware specific. You can find how to use and configure Low Precisions Transformations in [Low Precision Transformations](@ref openvino_docs_IE_DG_lpt) guide. 2. Maps the transformed graph to a backend specific graph representation (for example, to MKLDNN graph for Intel CPU). 3. Allocates and fills memory for graph weights, backend specific memory handles and so on. From 8b03d4453cfed0c5f82412b75d34850dea59bb3b Mon Sep 17 00:00:00 2001 From: Edward Shogulin Date: Mon, 10 Jan 2022 19:01:59 +0300 Subject: [PATCH 19/19] snippets were updated ini accordance with new API --- docs/snippets/lpt_mkldnn_plugin.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/snippets/lpt_mkldnn_plugin.cpp b/docs/snippets/lpt_mkldnn_plugin.cpp index 6326a959c69a4c..1808b011c37b6e 100644 --- a/docs/snippets/lpt_mkldnn_plugin.cpp +++ b/docs/snippets/lpt_mkldnn_plugin.cpp @@ -29,7 +29,7 @@ class ConvertOpSet1ToDeviceSpecific: public ngraph::pass::FunctionPass { } // ngraph int main() { -std::shared_ptr nGraphFunc; +std::shared_ptr nGraphFunc; ngraph::pass::Manager manager; auto pass_config = manager.get_pass_config(); //! [lpt_common] @@ -129,7 +129,7 @@ return 0; } int lpt_supported_precisions() { -std::shared_ptr nGraphFunc; +std::shared_ptr nGraphFunc; ngraph::pass::Manager manager; using namespace ngraph::pass::low_precision; @@ -154,7 +154,7 @@ return 0; } int per_tensor_quantization() { -std::shared_ptr nGraphFunc; +std::shared_ptr nGraphFunc; //! [per_tensor_quantization] using namespace ngraph::pass::low_precision; @@ -173,7 +173,7 @@ return 0; } int asymmetric_quantization() { -std::shared_ptr nGraphFunc; +std::shared_ptr nGraphFunc; ngraph::pass::Manager manager; auto pass_config = manager.get_pass_config(); @@ -192,7 +192,7 @@ return 0; } int lpt_markup_pipeline() { -std::shared_ptr nGraphFunc; +std::shared_ptr nGraphFunc; ngraph::pass::Manager manager; using namespace ngraph::pass::low_precision;