diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index fbf8731730f..9f495edaeb0 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -47,7 +47,7 @@ assignees: '' - [ ] I checked the problem with documentation, FAQ, open issues, Stack Overflow, etc and have not found solution -[Blob.buffer]:https://docs.openvinotoolkit.org/latest/classInferenceEngine_1_1Blob.html#a0cad47b43204b115b4017b6b2564fa7e +[Blob.buffer]:https://docs.openvino.ai/latest/classInferenceEngine_1_1Blob.html#a0cad47b43204b115b4017b6b2564fa7e diff --git a/samples/python/hello_classification/README.md b/samples/python/hello_classification/README.md index 810b24368c2..51a3a4f8a7f 100644 --- a/samples/python/hello_classification/README.md +++ b/samples/python/hello_classification/README.md @@ -62,7 +62,7 @@ To run the sample, you need specify a model and image: > **NOTES**: > -> - By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with `--reverse_input_channels` argument specified. For more information about the argument, refer to **When to Reverse Input Channels** section of [Converting a Model Using General Conversion Parameters](../../../docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md). +> - By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with `--reverse_input_channels` argument specified. For more information about the argument, refer to **When to Reverse Input Channels** section of [Converting a Model](../../../docs/MO_DG/prepare_model/convert_model/Converting_Model.md). > > - Before running the sample with a trained model, make sure the model is converted to the Inference Engine format (\*.xml + \*.bin) using the [Model Optimizer tool](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md). > @@ -122,12 +122,12 @@ The sample application logs each step in a standard output stream and outputs to - [Model Downloader](@ref omz_tools_downloader) - [Model Optimizer](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) -[IECore]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html -[IECore.read_network]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#a0d69c298618fab3a08b855442dca430f -[IENetwork.input_info]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields -[IENetwork.outputs]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields -[InputInfoPtr.precision]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields -[DataPtr.precision]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1DataPtr.html#data_fields -[IECore.load_network]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#ac9a2e043d14ccfa9c6bbf626cfd69fcc -[InputInfoPtr.input_data.shape]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields -[ExecutableNetwork.infer]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#aea96e8e534c8e23d8b257bad11063519 +[IECore]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html +[IECore.read_network]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#a0d69c298618fab3a08b855442dca430f +[IENetwork.input_info]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields +[IENetwork.outputs]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields +[InputInfoPtr.precision]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields +[DataPtr.precision]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1DataPtr.html#data_fields +[IECore.load_network]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#ac9a2e043d14ccfa9c6bbf626cfd69fcc +[InputInfoPtr.input_data.shape]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields +[ExecutableNetwork.infer]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#aea96e8e534c8e23d8b257bad11063519 diff --git a/samples/python/hello_query_device/README.md b/samples/python/hello_query_device/README.md index 04d374872ce..5cdf870c4fd 100644 --- a/samples/python/hello_query_device/README.md +++ b/samples/python/hello_query_device/README.md @@ -105,6 +105,6 @@ The application prints all available devices with their supported metrics and de - [Using Inference Engine Samples](../../../docs/IE_DG/Samples_Overview.md) -[IECore]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html -[IECore.get_metric]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#af1cdf2ecbea6399c556957c2c2fdf8eb -[IECore.get_config]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#a48764dec7c235d2374af8b8ef53c6363 +[IECore]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html +[IECore.get_metric]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#af1cdf2ecbea6399c556957c2c2fdf8eb +[IECore.get_config]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#a48764dec7c235d2374af8b8ef53c6363 diff --git a/samples/python/hello_reshape_ssd/README.md b/samples/python/hello_reshape_ssd/README.md index d0a99e3d1a1..cb49894cbf7 100644 --- a/samples/python/hello_reshape_ssd/README.md +++ b/samples/python/hello_reshape_ssd/README.md @@ -70,7 +70,7 @@ To run the sample, you need specify a model and image: > **NOTES**: > -> - By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with `--reverse_input_channels` argument specified. For more information about the argument, refer to **When to Reverse Input Channels** section of [Converting a Model Using General Conversion Parameters](../../../docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md). +> - By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with `--reverse_input_channels` argument specified. For more information about the argument, refer to **When to Reverse Input Channels** section of [Converting a Model](../../../docs/MO_DG/prepare_model/convert_model/Converting_Model.md). > > - Before running the sample with a trained model, make sure the model is converted to the Inference Engine format (\*.xml + \*.bin) using the [Model Optimizer tool](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md). > @@ -119,14 +119,14 @@ The sample application logs each step in a standard output stream and creates an - [Model Downloader](@ref omz_tools_downloader) - [Model Optimizer](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) -[IECore]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html -[IECore.add_extension]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#a8a4b671a9928c7c059bd1e76d2333967 -[IECore.set_config]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#a2c738cee90fca27146e629825c039a05 -[IECore.read_network]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#a0d69c298618fab3a08b855442dca430f -[IENetwork.input_info]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields -[IENetwork.outputs]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields -[InputInfoPtr.precision]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields -[DataPtr.precision]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1DataPtr.html#data_fields -[IECore.load_network]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#ac9a2e043d14ccfa9c6bbf626cfd69fcc -[IENetwork.reshape]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#a6683f0291db25f908f8d6720ab2f221a -[ExecutableNetwork.infer]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#aea96e8e534c8e23d8b257bad11063519 +[IECore]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html +[IECore.add_extension]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#a8a4b671a9928c7c059bd1e76d2333967 +[IECore.set_config]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#a2c738cee90fca27146e629825c039a05 +[IECore.read_network]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#a0d69c298618fab3a08b855442dca430f +[IENetwork.input_info]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields +[IENetwork.outputs]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields +[InputInfoPtr.precision]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields +[DataPtr.precision]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1DataPtr.html#data_fields +[IECore.load_network]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#ac9a2e043d14ccfa9c6bbf626cfd69fcc +[IENetwork.reshape]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#a6683f0291db25f908f8d6720ab2f221a +[ExecutableNetwork.infer]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#aea96e8e534c8e23d8b257bad11063519 diff --git a/samples/python/ngraph_function_creation_sample/README.md b/samples/python/ngraph_function_creation_sample/README.md index 0306c659aa9..c110096d0e7 100644 --- a/samples/python/ngraph_function_creation_sample/README.md +++ b/samples/python/ngraph_function_creation_sample/README.md @@ -114,27 +114,27 @@ The sample application logs each step in a standard output stream and outputs to - [Model Downloader](@ref omz_tools_downloader) - [Model Optimizer](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) -[IECore]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html -[IENetwork]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html -[IENetwork.batch_size]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#a79a647cb1b49645616eaeb2ca255ef2e -[IENetwork.input_info]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields -[IENetwork.outputs]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields -[InputInfoPtr.precision]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields -[DataPtr.precision]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1DataPtr.html#data_fields -[IECore.load_network]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#ac9a2e043d14ccfa9c6bbf626cfd69fcc -[InputInfoPtr.input_data.shape]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields -[ExecutableNetwork.infer]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#aea96e8e534c8e23d8b257bad11063519 +[IECore]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html +[IENetwork]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html +[IENetwork.batch_size]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#a79a647cb1b49645616eaeb2ca255ef2e +[IENetwork.input_info]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields +[IENetwork.outputs]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#data_fields +[InputInfoPtr.precision]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields +[DataPtr.precision]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1DataPtr.html#data_fields +[IECore.load_network]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#ac9a2e043d14ccfa9c6bbf626cfd69fcc +[InputInfoPtr.input_data.shape]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1InputInfoPtr.html#data_fields +[ExecutableNetwork.infer]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#aea96e8e534c8e23d8b257bad11063519 -[ngraph.impl.Function]:https://docs.openvinotoolkit.org/latest/ngraph_cpp_api/classngraph_1_1Function.html +[ngraph.impl.Function]:https://docs.openvino.ai/latest/ngraph_cpp_api/classngraph_1_1Function.html -[ngraph.parameter]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a709acd09288f5a76ed8d07492efc3d13 -[ngraph.constant]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a5b6c4e416026e007a4107b3f510d0c27 -[ngraph.convolution]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a3143ff55f68428afc1b6c802ee9381e8 -[ngraph.add]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#abfa0373c10ced1b1f129594d9bd8a159 -[ngraph.max_pool]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#ac60b4459ad23b296086925abce6acd2d -[ngraph.reshape]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a38e1ead9435c4b75c1d891ba2dd6a62e -[ngraph.matmul]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a403b5e10e1f75aeb7569024237e85071 -[ngraph.relu]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a70b9b3faf58d85e43d27fef5028117e3 -[ngraph.softmax]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a632cc9a31ecaefa2a982d039ecad8d26 -[ngraph.result]:https://docs.openvinotoolkit.org/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a94f8bf6ab8910dfd461d09cb6c6edd11 +[ngraph.parameter]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a709acd09288f5a76ed8d07492efc3d13 +[ngraph.constant]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a5b6c4e416026e007a4107b3f510d0c27 +[ngraph.convolution]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a3143ff55f68428afc1b6c802ee9381e8 +[ngraph.add]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#abfa0373c10ced1b1f129594d9bd8a159 +[ngraph.max_pool]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#ac60b4459ad23b296086925abce6acd2d +[ngraph.reshape]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a38e1ead9435c4b75c1d891ba2dd6a62e +[ngraph.matmul]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a403b5e10e1f75aeb7569024237e85071 +[ngraph.relu]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a70b9b3faf58d85e43d27fef5028117e3 +[ngraph.softmax]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a632cc9a31ecaefa2a982d039ecad8d26 +[ngraph.result]:https://docs.openvino.ai/latest/ngraph_python_api/namespacengraph_1_1opset1_1_1ops.html#a94f8bf6ab8910dfd461d09cb6c6edd11 diff --git a/samples/python/speech_sample/README.md b/samples/python/speech_sample/README.md index 82f0109f5c3..e36a13add56 100644 --- a/samples/python/speech_sample/README.md +++ b/samples/python/speech_sample/README.md @@ -197,7 +197,7 @@ python /speech_sample.py -m /wsj_dnn5b.xml -i **NOTES**: > -> - Before running the sample with a trained model, make sure the model is converted to the Inference Engine format (\*.xml + \*.bin) using the [Model Optimizer tool](../../../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md). +> - Before running the sample with a trained model, make sure the model is converted to the Inference Engine format (\*.xml + \*.bin) using the [Model Optimizer tool](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md). > > - The sample supports input and output in numpy file format (.npz) @@ -243,10 +243,10 @@ The sample application logs each step in a standard output stream. - [Model Downloader](@ref omz_tools_downloader) - [Model Optimizer](../../../docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) -[IENetwork.batch_size]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#a79a647cb1b49645616eaeb2ca255ef2e -[IENetwork.add_outputs]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IENetwork.html#ae8024b07f3301d6d5de5c0d153e2e6e6 -[CDataPtr.shape]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1CDataPtr.html#aa6fd459edb323d1c6215dc7a970ebf7f -[ExecutableNetwork.input_info]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#ac76a04c2918607874018d2e15a2f274f -[ExecutableNetwork.outputs]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#a4a631776df195004b1523e6ae91a65c1 -[IECore.import_network]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1IECore.html#afdeac5192bb1d9e64722f1071fb0a64a -[ExecutableNetwork.export]:https://docs.openvinotoolkit.org/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#afa78158252f0d8070181bafec4318413 +[IENetwork.batch_size]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#a79a647cb1b49645616eaeb2ca255ef2e +[IENetwork.add_outputs]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IENetwork.html#ae8024b07f3301d6d5de5c0d153e2e6e6 +[CDataPtr.shape]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1CDataPtr.html#aa6fd459edb323d1c6215dc7a970ebf7f +[ExecutableNetwork.input_info]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#ac76a04c2918607874018d2e15a2f274f +[ExecutableNetwork.outputs]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#a4a631776df195004b1523e6ae91a65c1 +[IECore.import_network]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1IECore.html#afdeac5192bb1d9e64722f1071fb0a64a +[ExecutableNetwork.export]:https://docs.openvino.ai/latest/ie_python_api/classie__api_1_1ExecutableNetwork.html#afa78158252f0d8070181bafec4318413 diff --git a/src/bindings/c/docs/api_overview.md b/src/bindings/c/docs/api_overview.md index 298ff4f3e65..a1b9129ef73 100644 --- a/src/bindings/c/docs/api_overview.md +++ b/src/bindings/c/docs/api_overview.md @@ -1,4 +1,4 @@ -# Overview of Inference Engine C* API {#openvino_inference_engine_ie_bridges_c_docs_api_overview} +# Overview of Inference Engine C* API > **NOTE**: It is a preview version of the Inference Engine C* API for evaluation purpose only. > Module structure and API itself may be changed in future releases. diff --git a/src/bindings/python/docs/api_overview.md b/src/bindings/python/docs/api_overview.md index 3938c71b148..c120c9664ab 100644 --- a/src/bindings/python/docs/api_overview.md +++ b/src/bindings/python/docs/api_overview.md @@ -1,4 +1,4 @@ -# Overview of Inference Engine Python* API {#openvino_inference_engine_ie_bridges_python_docs_api_overview} +# Overview of Inference Engine Python* API This API provides a simplified interface for Inference Engine functionality that allows you to: @@ -37,4 +37,4 @@ If you want to use certain version of Python\*, set the environment variable `PY after running the environment configuration script. ## API Reference -For the complete API Reference, see [Inference Engine Python* API Reference](ie_python_api/annotated.html) +For the complete API Reference, see [Inference Engine Python* API Reference](ie_python_api/api.html) diff --git a/src/core/include/ngraph/ngraph.hpp b/src/core/include/ngraph/ngraph.hpp index 1573272834d..37c1747e50e 100644 --- a/src/core/include/ngraph/ngraph.hpp +++ b/src/core/include/ngraph/ngraph.hpp @@ -6,11 +6,6 @@ // The public API for ngraph++ // -/** - * @defgroup ngraph_cpp_api nGraph C++ API - * nGraph C++ API - */ - #pragma once #include diff --git a/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp index b009fb4ed7c..89770f07152 100644 --- a/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp +++ b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp @@ -15,7 +15,6 @@ namespace LayerTestsDefinitions { -// ! [test_convolution:definition] typedef std::tuple< InferenceEngine::SizeVector, // Deformable values size InferenceEngine::SizeVector, // Kernel size @@ -50,6 +49,5 @@ public: protected: void SetUp() override; }; -// ! [test_convolution:definition] } // namespace LayerTestsDefinitions diff --git a/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp index 10d0779e384..c8f13236f71 100644 --- a/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp +++ b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp @@ -15,7 +15,6 @@ namespace SubgraphTestsDefinitions { -// ! [test_convolution:definition] typedef struct { InferenceEngine::SizeVector kernelSize; InferenceEngine::SizeVector strides; @@ -48,6 +47,5 @@ public: protected: void SetUp() override; }; -// ! [test_convolution_relu_sequence:definition] } // namespace SubgraphTestsDefinitions diff --git a/tools/README.md b/tools/README.md index 2b978ff1087..7b31d7d5394 100644 --- a/tools/README.md +++ b/tools/README.md @@ -4,7 +4,7 @@ OpenVINO includes following tools: * openvino.tools.benchmark -Please, refer to https://docs.openvinotoolkit.org for details. +Please, refer to https://docs.openvino.ai for details. ## Installation diff --git a/tools/benchmark_tool/README.md b/tools/benchmark_tool/README.md index e317c25ba0a..f6954f92918 100644 --- a/tools/benchmark_tool/README.md +++ b/tools/benchmark_tool/README.md @@ -5,11 +5,6 @@ Performance can be measured for two inference modes: latency- and throughput-ori > **NOTE**: This topic describes usage of Python implementation of the Benchmark Tool. For the C++ implementation, refer to [Benchmark C++ Tool](../../samples/cpp/benchmark_app/README.md). -> **TIP**: You can quick start with the Benchmark Tool inside the OpenVINO™ [Deep Learning Workbench](@ref openvino_docs_get_started_get_started_dl_workbench) (DL Workbench). -> [DL Workbench](@ref workbench_docs_Workbench_DG_Introduction) is the OpenVINO™ toolkit UI you to -> import a model, analyze its performance and accuracy, visualize the outputs, optimize and prepare the model for -> deployment on various Intel® platforms. - ## How It Works Upon start-up, the application reads command-line parameters and loads a network and inputs (images/binary files) to the specified device. Device-specific execution parameters (number of streams, threads, and so on) can be either explicitly specified through the command line @@ -65,7 +60,7 @@ Notice that the benchmark_app usually produces optimal performance for any devic python3 benchmark_app.py -m -i -d CPU ``` -But it is still may be sub-optimal for some cases, especially for very small networks. More details can read in [Introduction to Performance Topics](../../docs/IE_DG/Intro_to_Performance.md). +But it is still may be sub-optimal for some cases, especially for very small networks. More details can read in [Performance Optimization Guide](../../docs/optimization_guide/dldt_optimization_guide.md). Running the application with the `-h` or `--help`' option yields the following usage message: diff --git a/tools/benchmark_tool/openvino/tools/benchmark/README.md b/tools/benchmark_tool/openvino/tools/benchmark/README.md index 0927c8dfa7c..e35abe5a414 100644 --- a/tools/benchmark_tool/openvino/tools/benchmark/README.md +++ b/tools/benchmark_tool/openvino/tools/benchmark/README.md @@ -8,7 +8,7 @@ Upon start-up, the application reads command-line parameters and loads a network plugin, which is chosen depending on a specified device. The number of infer requests and execution approach depend on the mode defined with the `-api` command-line parameter. -> **NOTE**: By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with `--reverse_input_channels` argument specified. For more information about the argument, refer to **When to Reverse Input Channels** section of [Converting a Model Using General Conversion Parameters](../../../../../docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md). +> **NOTE**: By default, Inference Engine samples and demos expect input with BGR channels order. If you trained your model to work with RGB order, you need to manually rearrange the default channels order in the sample or demo application or reconvert your model using the Model Optimizer tool with `--reverse_input_channels` argument specified. For more information about the argument, refer to **When to Reverse Input Channels** section of [Converting a Model](../../../../../docs/MO_DG/prepare_model/convert_model/Converting_Model.md). ### Synchronous API diff --git a/tools/mo/openvino/tools/mo/analysis/tf_od_api.py b/tools/mo/openvino/tools/mo/analysis/tf_od_api.py index 8b7181d8e75..9086d3ba1a1 100644 --- a/tools/mo/openvino/tools/mo/analysis/tf_od_api.py +++ b/tools/mo/openvino/tools/mo/analysis/tf_od_api.py @@ -83,6 +83,6 @@ class TensorFlowObjectDetectionAPIAnalysis(AnalyzeAction): "\t--input_shape (optional)\n" \ "\t--reverse_input_channels (if you convert a model to use with the Inference Engine sample applications)\n" \ "Detailed information about conversion of this model can be found at\n" \ - "https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html" + "https://docs.openvino.ai/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html" return {'model_type': {'TF_OD_API': result}}, message return None, None diff --git a/tools/mo/openvino/tools/mo/analysis/tf_yolo.py b/tools/mo/openvino/tools/mo/analysis/tf_yolo.py index b1ae6a440c8..42093085a46 100644 --- a/tools/mo/openvino/tools/mo/analysis/tf_yolo.py +++ b/tools/mo/openvino/tools/mo/analysis/tf_yolo.py @@ -74,7 +74,7 @@ class TensorFlowYOLOV1V2Analysis(AnalyzeAction): "\t--batch 1\n" \ "\t--tensorflow_use_custom_operations_config /openvino/tools/mo/front/tf/.json\n" \ "All detailed information about conversion of this model can be found at\n" \ - "https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_YOLO_From_Tensorflow.html" + "https://docs.openvino.ai/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_YOLO_From_Tensorflow.html" return {'model_type': {'YOLO': get_YOLO_params_by_flavor(flavor)}}, message else: return None, None @@ -101,7 +101,7 @@ class TensorFlowYOLOV3Analysis(AnalyzeAction): "\t--batch 1\n" \ "\t--tensorflow_use_custom_operations_config /openvino/tools/mo/front/tf/yolo_v3.json\n" \ "Detailed information about conversion of this model can be found at\n" \ - "https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_YOLO_From_Tensorflow.html" + "https://docs.openvino.ai/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_YOLO_From_Tensorflow.html" return {'model_type': {'YOLO': get_YOLO_params_by_flavor(flavor)}}, message else: return None, None diff --git a/tools/mo/openvino/tools/mo/front/tf/ObjectDetectionAPI.py b/tools/mo/openvino/tools/mo/front/tf/ObjectDetectionAPI.py index b6a6d5b0896..e111a7019dc 100644 --- a/tools/mo/openvino/tools/mo/front/tf/ObjectDetectionAPI.py +++ b/tools/mo/openvino/tools/mo/front/tf/ObjectDetectionAPI.py @@ -5,7 +5,7 @@ The file contains necessary transformations to convert models created with a TensorFlow Object Detection framework from the https://github.com/tensorflow/models/blob/master/research/object_detection/ repository. There is a dedicated OpenVINO document describing overall procedure of conversion these models with the Model Optimizer: -https://docs.openvinotoolkit.org/latest/openvino_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html +https://docs.openvino.ai/latest/openvino_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html Conversion of most of the TF OD API models requires execution of several transformations defined in this file. The list of transformations to be executed for a particular model type (meta-architecture) is defined in the transformation diff --git a/tools/mo/openvino/tools/mo/utils/utils.py b/tools/mo/openvino/tools/mo/utils/utils.py index eccfd13e36f..825b08382cf 100644 --- a/tools/mo/openvino/tools/mo/utils/utils.py +++ b/tools/mo/openvino/tools/mo/utils/utils.py @@ -22,7 +22,7 @@ def refer_to_faq_msg(question_num: int): t.send_event('mo', 'error_info', "faq:" + str(question_num)) return '\n For more information please refer to Model Optimizer FAQ, question #{0}. ' \ - '(https://docs.openvinotoolkit.org/latest/openvino_docs_MO_DG_prepare_model_Model_Optimizer_FAQ.html' \ + '(https://docs.openvino.ai/latest/openvino_docs_MO_DG_prepare_model_Model_Optimizer_FAQ.html' \ '?question={0}#question-{0})'.format(question_num) diff --git a/tools/pot/README.md b/tools/pot/README.md index f57c3d5d962..45728f7ee1a 100644 --- a/tools/pot/README.md +++ b/tools/pot/README.md @@ -1,5 +1,22 @@ # Post-Training Optimization Tool {#pot_README} +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :hidden: + + pot_InstallationGuide + pot_docs_LowPrecisionOptimizationGuide + pot_compression_algorithms_quantization_README + Best Practices + Command-line Interface + pot_compression_api_README + pot_configs_README + pot_docs_FrequentlyAskedQuestions + +@endsphinxdirective + ## Introduction Post-training Optimization Tool (POT) is designed to accelerate the inference of deep learning models by applying @@ -24,30 +41,27 @@ the low-precision flow in OpenVINO™, see the [Low Precision Optimization G For benchmarking results collected for the models optimized with POT tool, see [INT8 vs FP32 Comparison on Select Networks and Platforms](@ref openvino_docs_performance_int8_vs_fp32). -POT is opensourced on GitHub as a part of https://github.com/openvinotoolkit/openvino. +POT is opensourced on GitHub as a part of [https://github.com/openvinotoolkit/openvino](https://github.com/openvinotoolkit/openvino). Further documentation presumes that you are familiar with the basic Deep Learning concepts, such as model inference, dataset preparation, model optimization, as well as with the OpenVINO™ toolkit and its components such as [Model Optimizer](@ref openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide) -and [Accuracy Checker Tool](@ref omz_tools_accuracy_checker_README). +and [Accuracy Checker Tool](@ref omz_tools_accuracy_checker). ## Use POT ![](docs/images/workflow.png) The POT provides three basic usage scenarios: * **[Command-line interface](docs/CLI.md)**: this is the recommended path if the model from OpenVINO™ -[Model Zoo](https://github.com/openvinotoolkit/open_model_zoo) or there is a valid [Accuracy Checker Tool](@ref omz_tools_accuracy_checker_README) -configuration file for the model that allows validating model accuracy using [Accuracy Checker Tool](@ref omz_tools_accuracy_checker_README). +[Model Zoo](https://github.com/openvinotoolkit/open_model_zoo) or there is a valid [Accuracy Checker Tool](@ref omz_tools_accuracy_checker) +configuration file for the model that allows validating model accuracy using [Accuracy Checker Tool](@ref omz_tools_accuracy_checker). * **[Python* API](openvino/tools/pot/api/README.md)**: it allows integrating optimization methods implemented in POT into -a Python* inference script written with [Python* API](@ref openvino_inference_engine_ie_bridges_python_docs_api_overview). -This flow is recommended if it is not possible to use [Accuracy Checker Tool](@ref omz_tools_accuracy_checker_README) +a Python* inference script written with [Python* API](ie_python_api/api.html). +This flow is recommended if it is not possible to use [Accuracy Checker Tool](@ref omz_tools_accuracy_checker) for validation on the dedicated dataset. -* **[Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) (DL Workbench)**: a web-based graphical environment -that enables you to optimize, fine-tune, analyze, visualize, and compare performance of deep learning models. +* **[Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) (DL Workbench)**: a web-based graphical environment that enables you to optimize, fine-tune, analyze, visualize, and compare performance of deep learning models. -Note: POT also supports optimization in the so-called [**Simplified mode**](@ref pot_configs_README) which is essentially a local -implementation of the POT Python API aimed at quantizing Computer Vision with simple pre-processing and inference flow. But -please note that this mode can lead to an inaccurate model after optimization due to the difference in the model preprocessing. +> **NOTE**: POT also supports optimization in the so-called *Simplified mode* (see [Configuration File Description](configs/README.md)) which is essentially a local implementation of the POT Python API aimed at quantizing Computer Vision with simple pre-processing and inference flow. However using this mode can lead to an inaccurate model after optimization due to the difference in the model preprocessing. To get started with POT, follow the [Installation Guide](docs/InstallationGuide.md). @@ -56,4 +70,4 @@ To get started with POT, follow the [Installation Guide](docs/InstallationGuide. * [Low Precision Optimization Guide](docs/LowPrecisionOptimizationGuide.md) * [Post-Training Optimization Best Practices](docs/BestPractices.md) * [POT Frequently Asked Questions](docs/FrequentlyAskedQuestions.md) -* [INT8 Quantization by Using Web-Based Interface of the DL Workbench](https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Int_8_Quantization.html) +* [INT8 Quantization by Using Web-Based Interface of the DL Workbench](https://docs.openvino.ai/latest/workbench_docs_Workbench_DG_Int_8_Quantization.html) diff --git a/tools/pot/README_dev.md b/tools/pot/README_dev.md index df92dff54da..23dd7417103 100644 --- a/tools/pot/README_dev.md +++ b/tools/pot/README_dev.md @@ -1,4 +1,4 @@ -# Post-training Optimization Tool {#pot_README_dev} +# Post-training Optimization Tool Starting with the 2020.1 version, OpenVINO™ toolkit delivers the Post-Training Optimization Tool designed to accelerate the inference of DL models by converting them into a more hardware-friendly representation by applying specific methods that do not require re-training, for example, post-training quantization. For more details about the low-precision flow in OpenVINO™, refer to the [Low Precision Optimization Guide](docs/LowPrecisionOptimizationGuide.md). @@ -24,7 +24,7 @@ Post-Training Optimization Tool includes standalone command-line tool and Python - OpenVINO ### Installation (Temporary) -1) Clone DLDT repo: `git clone https://github.com/openvinotoolkit/openvino` +1) Clone the openvino repo: `git clone https://github.com/openvinotoolkit/openvino` 2) Download submodules: ``` git submodule init diff --git a/tools/pot/configs/README.md b/tools/pot/configs/README.md index 55c40095fd2..dfa4d284129 100644 --- a/tools/pot/configs/README.md +++ b/tools/pot/configs/README.md @@ -40,15 +40,15 @@ which specify the engine that is used for model inference and validation (if sup using a subset of images. It does not use the Accuracy Checker tool and annotation. To measure accuracy, you should implement your own validation pipeline with OpenVINO API. - To run the simplified mode, define engine section similar to the example `mobilenetV2_tf_int8_simple_mode.json` file from the `/configs/examples/quantization/classification/` directory. -- **Accuracy Checker** engine. It relies on the [Deep Learning Accuracy Validation Framework](@ref omz_tools_accuracy_checker_README) (Accuracy Checker) when inferencing DL models and working with datasets. +- **Accuracy Checker** engine. It relies on the [Deep Learning Accuracy Validation Framework](@ref omz_tools_accuracy_checker) (Accuracy Checker) when inferencing DL models and working with datasets. The benefit of this mode is you can compute accuracy in case you have annotations. It is possible to use accuracy aware algorithms family when this mode is selected. There are two options to define engine parameters in that mode: - Refer to the existing Accuracy Checker configuration file which is represented by the YAML file. It can be a file used for full-precision model validation. In this case, you should define only the `"config"` parameter containing a path to the AccuracyChecker configuration file. - - Define all the [required Accuracy Checker parameters](@ref omz_tools_accuracy_checker_accuracy_checker_launcher_dlsdk_launcher_readme) + - Define all the [required Accuracy Checker parameters](@ref omz_tools_accuracy_checker_dlsdk_launcher) directly in the JSON file. In this case, POT just passes the corresponding dictionary of parameters to the Accuracy Checker when instantiating it. For more details, refer to the corresponding Accuracy Checker information and examples of configuration files provided with the tool: - - For the SSD-MobileNet model:
\/configs/examples/quantization/object_detection/ssd_mobilenetv1_int8.json + - For the SSD-MobileNet model:
`/configs/examples/quantization/object_detection/ssd_mobilenetv1_int8.json` ## Compression Parameters @@ -61,4 +61,4 @@ For a quick start, many examples of configuration files are provided and placed folder. There you can find ready-to-use configurations for the models from various domains: Computer Vision (Image Classification, Object Detection, Segmentation), Natural Language Processing, Recommendation Systems. We basically put configuration files for the models which require non-default configuration settings in order to get accurate results. -For details on how to run the Post-Training Optimization Tool with a sample configuration file, see the [example](@ref pot_configs_examples_README). +For details on how to run the Post-Training Optimization Tool with a sample configuration file, see the [instructions](@ref pot_configs_examples_README). diff --git a/tools/pot/docs/BestPractices.md b/tools/pot/docs/BestPractices.md index 604d0bf7031..970322f14df 100644 --- a/tools/pot/docs/BestPractices.md +++ b/tools/pot/docs/BestPractices.md @@ -42,15 +42,14 @@ A fragment of the configuration file (`config/default_quantization_template.json In the case of substantial accuracy degradation after applying the `DefaultQuantization` algorithm there are two alternatives to use: 1. Hyperparameters tuning 2. AccuracyAwareQuantization algorithm -3. Layer-wise hyperparameters tuning ## Tuning Hyperparameters of the DefaultQuantization The `DefaultQuantization` algorithm provides multiple hyperparameters which can be used in order to improve accuracy results for the fully-quantized model. Below is a list of best practices which can be applied to improve accuracy without a substantial performance reduction with respect to default settings: -1. The first option that we recommend to change is `preset` that can be varied from `performance` to `mixed`. It enables asymmetric quantization of -activations and can be helpful for the NNs with non-ReLU activation functions, e.g. YOLO, EfficientNet, etc. -2. The next option is `use_fast_bias`. Setting this option for `false` enables a different bias correction method which is more accurate, in general, -and applied after model quantization as a part of `DefaultQuantization` algorithm. +1. The first option that we recommend is to change is `preset` from `performance` to `mixed`. This enables asymmetric quantization of +activations and can be helpful for NNs with non-ReLU activation functions, e.g. YOLO, EfficientNet, etc. +2. The next option is `use_fast_bias`. Setting this option to `false` enables a different bias correction method which is more accurate, in general, +and applied after model quantization as a part of the `DefaultQuantization` algorithm. > **NOTE**: Changing this option can substantially increase quantization time in the POT tool. 3. Another important option is a `range_estimator`. It defines how to calculate the minimum and maximum of quantization range for weights and activations. For example, the following `range_estimator` for activations can improve the accuracy for Faster R-CNN based networks: @@ -79,10 +78,10 @@ For example, the following `range_estimator` for activations can improve the acc } ``` -Please find the possible options and their description in the `config/default_quantization_spec.json` file in the POT directory. +Find the possible options and their description in the `config/default_quantization_spec.json` file in the POT directory. 4. The next option is `stat_subset_size`. It controls the size of the calibration dataset used by POT to collect statistics for quantization parameters initialization. -It is assumed that this dataset should contain a sufficient number of representative samples. Thus, varying this parameter may affect accuracy (the higher is better). +It is assumed that this dataset should contain a sufficient number of representative samples. Thus, varying this parameter may affect accuracy (higher is better). However, we empirically found that 300 samples are sufficient to get representative statistics in most cases. 5. The last option is `ignored_scope`. It allows excluding some layers from the quantization process, i.e. their inputs will not be quantized. It may be helpful for some patterns for which it is known in advance that they drop accuracy when executing in low-precision. For example, `DetectionOutput` layer of SSD model expressed as a subgraph should not be quantized to preserve the accuracy of Object Detection models. @@ -124,5 +123,5 @@ accuracy-aware scenario. If you do not achieve the desired accuracy and performance after applying the `AccuracyAwareQuantization` algorithm or you need an accurate fully-quantized model, -we recommend using layer-wise hyperparameters tuning using +we recommend either using layer-wise hyperparameters tuning with TPE or using Quantization-Aware training from [the supported frameworks](LowPrecisionOptimizationGuide.md). diff --git a/tools/pot/docs/CLI.md b/tools/pot/docs/CLI.md index ec68ca94a6a..f4b0111ece2 100644 --- a/tools/pot/docs/CLI.md +++ b/tools/pot/docs/CLI.md @@ -1,13 +1,22 @@ # Use Post-Training Optimization Tool Command-Line Interface {#pot_compression_cli_README} -POT command-line interface (CLI) is designed to optimize models that are supported by the [Accuracy Checker Tool](@ref omz_tools_accuracy_checker_README) used for accuracy measurement. +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :hidden: + + End-to-end CLI example + +@endsphinxdirective + +POT command-line interface (CLI) is designed to optimize models that are supported by the [Accuracy Checker Tool](@ref omz_tools_accuracy_checker) used for accuracy measurement. If your model is exactly from the OpenVINO™ [Model Zoo](https://github.com/openvinotoolkit/open_model_zoo) or it is similar to one of its models then you can employ POT CLI to optimize your model. In other cases, you should consider using POT [API](@ref pot_compression_api_README). To start with POT CLI please refer to the following [example](@ref pot_configs_examples_README). -Note: There is also the so-called [**Simplified mode**](@ref pot_configs_README) that is basically aimed at INT8 quantization if the model is from the Computer Vision -domain and has a simple dataset preprocessing, like image resize and crop. In this case, you can also use POT CLI for +Note: There is also the so-called [**Simplified mode**](@ref pot_configs_README) that is basically aimed at INT8 quantization if the model is from the Computer Vision domain and has a simple dataset preprocessing, like image resize and crop. In this case, you can also use POT CLI for optimization. However, the accuracy results are not guaranteed in this case. Moreover, you are also limited in the optimization methods choice since the accuracy measurement is not available. @@ -25,7 +34,7 @@ installed it from form the distribution file: ```sh source /bin/setupvars.sh ``` - Note: this step is not required if you use PyPI distribution. + > **NOTE**: This step is not required if you use PyPI distribution. ## Run POT CLI There are two ways how to run POT via command line: diff --git a/tools/pot/docs/E2eExample.md b/tools/pot/docs/E2eExample.md index d880ff83049..8b205e05e21 100644 --- a/tools/pot/docs/E2eExample.md +++ b/tools/pot/docs/E2eExample.md @@ -137,7 +137,7 @@ models: ``` where `data_source: ./ImageNet` is the dataset and `annotation_file: ./ImageNet/val.txt` is the annotation file prepared on the previous step. -For more information about the Accuracy Checker configuration file refer to [Accuracy Checker Tool documentation](@ref omz_tools_accuracy_checker_README). +For more information about the Accuracy Checker configuration file refer to [Accuracy Checker Tool documentation](@ref omz_tools_accuracy_checker). 3. Evaluate the accuracy of the full-precision model in the IR format by executing the following command in ``: ```sh diff --git a/tools/pot/docs/FrequentlyAskedQuestions.md b/tools/pot/docs/FrequentlyAskedQuestions.md index 5035808011f..0dbd9720606 100644 --- a/tools/pot/docs/FrequentlyAskedQuestions.md +++ b/tools/pot/docs/FrequentlyAskedQuestions.md @@ -21,7 +21,7 @@ What else can I do? ### Is the Post-training Optimization Tool (POT) opensourced? -Yes, POT is developed on GitHub as a part of https://github.com/openvinotoolkit/openvino under Apache-2.0 License. +Yes, POT is developed on GitHub as a part of [https://github.com/openvinotoolkit/openvino](https://github.com/openvinotoolkit/openvino) under Apache-2.0 License. ### Can I quantize my model without a dataset? @@ -37,7 +37,7 @@ The POT accepts models in the OpenVINO™ Intermediate Representation (IR) f ### I'd like to quantize a model and I've converted it to IR but I don't have the Accuracy Checker config. What can I do? -To create the Accuracy Checker configuration file, refer to [Accuracy Checker documentation](@ref omz_tools_accuracy_checker_README) and +To create the Accuracy Checker configuration file, refer to [Accuracy Checker documentation](@ref omz_tools_accuracy_checker) and try to find the configuration file for your model among the ones available in the Accuracy Checker examples. An alternative way is to quantize the model in the Simplified mode but you will not be able to measure the accuracy. See [Post-Training Optimization Best Practices](BestPractices.md) for more details. Also, you can use [POT API](../openvino/tools/pot/api/README.md) to integrate the post-training quantization into your pipeline without the Accuracy Checker. @@ -73,7 +73,7 @@ which is usually more accurate and takes more time but requires less memory. See It can happen due to the following reasons: - A wrong or not representative dataset was used during the quantization and accuracy validation. Please make sure that your data and labels are correct and they sufficiently reflect the use case. -- A wrong Accuracy Checker configuration file was used during the quantization. Refer to [Accuracy Checker documentation](@ref omz_tools_accuracy_checker_README) for more information. +- A wrong Accuracy Checker configuration file was used during the quantization. Refer to [Accuracy Checker documentation](@ref omz_tools_accuracy_checker) for more information. ### The quantization process of my model takes a lot of time. Can it be decreased somehow? diff --git a/tools/pot/docs/InstallationGuide.md b/tools/pot/docs/InstallationGuide.md index 5933e8854c3..ce92e35c422 100644 --- a/tools/pot/docs/InstallationGuide.md +++ b/tools/pot/docs/InstallationGuide.md @@ -3,19 +3,19 @@ ## Prerequisites * Python* 3.6 or higher -* [OpenVINO™](@ref index) +* [OpenVINO™](https://docs.openvino.ai/latest/index.html) -The minimum and the recommended requirements to run the Post-training Optimization Tool (POT) are the same as in [OpenVINO™](@ref index). +The minimum and the recommended requirements to run the Post-training Optimization Tool (POT) are the same as in [OpenVINO™](https://docs.openvino.ai/latest/index.html). There are two ways how to install the POT on your system: - Installation from PyPI repository - Installation from Intel® Distribution of OpenVINO™ toolkit package -## Installation POT from PyPI +## Install POT from PyPI The simplest way to get the Post-training Optimization Tool and OpenVINO™ installed is to use PyPI. Follow the steps below to do that: 1. Create a separate [Python* environment](https://docs.python.org/3/tutorial/venv.html) and activate it -2. To install OpenVINO™ run `pip install openvino` -3. To install POT and other OpenVINO™ developer tools, run `pip install openvino-dev` +2. To install OpenVINO™, run `pip install openvino`. +3. To install POT and other OpenVINO™ developer tools, run `pip install openvino-dev`. Now the Post-training Optimization Tool is available in the command line by the `pot` alias. To verify it, run `pot -h`. @@ -24,8 +24,7 @@ Now the Post-training Optimization Tool is available in the command line by the In the instructions below, `` is the directory where the Intel® distribution of OpenVINO™ toolkit is installed. The Post-training Optimization Tool is distributed as a part of the OpenVINO™ release package, and to use the POT as a command-line tool, you need to install OpenVINO™ as well as POT dependencies, namely [Model Optimizer](@ref openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide) -and [Accuracy Checker](@ref omz_tools_accuracy_checker_README). It is recommended to create a separate [Python* environment](https://docs.python.org/3/tutorial/venv.html) -before installing the OpenVINO™ and its components. +and [Accuracy Checker](@ref omz_tools_accuracy_checker). It is recommended to create a separate [Python* environment](https://docs.python.org/3/tutorial/venv.html) before installing the OpenVINO™ and its components. POT source files are available in `/deployment_tools/tools/post_training_optimization_toolkit` directory after the OpenVINO™ installation. To set up the Post-training Optimization Tool in your environment, follow the steps below. @@ -43,9 +42,9 @@ To set up the Post-training Optimization Tool in your environment, follow the st ```bat install_prerequisites.bat ``` - 3. To verify that the Model Optimizer is installed, run `\/deployment_tools/model_optimizer/mo.py -h`. + 3. To verify that the Model Optimizer is installed, run `/deployment_tools/model_optimizer/mo.py -h`. -- To set up the [Accuracy Checker](@ref omz_tools_accuracy_checker_README): +- To set up the [Accuracy Checker](@ref omz_tools_accuracy_checker): 1. Go to `/deployment_tools/open_model_zoo/tools/accuracy_checker`. 2. Run the following script to configure the Accuracy Checker: ```sh diff --git a/tools/pot/docs/LowPrecisionOptimizationGuide.md b/tools/pot/docs/LowPrecisionOptimizationGuide.md index 54a8a0f7843..6958a36df81 100644 --- a/tools/pot/docs/LowPrecisionOptimizationGuide.md +++ b/tools/pot/docs/LowPrecisionOptimizationGuide.md @@ -25,7 +25,7 @@ with additional retraining/fine-tuning. Starting from the OpenVINO 2020.1 release all the quantized models are represented using so-called `FakeQuantize` layer which is a very expressive primitive and is able to represent such operations as `Quantize`, `Dequantize`, `Requantize`, and even more. This operation is inserted into the model during quantization procedure and is aimed to store quantization parameters for the layers. For more details about this operation -please refer to the following [description](https://docs.openvinotoolkit.org/latest/_docs_ops_quantization_FakeQuantize_1.html). +please refer to the following [description](@ref openvino_docs_ops_quantization_FakeQuantize_1). In order to execute such "fake-quantized" models, OpenVINO has a low-precision runtime which is a part of Inference Engine and consists of a generic component translating the model to real integer representation and HW-specific part implemented in the corresponding HW plug-ins. @@ -40,10 +40,10 @@ The diagram below shows the optimization flow for the new model with OpenVINO an ![](images/low_precision_flow.png) - **Step 0: Model enabling**. In this step we should ensure that the model trained on the target dataset can be successfully inferred with OpenVINO -[Inference Engine](https://docs.openvinotoolkit.org/latest/_docs_IE_DG_inference_engine_intro.html) in floating-point precision. -This process involves use of [Model Optimizer](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html) tool to convert the model from the source framework +[Inference Engine](@ref openvino_docs_IE_DG_Deep_Learning_Inference_Engine_DevGuide) in floating-point precision. +This process involves use of [Model Optimizer](@ref openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide) tool to convert the model from the source framework to the OpenVINO Intermediate Representation (IR) and run it on CPU with Inference Engine. - > **NOTE**: This step presumes that the model has the same accuracy as in the original training framework and enabled in the [Accuracy Checker](@ref omz_tools_accuracy_checker_README) tool or through the custom validation sample. + > **NOTE**: This step presumes that the model has the same accuracy as in the original training framework and enabled in the [Accuracy Checker](@ref omz_tools_accuracy_checker) tool or through the custom validation sample. - **Step 1: Post-training quantization**. As the first step for optimization, we suggest using INT8 quantization from POT where in most cases it is possible to get an accurate quantized model. At this step you do not need model re-training. The only thing required is a representative dataset which is usually several hundreds of images and it is used to collect statistics during the quantization process. Post-training quantization is also really fast and usually takes several minutes depending on the model size and used HW. And, generally, a regular desktop system is enough to quantize most of [OpenVINO Model Zoo](https://github.com/opencv/open_model_zoo). For more information on best practices of post-training optimization please refer to the [Post-training Optimization Best practices](BestPractices.md). diff --git a/tools/pot/docs/ModelRepresentation.md b/tools/pot/docs/ModelRepresentation.md index 48b022b1460..e99681612f5 100644 --- a/tools/pot/docs/ModelRepresentation.md +++ b/tools/pot/docs/ModelRepresentation.md @@ -1,23 +1,26 @@ -# Representation of low-precision models {#pot_docs_ModelRepresentation} +# Representation of Low-Precision Models The goal of this document is to describe how optimized models are represented in OpenVINO Intermediate Representation (IR) and provide guidance on interpretation rules for such models at runtime. Currently, there are two groups of optimization methods that can influence on the IR after applying them to the full-precision model: - **Sparsity**. It is represented by zeros inside the weights and this is up to the hardware plugin how to interpret these zeros (use weights as is or apply special compression algorithms and sparse arithmetic). No additional mask is provided with the model. - **Quantization**. The rest of this document is dedicated to the representation of quantized models. ## Representation of quantized models -The OpenVINO Toolkit represents all the quantized models using the so-called [FakeQuantize](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_Legacy_IR_Layers_Catalog_Spec.html#FakeQuantize) operation. This operation is very expressive and allows mapping values from arbitrary input and output ranges. The whole idea behind that is quite simple: we project (discretize) the input values to the low-precision data type using affine transformation (with clamp and rounding) and then reproject discrete values back to the original range and data type. It can be considered as an emulation of the quantization process which happens at runtime. +The OpenVINO Toolkit represents all the quantized models using the so-called [FakeQuantize](@ref openvino_docs_ops_quantization_FakeQuantize_1) operation. This operation is very expressive and allows mapping values from arbitrary input and output ranges. The whole idea behind that is quite simple: we project (discretize) the input values to the low-precision data type using affine transformation (with clamp and rounding) and then reproject discrete values back to the original range and data type. It can be considered as an emulation of the quantization process which happens at runtime. In order to be able to execute a particular DL operation in low-precision all its inputs should be quantized i.e. should have FakeQuantize between operation and data blobs. The figure below shows an example of quantized Convolution which contains two FakeQuantize nodes: one for weights and one for activations (bias is quantized using the same parameters). -
This browser does not support PNG
+ +![](./images/quantized_convolution.png)
Figure 1. Example of quantized Convolution operation.

