From 0f8c599ce73e57b2ed1b7ae4a8943360709b0619 Mon Sep 17 00:00:00 2001 From: Andrey Zaytsev Date: Sat, 5 Mar 2022 12:31:15 +0300 Subject: [PATCH] Re-structure Model Optimizer User Guide and Clean-up (#10801) * Modified the workflow diagram * Moved supported topology lists to separate topics * Additional changes * Removed Supported Topologies list and Deprecated pages * Created the Model Conversion Tutorials section for instructions for specific models * Topic names alignment, removed Default_Model_Optimizer_Optimizations.md * Additional structural changes * Fixed links * heading fixes --- .../Deep_Learning_Model_Optimizer_DevGuide.md | 282 +- docs/MO_DG/Known_Issues_Limitations.md | 9 - docs/MO_DG/img/BASIC_FLOW_MO_simplified.svg | 204 +- .../prepare_model/Additional_Optimizations.md | 22 +- .../Default_Model_Optimizer_Optimizations.md | 11 - .../prepare_model/Model_Optimizer_FAQ.md | 76 +- .../convert_model/Convert_Model_From_Caffe.md | 38 +- .../convert_model/Convert_Model_From_Kaldi.md | 58 +- .../convert_model/Convert_Model_From_MxNet.md | 50 +- .../convert_model/Convert_Model_From_ONNX.md | 69 +- .../Convert_Model_From_Paddle.md | 25 +- .../Convert_Model_From_PyTorch.md | 52 +- .../Convert_Model_From_TensorFlow.md | 211 +- .../convert_model/Convert_Model_Tutorials.md | 41 + .../convert_model/Converting_Model.md | 296 +- .../Legacy_IR_Layers_Catalog_Spec.md | 5319 ----------------- .../kaldi_specific/Aspire_Tdnn_Model.md | 22 +- .../mxnet_specific/Convert_GluonCV_Models.md | 6 +- .../Convert_Style_Transfer_From_MXNet.md | 8 +- .../onnx_specific/Convert_DLRM.md | 32 - .../onnx_specific/Convert_Faster_RCNN.md | 4 +- .../onnx_specific/Convert_GPT2.md | 2 +- .../onnx_specific/Convert_Mask_RCNN.md | 4 +- .../pytorch_specific/Convert_Bert_ner.md | 2 +- .../pytorch_specific/Convert_F3Net.md | 6 +- .../pytorch_specific/Convert_QuartzNet.md | 2 +- .../pytorch_specific/Convert_RCAN.md | 2 +- .../pytorch_specific/Convert_RNNT.md | 24 +- .../pytorch_specific/Convert_YOLACT.md | 38 +- .../Convert_AttentionOCR_From_Tensorflow.md | 4 +- .../Convert_BERT_From_Tensorflow.md | 4 +- .../Convert_CRNN_From_Tensorflow.md | 2 +- .../Convert_DeepSpeech_From_Tensorflow.md | 30 +- .../Convert_EfficientDet_Models.md | 21 +- .../Convert_FaceNet_From_Tensorflow.md | 2 +- .../Convert_GNMT_From_Tensorflow.md | 32 +- .../Convert_NCF_From_Tensorflow.md | 14 +- .../Convert_Object_Detection_API_Models.md | 4 +- .../Convert_RetinaNet_From_Tensorflow.md | 4 +- .../Convert_Slim_Library_Models.md | 10 +- .../Convert_WideAndDeep_Family_Models.md | 10 +- .../Convert_XLNet_From_Tensorflow.md | 12 +- .../Convert_YOLO_From_Tensorflow.md | 16 +- .../Convert_lm_1b_From_Tensorflow.md | 18 +- .../Customize_Model_Optimizer.md | 10 +- .../Subgraph_Replacement_Model_Optimizer.md | 4 - docs/{ => resources}/resources.md | 19 +- tools/pot/docs/ModelRepresentation.md | 22 +- 48 files changed, 670 insertions(+), 6483 deletions(-) delete mode 100644 docs/MO_DG/Known_Issues_Limitations.md delete mode 100644 docs/MO_DG/prepare_model/Default_Model_Optimizer_Optimizations.md create mode 100644 docs/MO_DG/prepare_model/convert_model/Convert_Model_Tutorials.md delete mode 100644 docs/MO_DG/prepare_model/convert_model/Legacy_IR_Layers_Catalog_Spec.md delete mode 100644 docs/MO_DG/prepare_model/convert_model/onnx_specific/Convert_DLRM.md delete mode 100644 docs/MO_DG/prepare_model/customize_model_optimizer/Subgraph_Replacement_Model_Optimizer.md rename docs/{ => resources}/resources.md (55%) diff --git a/docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md b/docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md index 61b8a623d21..d2e1e87ebc0 100644 --- a/docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md +++ b/docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md @@ -7,18 +7,23 @@ .. toctree:: :maxdepth: 1 :hidden: - - openvino_docs_MO_DG_IR_and_opsets + openvino_docs_MO_DG_prepare_model_convert_model_Converting_Model + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_TensorFlow + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_ONNX + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_PyTorch + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_Paddle + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_MxNet + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_Caffe + openvino_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_Kaldi + openvino_docs_MO_DG_prepare_model_convert_model_Cutting_Model openvino_docs_MO_DG_Additional_Optimization_Use_Cases - openvino_docs_MO_DG_prepare_model_customize_model_optimizer_Customize_Model_Optimizer + openvino_docs_MO_DG_prepare_model_convert_model_tutorials openvino_docs_MO_DG_prepare_model_Model_Optimizer_FAQ - openvino_docs_MO_DG_Known_Issues_Limitations - openvino_docs_MO_DG_Default_Model_Optimizer_Optimizations @endsphinxdirective -## Introduction +## Introduction Model Optimizer is a cross-platform command-line tool that facilitates the transition between the training and deployment environment, performs static model analysis, and adjusts deep learning models for optimal execution on end-point target devices. @@ -26,11 +31,11 @@ Model Optimizer process assumes you have a network model trained using supported > **NOTE**: Model Optimizer does not infer models. Model Optimizer is an offline tool that runs before the inference takes place. -The scheme below illustrates the typical workflow for deploying a trained deep learning model: +The scheme below illustrates the typical workflow for deploying a trained deep learning model: ![](img/BASIC_FLOW_MO_simplified.svg) -The IR is a pair of files describing the model: +The IR is a pair of files describing the model: * .xml - Describes the network topology @@ -49,14 +54,14 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req .. tab:: Linux .. tab:: All frameworks - + .. tab:: Install globally .. code-block:: sh cd /deployment_tools/model_optimizer/install_prerequisites ./install_prerequisites.sh - + .. tab:: Install to virtualenv .. code-block:: sh @@ -67,14 +72,14 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req ./install_prerequisites.shs .. tab:: Caffe - + .. tab:: Install globally .. code-block:: sh cd /deployment_tools/model_optimizer/install_prerequisitess install_prerequisites_caffe.sh - + .. tab:: Install to virtualenv .. code-block:: sh @@ -85,90 +90,90 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req install_prerequisites_caffe.shs .. tab:: Tensorflow 1.x - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_tf.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_tf.sh .. tab:: Tensorflow 2.x - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_tf2.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_tf2.sh .. tab:: MXNet - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_mxnet.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_mxnet.sh .. tab:: ONNX - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_onnx.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_onnx.sh .. tab:: Kaldi - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_kaldi.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh @@ -177,126 +182,126 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req .. tab:: Windows .. tab:: All frameworks - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat install_prerequisites.bat .. tab:: Caffe - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites_caffe.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat install_prerequisites_caffe.bat .. tab:: Tensorflow 1.x - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites_tf.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat install_prerequisites_tf.bat .. tab:: Tensorflow 2.x - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites_tf2.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat install_prerequisites_tf2.bat .. tab:: MXNet - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites_mxnet.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat install_prerequisites_mxnet.bat .. tab:: ONNX - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites_onnx.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat install_prerequisites_onnx.bat .. tab:: Kaldi - + .. tab:: Install globally .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites\ install_prerequisites_kaldi.bat - + .. tab:: Install to virtualenv .. code-block:: sh - + cd \deployment_tools\model_optimizer\install_prerequisites virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat @@ -305,14 +310,14 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req .. tab:: macOS .. tab:: All frameworks - + .. tab:: Install globally .. code-block:: sh cd /deployment_tools/model_optimizer/install_prerequisites ./install_prerequisites.sh - + .. tab:: Install to virtualenv .. code-block:: sh @@ -323,14 +328,14 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req ./install_prerequisites.shs .. tab:: Caffe - + .. tab:: Install globally .. code-block:: sh cd /deployment_tools/model_optimizer/install_prerequisitess install_prerequisites_caffe.sh - + .. tab:: Install to virtualenv .. code-block:: sh @@ -341,90 +346,90 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req install_prerequisites_caffe.shs .. tab:: Tensorflow 1.x - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_tf.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_tf.sh .. tab:: Tensorflow 2.x - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_tf2.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_tf2.sh .. tab:: MXNet - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_mxnet.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_mxnet.sh .. tab:: ONNX - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_onnx.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh install_prerequisites_onnx.sh .. tab:: Kaldi - + .. tab:: Install globally .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites install_prerequisites_kaldi.sh - + .. tab:: Install to virtualenv .. code-block:: sh - + cd /deployment_tools/model_optimizer/install_prerequisites virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate # sh, bash, ksh, or zsh @@ -435,63 +440,63 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req .. tab:: Linux .. tab:: All frameworks - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements.txt .. tab:: Caffe - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_caffe.txt .. tab:: Tensorflow 1.x - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_tf.txt .. tab:: Tensorflow 2.x - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_tf2.txt .. tab:: MXNet - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_mxnet.txt .. tab:: ONNX - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_onnx.txt .. tab:: Kaldi - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate @@ -500,63 +505,63 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req .. tab:: Windows .. tab:: All frameworks - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat pip install -r requirements.txt .. tab:: Caffe - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat pip install -r requirements_caffe.txt .. tab:: Tensorflow 1.x - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat pip install -r requirements_tf.txt .. tab:: Tensorflow 2.x - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat pip install -r requirements_tf2.txt .. tab:: MXNet - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat pip install -r requirements_mxnet.txt .. tab:: ONNX - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat pip install -r requirements_onnx.txt .. tab:: Kaldi - + .. code-block:: sh - + cd \deployment_tools\model_optimizer virtualenv --system-site-packages -p python .\env env\Scripts\activate.bat @@ -565,63 +570,63 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req .. tab:: macOS .. tab:: All frameworks - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements.txt .. tab:: Caffe - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_caffe.txt .. tab:: Tensorflow 1.x - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_tf.txt .. tab:: Tensorflow 2.x - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_tf2.txt .. tab:: MXNet - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_mxnet.txt .. tab:: ONNX - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate pip3 install -r requirements_onnx.txt .. tab:: Kaldi - + .. code-block:: sh - + cd /deployment_tools/model_optimizer/ virtualenv --system-site-packages -p python3 ./venv source ./venv/bin/activate @@ -634,21 +639,28 @@ Before running the Model Optimizer, you must install the Model Optimizer pre-req To convert the model to the Intermediate Representation (IR), run Model Optimizer: ```sh -mo --input_model INPUT_MODEL --output_dir +mo --input_model INPUT_MODEL ``` -You need to have write permissions for an output directory. +> **NOTE**: Some models require using additional arguments, such as `--input`, `--input_shape`, and `--output`. To learn about when you need to use these parameters, refer to [General Conversion Parameters](prepare_model/convert_model/Converting_Model.md). -> **NOTE**: Some models require using additional arguments to specify conversion parameters, such as `--input_shape`, `--scale`, `--scale_values`, `--mean_values`, `--mean_file`. To learn about when you need to use these parameters, refer to [Converting a Model to Intermediate Representation (IR)](prepare_model/convert_model/Converting_Model.md). - -To adjust the conversion process, you may use general parameters defined in the [Converting a Model to Intermediate Representation (IR)](prepare_model/convert_model/Converting_Model.md) and -framework-specific parameters for: -* [Caffe](prepare_model/convert_model/Convert_Model_From_Caffe.md) +To adjust the conversion process, you may use [general parameters](prepare_model/convert_model/Converting_Model.md) and framework-specific parameters for: * [TensorFlow](prepare_model/convert_model/Convert_Model_From_TensorFlow.md) -* [MXNet](prepare_model/convert_model/Convert_Model_From_MxNet.md) * [ONNX](prepare_model/convert_model/Convert_Model_From_ONNX.md) +* [PyTorch](prepare_model/convert_model/Convert_Model_From_PyTorch.md) +* [PaddlePaddle](prepare_model/convert_model/Convert_Model_From_Paddle.md) +* [MXNet](prepare_model/convert_model/Convert_Model_From_MxNet.md) +* [Caffe](prepare_model/convert_model/Convert_Model_From_Caffe.md) * [Kaldi](prepare_model/convert_model/Convert_Model_From_Kaldi.md) +## Examples of CLI Commands + +Launch the Model Optimizer for the Caffe bvlc_alexnet model: + +```sh +mo --input_model bvlc_alexnet.caffemodel +``` + ## Videos @sphinxdirective @@ -660,7 +672,7 @@ framework-specific parameters for: - + - .. raw:: html