Files
openvino/docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md
Andrey Zaytsev 40eba6a2ef Feature/merge 2021 3 to master (#5307)
* Feature/azaytsev/cldnn doc fixes (#4600)

* Legal fixes, removed the Generating docs section

* Removed info regarding generating docs

Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>

* Feature/azaytsev/gna model link fixes (#4599)

* Added info on DockerHub CI Framework

* Feature/azaytsev/change layout (#3295)

* Changes according to feedback comments

* Replaced @ref's with html links

* Fixed links, added a title page for installing from repos and images, fixed formatting issues

* Added links

* minor fix

* Added DL Streamer to the list of components installed by default

* Link fixes

* Link fixes

* ovms doc fix (#2988)

* added OpenVINO Model Server

* ovms doc fixes

Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>

* Updated openvino_docs.xml

* Link Fixes

Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>

* Fix for broken CC in CPU plugin (#4595)

* Azure CI: Add "ref: releases/2021/3"

* Fixed clone rt info (#4597)

* [.ci/azure] Enable CC build (#4619)

* Formula fix (#4624)

* Fixed transformation to pull constants into Loop body (cherry-pick of PR 4591) (#4607)

* Cherry-pick of PR 4591

* Fixed typo

* Moved a check into the parameter_unchanged_after_iteration function

* Fixed KW hits (#4638)

* [CPU] Supported ANY layout for inputs in inferRequest (#4621)

* [.ci/azure] Add windows_conditional_compilation.yml (#4648) (#4655)

* Fix for MKLDNN constant layers execution (#4642)

* Fix for MKLDNN constant layers execution

* Single mkldnn::engine for all MKLDNN graphs

* Add workaround for control edges to support TF 2.4 RNN (#4634)

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Corrected PyYAML dependency (#4598) (#4620)

5.4.2 is absent on PyPI

* [CPU] Statically analyzed issues. (#4637)

* Docs api (#4657)

* Updated API changes document

* Comment for CVS-49440

* Add documentation on how to convert QuartzNet model (#4664)

* Add documentation on how to convert QuartzNet model (#4422)

* Add documentation on how to convert QuartzNet model

* Apply review feedback

* Small fix

* Apply review feedback

* Apply suggestions from code review

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Add reference to file

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Fixed bug in assign elimination transformation. (#4644)

* [doc] Updated PyPI support OSes (#4643) (#4662)

* [doc] Updated PyPI support OSes (#4643)

* Updated PyPI support OSes

* Added python versions for win and mac

* Update pypi-openvino-dev.md

* Update pypi-openvino-dev.md

* Update pypi-openvino-rt.md

* Update pypi-openvino-dev.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* [IE][VPU]: Fix empty output of CTCGreedyDecoderSeqLen (#4653)

* Allow the second output of CTCGreedyDecoderSeqLen to be nullptr in cases when it is not used but calculated in the Myriad plugin. In this case, parse the second output as FakeData
* It is a cherry-pick of #4652
* Update the firmware to release version

* [VPU] WA for Segmentation fault on dlclose() issue (#4645)

* Document TensorFlow 2* Update: Layers Support and Remove Beta Status (#4474) (#4711)

* Document TensorFlow 2* Update: Layers Support and Remove Beta Status

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Update documentation based on latest test results and feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Remove ConvLSTM2D from supported layers list

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Document Dot layer without limitation

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Address feedback upon DenseFeatures and RNN operations

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Do a grammar correction

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Do a grammar correction based on feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Updated nGraph custom op documentation (#4604)

* Updated nGraph custom op documentation

* Fixed comments

* [IE CLDNN] Fix missing variable initializations and types (#4669)

* Fix NormalizeL2 creation in QueryNetwork (cherry pick from master PR 4310) (#4651)

* Updated documentation about the supported YOLOv3 model from ONNX (#4722) (#4726)

* Restored folded Operations for QueryNetwork (#4685)

* Restored folded Operations for QueryNetwork

* Fixed comment

* Add unfolded constant operations to supported layers map

* Add STN to list of supported models (#4728)

* Fix python API for Loop/TensorIterator/Assign/ReadValue operations

* Catch std::except in fuzz tests (#4695)

Fuzz tests must catch all expected exceptions from IE. IE is using C++ std
library which may raise standard exceptions which IE pass through.

* Docs update (#4626)

* Updated latency case desc to cover multi-socket machines

* updated opt guide a bit

* avoiding '#' which is interpreted as ref

* Update CPU.md

* Update docs/optimization_guide/dldt_optimization_guide.md

Co-authored-by: Alina Alborova <alina.alborova@intel.com>

* Update docs/optimization_guide/dldt_optimization_guide.md

Co-authored-by: Alina Alborova <alina.alborova@intel.com>

* Update docs/optimization_guide/dldt_optimization_guide.md

Co-authored-by: Alina Alborova <alina.alborova@intel.com>

* Update docs/optimization_guide/dldt_optimization_guide.md

Co-authored-by: Alina Alborova <alina.alborova@intel.com>

* Update docs/optimization_guide/dldt_optimization_guide.md

Co-authored-by: Alina Alborova <alina.alborova@intel.com>

Co-authored-by: Alina Alborova <alina.alborova@intel.com>

* Blocked dims hwc 2021/3 (#4729)

* Fix for BlockedDims

* Added test for HWC layout

* [GNA] Update documentation regarding splits and concatenations support (#4740)

* Added mo.py to wheel packages (#4731)

* Inserted a disclaimer (#4760)

* Fixed some klockwork issues in C API samples (#4767)

* Feature/vpu doc fixes 2021 3 (#4635)

* Documentation fixes and updates for VPU

* minor correction

* minor correction

* Fixed links

* updated supported layers list for vpu

* [DOCS] added iname/oname (#4735)

* [VPU] Limit dlclose() WA to be used for Ubuntu only (#4806)

* Fixed wrong link (#4817)

* MKLDNN weights cache key calculation algorithm changed (#4790)

* Updated PIP install instructions (#4821)

* Document YOLACT support (#4749)

* Document YOLACT support

* Add preprocessing section

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Add documentation on how to convert F3Net model (#4863)

* Add instruction for F3Net model pytorch->onnx conversion

* Fix style

* Fixed dead lock in telemetry (#4873)

* Fixed dead lock in telemetry

* Refactored TelemetrySender.send function

* Refactored send function implementation to avoid deadlocks

* Unit tests for telemetry sender function

* Added legal header

* avladimi/cvs-31369: Documented packages content to YUM/APT IGs (#4839)

* Documented runtime/dev packages content

* Minor formatting fixes

* Implemented review comments

* Update installing-openvino-apt.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* [DOC] Low-Precision 8-bit Integer Inference (#4834)

* [DOC] Low-Precision 8-bit Integer Inference

* [DOC] Low-Precision 8-bit Integer Inference: comment fixes

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* Update docs/IE_DG/Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* [DOC] LPT comments fix

* [DOC] LPT comments fix: absolute links are updated to relative

* Update Int8Inference.md

* Update Int8Inference.md

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Avladimi/cherry pick from master (#4892)

* Fixed CVS-48061

* Reviewed and edited the Customization instructions

* Fixed broken links in the TOC

* Fixed links

* Fixed formatting in the IG for Raspberry

* Feature/benchmarks 2021 3 (#4910)

* added new topics, changed the intro text

* updated

* Updates

* Updates

* Updates

* Updates

* Updates

* Added yolo-v4-tf and unet-camvid-onnx graphs

* Date for pricing is updated to March 15th

* Feature/omz link changes (#4911)

* Changed labels for demos and model downloader

* Changed links to models and tools

* Changed links to models and tools

* Changed links to demos

* [cherry-pick] Extensibility docs review (#4915)

* Feature/ovsa docs 2021 3 (#4914)

* Updated to 2021-3, fixed formatting issues

* Fixed formatting issues

* Fixed formatting issues

* Fixed formatting issues

* Update ovsa_get_started.md

* Clarification of Low Latency Transformation and State API documentation (#4877)

* Assign/ReadValue, LowLatency and StateAPI clarifications

* Apply suggestions from code review: spelling mistakes

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>

* fixed wording

* cherry-pick missing commit to release branch: low latency documentation

* Resolve review remarks

Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Svetlana Dolinina <svetlana.a.dolinina@intel.com>

* DevCloud call outs (#4904)

* [README.md] change latest release to 2021.3

* [49342] Update recommended CMake version on install guide in documentation (#4763)

* Inserted a disclaimer

* Another disclaimer

* Update installing-openvino-windows.md

* Update installing-openvino-windows.md

* Update installing-openvino-windows.md

* Feature/doc fixes 2021 3 (#4971)

* Made changes for CVS-50424

* Changes for CVS-49349

* Minor change for CVS-49349

* Changes for CVS-49343

* Cherry-pick #PR4254

* Replaced /opt/intel/openvino/ with /opt/intel/openvino_2021/ as the default target directory

* (CVS-50786) Added a new section Reference IMplementations to keep Speech Library and Speech Recognition Demos

* Doc fixes

* Replaced links to inference_engine_intro.md with Deep_Learning_Inference_Engine_DevGuide.md, fixed links

* Fixed link

* Fixes

* Fixes

* Reemoved Intel® Xeon® processor E family

* fixes for graphs (#5057)

* compression.configs.hardware config to package_data (#5066)

* update OpenCV version to 4.5.2 (#5069)

* update OpenCV version to 4.5.2

* Enable mo.front.common.extractors module (#5038)

* Enable mo.front.common.extractors module (#5018)

* Enable mo.front.common.extractors module

* Update package_BOM.txt

* Test MO wheel content

* fix doc iframe issue - 2021.3 (#5090)

* wrap with htmlonly

* wrap with htmlonly

* Add specification for ExperimentalDetectron* oprations (#5128)

* Feature/benchmarks 2021 3 ehl (#5191)

* Added EHL config

* Updated graphs

* improve table formatting

* Wrap <iframe> tag with \htmlonly \endhtmlonly to avoid build errors

* Updated graphs

* Fixed links to TDP and Price for 8380

* Add PyTorch section to the documentation (#4972)

* Add PyTorch section to the documentation

* Apply review feedback

* Remove section about loop

* Apply review feedback

* Apply review feedback

* Apply review feedback

* doc: add Red Hat docker registry (#5184) (#5253)

* Incorporate changes in master

Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
Co-authored-by: Vladislav Volkov <vladislav.volkov@intel.com>
Co-authored-by: azhogov <alexander.zhogov@intel.com>
Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
Co-authored-by: Alina Kladieva <alina.kladieva@intel.com>
Co-authored-by: Evgeny Lazarev <evgeny.lazarev@intel.com>
Co-authored-by: Gorokhov Dmitriy <dmitry.gorokhov@intel.com>
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
Co-authored-by: Mikhail Ryzhov <mikhail.ryzhov@intel.com>
Co-authored-by: Nikolay Shchegolev <nikolay.shchegolev@intel.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Anastasia Popova <anastasia.popova@intel.com>
Co-authored-by: Maksim Doronin <maksim.doronin@intel.com>
Co-authored-by: Andrew Bakalin <andrew.bakalin@intel.com>
Co-authored-by: Mikhail Letavin <mikhail.letavin@intel.com>
Co-authored-by: Anton Chetverikov <Anton.Chetverikov@intel.com>
Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
Co-authored-by: Andrey Somsikov <andrey.somsikov@intel.com>
Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
Co-authored-by: Alina Alborova <alina.alborova@intel.com>
Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>
Co-authored-by: Andrey Dmitriev <andrey.dmitriev@intel.com>
Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>
Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
Co-authored-by: Edward Shogulin <edward.shogulin@intel.com>
Co-authored-by: Svetlana Dolinina <svetlana.a.dolinina@intel.com>
Co-authored-by: Alexey Suhov <alexey.suhov@intel.com>
Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>
Co-authored-by: Dmitry Kurtaev <dmitry.kurtaev+github@gmail.com>
Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
Co-authored-by: Kate Generalova <kate.generalova@intel.com>
2021-04-19 20:19:17 +03:00

11 KiB

Model Optimizer Developer Guide

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.

Model Optimizer process assumes you have a network model trained using a supported deep learning framework. The scheme below illustrates the typical workflow for deploying a trained deep learning model:

Model Optimizer produces an Intermediate Representation (IR) of the network, which can be read, loaded, and inferred with the Inference Engine. The Inference Engine API offers a unified API across a number of supported Intel® platforms. The Intermediate Representation is a pair of files describing the model:

  • .xml - Describes the network topology

  • .bin - Contains the weights and biases binary data.

Tip

: You also can work with the Model Optimizer inside the OpenVINO™ [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) (DL Workbench). [DL Workbench](@ref workbench_docs_Workbench_DG_Introduction) is a platform built upon OpenVINO™ and provides a web-based graphical environment that enables you to optimize, fine-tune, analyze, visualize, and compare performance of deep learning models on various Intel® architecture configurations. In the DL Workbench, you can use most of OpenVINO™ toolkit components.
Proceed to an [easy installation from Docker](@ref workbench_docs_Workbench_DG_Install_from_Docker_Hub) to get started.

What's New in the Model Optimizer in this Release?

  • Common changes:
    • Implemented several optimization transformations to replace sub-graphs of operations with HSwish, Mish, Swish and SoftPlus operations.
    • Model Optimizer generates IR keeping shape-calculating sub-graphs by default. Previously, this behavior was triggered if the "--keep_shape_ops" command line parameter was provided. The key is ignored in this release and will be deleted in the next release. To trigger the legacy behavior to generate an IR for a fixed input shape (folding ShapeOf operations and shape-calculating sub-graphs to Constant), use the "--static_shape" command line parameter. Changing model input shape using the Inference Engine API in runtime may fail for such an IR.
    • Fixed Model Optimizer conversion issues resulted in non-reshapeable IR using the Inference Engine reshape API.
    • Enabled transformations to fix non-reshapeable patterns in the original networks:
      • Hardcoded Reshape
        • In Reshape(2D)->MatMul pattern
        • Reshape->Transpose->Reshape when the pattern can be fused to the ShuffleChannels or DepthToSpace operation
      • Hardcoded Interpolate
        • In Interpolate->Concat pattern
      • Added a dedicated requirements file for TensorFlow 2.X as well as the dedicated install prerequisites scripts.
      • Replaced the SparseToDense operation with ScatterNDUpdate-4.
  • ONNX*:
    • Enabled an ability to specify the model output tensor name using the "--output" command line parameter.
    • Added support for the following operations:
      • Acosh
      • Asinh
      • Atanh
      • DepthToSpace-11, 13
      • DequantizeLinear-10 (zero_point must be constant)
      • HardSigmoid-1,6
      • QuantizeLinear-10 (zero_point must be constant)
      • ReduceL1-11, 13
      • ReduceL2-11, 13
      • Resize-11, 13 (except mode="nearest" with 5D+ input, mode="tf_crop_and_resize", and attributes exclude_outside and extrapolation_value with non-zero values)
      • ScatterND-11, 13
      • SpaceToDepth-11, 13
  • TensorFlow*:
    • Added support for the following operations:
      • Acosh
      • Asinh
      • Atanh
      • CTCLoss
      • EuclideanNorm
      • ExtractImagePatches
      • FloorDiv
  • MXNet*:
    • Added support for the following operations:
      • Acosh
      • Asinh
      • Atanh
  • Kaldi*:
    • Fixed bug with ParallelComponent support. Now it is fully supported with no restrictions.

NOTE: Intel® System Studio is an all-in-one, cross-platform tool suite, purpose-built to simplify system bring-up and improve system and IoT device application performance on Intel® platforms. If you are using the Intel® Distribution of OpenVINO™ with Intel® System Studio, go to Get Started with Intel® System Studio.

Table of Content

Typical Next Step: Preparing and Optimizing your Trained Model with Model Optimizer

Video: Model Optimizer Concept

\htmlonly

\endhtmlonly

Video: Model Optimizer Basic Operation

\htmlonly

\endhtmlonly

Video: Choosing the Right Precision

\htmlonly

\endhtmlonly