Starting from OpenVINO 2020.2 release all the quantized models are represented in the compressed form. It means that the weights of low-precision operations are converted into the target precision (e.g. INT8). It helps to substantially reduce the model size. The rest of the parameters can be represented by FLOAT32 or FLOAT16 precision depending on the input full-precision model used in the quantization process. Fig. 2 below shows an example of the part of the compressed IR. -
This browser does not support PNG
+ +![](./images/quantized_model_example.png)
Figure 2. Example of compressed quantized model.
### Interpreting FakeQuantize at runtime -One important question that arises at inference time is how to correctly interpret quantized models and specifically FakeQuantize operations. OpenVINO Deep Learning Deployment Toolkit has a special component which is called Low-Precision Transformations (LPT). It is responsible for the translation of "fake-quantized" models into the models with low-precision operations. For more information about low-precision flow please refer to the following [document](https://docs.openvinotoolkit.org/latest/_docs_IE_DG_Int8Inference.html). Here we provide only a high-level overview of the interpretation rules of FakeQuantize operation. +One important question that arises at inference time is how to correctly interpret quantized models and specifically FakeQuantize operations. OpenVINO Deep Learning Deployment Toolkit has a special component which is called Low-Precision Transformations (LPT). It is responsible for the translation of "fake-quantized" models into the models with low-precision operations. For more information about low-precision flow please refer to the following [document](https://docs.openvino.ai/latest/_docs_IE_DG_Int8Inference.html). Here we provide only a high-level overview of the interpretation rules of FakeQuantize operation. At runtime each FakeQuantize can be split into two independent operations: **Quantize** and **Dequantize**. The former one is aimed to transform the input data into the target precision while the latter transforms the resulting values back to the original range and precision. In practice *Dequantize* operations can be propagated forward through the linear low-precision layers, such as *Convolution* or *Fully-Connected*, and in some cases fused with the following *Quantize* operation for the next layer into the so-called *Requantize* operation (see Fig. 3). -
This browser does not support PNG
+ +![](./images/qdq_propagation.png)
Figure 3. Quantization operations propagation at runtime. Q, DQ, RQ stand for Quantize, Dequantize, and Requantize correspondingly.

From the calculation standpoint, the FakeQuantize formula also is split into two parts accordingly: diff --git a/tools/pot/openvino/tools/pot/algorithms/quantization/README.md b/tools/pot/openvino/tools/pot/algorithms/quantization/README.md index d3f83e666e2..7b353875c6c 100644 --- a/tools/pot/openvino/tools/pot/algorithms/quantization/README.md +++ b/tools/pot/openvino/tools/pot/algorithms/quantization/README.md @@ -1,11 +1,23 @@ # Quantization {#pot_compression_algorithms_quantization_README} +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :hidden: + + DefaultQuantization Algorithm + AccuracyAwareQuantization Algorithm + TunableQuantization Algorithm + +@endsphinxdirective + The primary optimization feature of the Post-training Optimization Tool (POT) is uniform quantization. In general, this method supports an arbitrary number of bits, greater or equal to two, which represents weights and activations. During the quantization process, the method inserts [FakeQuantize](@ref openvino_docs_ops_quantization_FakeQuantize_1) operations into the model graph automatically based on a predefined hardware target in order to produce the most hardware-friendly optimized model: -![](../../../docs/images/convolution_quantization.png) +![](../../../../../docs/images/convolution_quantization.png) After that, different quantization algorithms can tune the `FakeQuantize` parameters or remove some of them in order to meet the accuracy criteria. The resulting *fakequantized* models are interpreted and transformed to real low-precision diff --git a/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware/README.md b/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware/README.md index f2497de5442..1c7e6bddea8 100644 --- a/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware/README.md +++ b/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware/README.md @@ -5,9 +5,7 @@ AccuracyAware algorithm is designed to perform accurate 8-bit quantization and a pre-defined range of accuracy drop, for example 1%, defined by the user in the configuration file. This may cause a degradation in performance in comparison to [DefaultQuantization](../default/README.md) algorithm because some layers can be reverted back to the original precision. -> **NOTE**: -In case of GNA `target_device`, POT moves INT8 weights to INT16 to stay in the pre-defined range of the accuracy drop. Thus, the algorithm works for the `performance` (INT8) preset only. -For the `accuracy` preset, this algorithm is not performed, but the parameters tuning is available (if `tune_hyperparams` option is enabled). +> **NOTE**: In case of GNA `target_device`, POT moves INT8 weights to INT16 to stay in the pre-defined range of the accuracy drop. Thus, the algorithm works for the `performance` (INT8) preset only. For the `accuracy` preset, this algorithm is not performed, but the parameters tuning is available (if `tune_hyperparams` option is enabled). Generally, the algorithm consists of the following steps: 1. The model gets fully quantized using the DefaultQuantization algorithm. @@ -25,7 +23,7 @@ without a need to wait until it finishes. The figure below shows the diagram of the algorithm. -![](../../../../docs/images/aa_quantization_pipeline.png) +![](../../../../../../docs/images/aa_quantization_pipeline.png) ## Parameters Since the [DefaultQuantization](../default/README.md) algorithm is used as an initialization, all its parameters are also valid and can be specified. Here we diff --git a/tools/pot/openvino/tools/pot/algorithms/quantization/default/README.md b/tools/pot/openvino/tools/pot/algorithms/quantization/default/README.md index b88b5f4d4d7..3bcf2e9551c 100644 --- a/tools/pot/openvino/tools/pot/algorithms/quantization/default/README.md +++ b/tools/pot/openvino/tools/pot/algorithms/quantization/default/README.md @@ -2,7 +2,7 @@ ## Overview DefaultQuantization algorithm is designed to perform a fast and in many cases accurate 8-bits quantization of NNs. -![](../../../../docs/images/default_quantization_pipeline.png) +![](../../../../../../docs/images/default_quantization_pipeline.png) The algorithm consists of three methods that are sequentially applied to a model: * ActivationChannelAlignment - Used as a preliminary step before quantization and allows you to align ranges of output activations of Convolutional layers in order to reduce the quantization error. * MinMaxQuantization - This is a vanilla quantization method that automatically inserts [FakeQuantize](@ref openvino_docs_ops_quantization_FakeQuantize_1) operations into the model graph based on the specified target hardware and initializes them diff --git a/tools/pot/openvino/tools/pot/algorithms/quantization/tunable_quantization/README.md b/tools/pot/openvino/tools/pot/algorithms/quantization/tunable_quantization/README.md index 0906faf3624..38033ce5fd4 100644 --- a/tools/pot/openvino/tools/pot/algorithms/quantization/tunable_quantization/README.md +++ b/tools/pot/openvino/tools/pot/algorithms/quantization/tunable_quantization/README.md @@ -2,7 +2,7 @@ ## Overview -TunableQuantization algorithm is a modified version of the vanilla **MinMaxQuantization** quantization method that automatically inserts [FakeQuantize](https://docs.openvinotoolkit.org/latest/_docs_ops_quantization_FakeQuantize_1.html) operations into the model graph based on the specified target hardware and initializes them using statistics collected on the calibration dataset. +TunableQuantization algorithm is a modified version of the vanilla **MinMaxQuantization** quantization method that automatically inserts [FakeQuantize](@ref openvino_docs_ops_quantization_FakeQuantize_1) operations into the model graph based on the specified target hardware and initializes them using statistics collected on the calibration dataset. It is recommended to be run as a part of an optimization pipeline similar to the one used in [**DefaultQuantization**](../default/README.md): * ActivationChannelAlignment - Used as a preliminary step before quantization and allows you to align ranges of output activations of Convolutional layers in order to reduce the quantization error. * FastBiasCorrection - Adjusts biases of Convolutional and Fully-Connected layers based on the quantization error of the layer in order to make the overall error unbiased. diff --git a/tools/pot/openvino/tools/pot/api/README.md b/tools/pot/openvino/tools/pot/api/README.md index 4054f206917..197349ea501 100644 --- a/tools/pot/openvino/tools/pot/api/README.md +++ b/tools/pot/openvino/tools/pot/api/README.md @@ -1,7 +1,18 @@ # Post-Training Optimization Tool API {#pot_compression_api_README} + +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :hidden: + + API Samples + +@endsphinxdirective + ## Overview The Post-Training Optimization Tool (POT) Python* API allows injecting optimization methods supported by POT into a -model inference script written with OpenVINO™ [Python* API](@ref openvino_inference_engine_ie_bridges_python_docs_api_overview). +model inference script written with OpenVINO™ [Python* API](ie_python_api/api.html). Thus, POT API helps to implement a custom optimization pipeline for a single or cascaded/composite DL model (set of joint models). By the optimization pipeline, we mean the consecutive application of optimization algorithms to the model. The input for the optimization pipeline is @@ -21,7 +32,7 @@ should be implemented according to the custom DL model: - `Engine` is responsible for model inference and provides statistical data and accuracy metrics for the model. > **NOTE**: The POT has the implementation of the Engine class with the class name IEEngine located in > `/engines/ie_engine.py`, where `` is a directory where the Post-Training Optimization Tool is installed. - > It is based on the [OpenVINO™ Inference Engine Python* API](@ref openvino_inference_engine_ie_bridges_python_docs_api_overview) + > It is based on the [OpenVINO™ Inference Engine Python* API](ie_python_api/api.html) > and can be used as a baseline engine in the customer pipeline instead of the abstract Engine class. - `DataLoader` is responsible for the dataset loading, including the data pre-processing. - `Metric` is responsible for calculating the accuracy metric for the model. @@ -38,7 +49,7 @@ Before diving into the Python* POT API, it is highly recommended to read [Best P scenarios of using the Post-Training Optimization Tool are described. The POT Python* API for model optimization can be used in the following cases: -- [Accuracy Checker](@ref omz_tools_accuracy_checker_README) tool does not support the model or dataset. +- [Accuracy Checker](@ref omz_tools_accuracy_checker) tool does not support the model or dataset. - POT does not support the model in the [Simplified Mode](@ref pot_docs_BestPractices) or produces the optimized model with low accuracy in this mode. - You already have the Python* script to validate the accuracy of the model using the [OpenVINO™ Inference Engine](@ref openvino_docs_IE_DG_Deep_Learning_Inference_Engine_DevGuide). @@ -155,7 +166,7 @@ describe internal representation of the DL model and how to work with it. ``` class openvino.tools.pot.engines.ie_engine.IEEngine(config, data_loader=None, metric=None) ``` -IEEngine is a helper which implements Engine class based on [OpenVINO™ Inference Engine Python* API](@ref openvino_inference_engine_ie_bridges_python_docs_api_overview). +IEEngine is a helper which implements Engine class based on [OpenVINO™ Inference Engine Python* API](ie_python_api/api.html). This class support inference in synchronous and asynchronous modes and can be reused as-is in the custom pipeline or with some modifications, e.g. in case of custom post-processing of inference results. diff --git a/tools/pot/openvino/tools/pot/api/samples/README.md b/tools/pot/openvino/tools/pot/api/samples/README.md index f85d56cb8ec..06e6344b47d 100644 --- a/tools/pot/openvino/tools/pot/api/samples/README.md +++ b/tools/pot/openvino/tools/pot/api/samples/README.md @@ -1,8 +1,23 @@ # Post-training Optimization Tool API samples {#pot_sample_README} +@sphinxdirective + +.. toctree:: + :maxdepth: 1 + :hidden: + + Image Classification Quantization Sample + Accuracy-Aware Quantization Sample + Cascaded Model Quantization Sample + Semantic segmentation quantization sample + 3D Segmentation quantization sample + GNA speech sample + +@endsphinxdirective + The Post-training Optimization Tool contains multiple samples that demonstrate how to use its [Software API](@ref pot_compression_api_README) to optimize DL models which require special inference pipeline, data loading or metric calculation that -are not supported through the `AccuracyCheker` or `Simplified` engines (see [this tutorial](@ref pot_docs_BestPractices) for more details). +are not supported through the `AccuracyCheker` or `Simplified` engines (see [Best Practices](../../../../../docs/BestPractices.md) for more details). All available samples can be found in `/api/samples` folder, where `` is a directory where the Post-Training Optimization Tool is installed. > **NOTE**: - `` is referred to `/lib/python/site-packages/` in the case of PyPI installation, where `` is a Python* diff --git a/tools/pot/openvino/tools/pot/api/samples/classification/README.md b/tools/pot/openvino/tools/pot/api/samples/classification/README.md index fda3cf22735..7d4f7461bbc 100644 --- a/tools/pot/openvino/tools/pot/api/samples/classification/README.md +++ b/tools/pot/openvino/tools/pot/api/samples/classification/README.md @@ -6,7 +6,7 @@ A custom `DataLoader` is created to load the [ImageNet](http://www.image-net.org ## How to prepare the data -To run this sample, you will need to download the validation part of the ImageNet image database http://www.image-net.org/download-faq and place it in a separate folder, +To run this sample, you need to [download](http://www.image-net.org/download-faq) the validation part of the ImageNet image database and place it in a separate folder, which will be later referred as ``. Annotations to images should be stored in a separate .txt file (``) in the format `image_name label`. diff --git a/tools/pot/openvino/tools/pot/api/samples/speech/README.md b/tools/pot/openvino/tools/pot/api/samples/speech/README.md index 481dbf906a8..d25bc863b98 100644 --- a/tools/pot/openvino/tools/pot/api/samples/speech/README.md +++ b/tools/pot/openvino/tools/pot/api/samples/speech/README.md @@ -8,7 +8,7 @@ A custom `ArkDataLoader` is created to load the dataset from files with .ark ext ## How to prepare the data -To run this sample, you will need to use the .ark files for each model input from your \. +To run this sample, you will need to use the .ark files for each model input from your ``. For generating data from original formats to .ark, please, follow the [Kaldi data preparation tutorial](https://kaldi-asr.org/doc/data_prep.html). ## How to Run the Sample