Anastasiia Pnevskaia 558714ccdd Support of passing model from memory to mo.convert_model() (#13457)
* convert() method added.

* Moved conversion to convert() method.

* Fixed commits.

* Output dir fix.

* Added objects support for extesions param.

* Added support for transformations_config extension objects.

* Input to str unit tests.

* Added tests, added comments.

* Updated BOM.

* Removed commented code.

* Fixed extension passing.

* Small corrections.

* Fixed for python 3.6.

* Small fix.

* Moved dir creating to ov.serialize(), removed mo.serialize(), small fixes.

* Small fix.

* Small correction.

* Removed coping of params, moved convert implemetation to separate module.

* Import fixes.

* Moved hiding of exceptions to main().

* Updated comment.

* Fixed unit tests.

* Comment changed.

* Fixed dir creating.

* Tests fixed.

* Small fixes.

* Test fix.

* Added meta data generation, removed printing of execution time for silent mode.

* Import fix.

* Conflict fix.

* Fixed error.

* Fix for custom config.

* Added version, data_type params to help.

* Added mo.convert() full-functional tests.

* Small corrections.

* Comment correction.

* Moved convert to openvino package, moved LayotMap and InputCutInfo to openvino.convert.

* Added help param.

* Wrong change removed.

* Small fix.

* Removed unnecessary comments.

* Removed .xml extension check from append_ir_info.

* Added missed file.

* Fixed error.

* Fix for bool value in InputCutInfo.

* Moved InputCutInfo, LayoutMap to openvino.tools.mo.

* Moved InputCutInfo, LayoutMap to openvino.tools.mo.

* Moved check and read_model to emit_ir.

* Small correction.

* Added comment.

* Added unit_tests with convert().

* Small corrections.

* Removed convert alias from openvino.

* Fixed conflicting unit tests.

* Removed unnecessary warnings.

* Params check fix.

* Small correction.

* Added paths checks.

* Added negative tests for to_str methods, fixed errors.

* Added tuples support in input parameter.

* Added direct support of BytesIO and TF1 graph def.

* Moved reminders to update OV and use API 2.0 to main().

* Fixed keras loading.

* Returned .mapping file generating.

* Added positional input_model param.

* Added test for unnamed input_model.

* Optimize imports.

* Added more informative error for brackets syntax in --input.

* Keras direct model support.

* Keras direct model support.

* Small fix.

* Conflict fix.

* Conflict fix.

* Added direct support of BytesIO and TF1 graph def.

* Fixed keras loading.

* Keras direct model support.

* Keras direct model support.

* Small fix.

* Tests for importing from memory.

* Support of other tf/pytorch formats.

* Updated mo_convert extensions tests to use ov models.

* Removed debug output.

* Implemented PyTorch converting logic.

* Small corrections.

* Small corrections.

* Added comments.

* Fixed for single input case.

* Added switching between save to file and BytesIO.

* Small fixes.

* Rename convert() to convert_model().

* Added env variable to disable converting to onnx.

* Tests refactoring.

* Add MO Python API tests to precommit.

* Add MO Python API tests to precommit.

* Added PyTorch to layer tests requirements.

* Added supported formats description.

* Fixed errors, added tests.

* Fixed bugs, added support of numpy and ov.Tensor sample_input.

* Added more torch.Size tests.

* Small correction.

* Renamed sample_input->example_inputs.

* Tests refactoring.

* Code style.

* Added support of dict in example_inputs.

* Small correction.

* Added removing of tmp onnx model in case of conversion error.

* Fix for lists of tensors in example_inputs.

* Support of dynamic axes for Keras layer, Keras module.

* Removed disabling of eager execution.

* Tests fixed.

* Added pytest requirement for layer tests.

* Added convert_model to openvino.runtime, fixed test runs.

* Small fix.

* Tests fix.

* Better help message.

* Error fixed.

* Renamed example_inputs->example_input.

* Small fix.

* Added support of list of layouts.

* Removed wrong change.

* Added tuple support for --layout.

* Removed convert_model from openvino.runtime.

* Use of default onnx opset version.

* Added support of dynamic input shapes without example_input.

* Made better error message.

* Removed stack trace from exceptions.

* Fixed tests.

* Small fix.

* Removed wrong change.

* Added import model from memory tests in unit tests.

* Replaced compare_functions() with MO IR reader compare.

* Removed test.

* Removed not needed change.

* Fixed conflicts.
2022-11-19 11:21:44 +03:00
2021-05-31 15:24:56 +03:00
2018-10-16 13:45:03 +03:00
2020-11-17 16:44:44 +03:00

Stable release Apache License Version 2.0 GitHub branch checks state Azure DevOps builds (branch) PyPI Status PyPI Downloads

Contents:

What is OpenVINO toolkit?

OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference.

  • Boost deep learning performance in computer vision, automatic speech recognition, natural language processing and other common tasks
  • Use models trained with popular frameworks like TensorFlow, PyTorch and more
  • Reduce resource demands and efficiently deploy on a range of Intel® platforms from edge to cloud

This open-source version includes several components: namely Model Optimizer, OpenVINO™ Runtime, Post-Training Optimization Tool, as well as CPU, GPU, MYRIAD, multi device and heterogeneous plugins to accelerate deep learning inference on Intel® CPUs and Intel® Processor Graphics. It supports pre-trained models from Open Model Zoo, along with 100+ open source and public models in popular formats such as TensorFlow, ONNX, PaddlePaddle, MXNet, Caffe, Kaldi.

Components

  • OpenVINO™ Runtime - is a set of C++ libraries with C and Python bindings providing a common API to deliver inference solutions on the platform of your choice.
    • core - provides the base API for model representation and modification.
    • inference - provides an API to infer models on the device.
    • transformations - contains the set of common transformations which are used in OpenVINO plugins.
    • low precision transformations - contains the set of transformations that are used in low precision models
    • bindings - contains all available OpenVINO bindings which are maintained by the OpenVINO team.
      • c - C API for OpenVINO™ Runtime
      • python - Python API for OpenVINO™ Runtime
  • Plugins - contains OpenVINO plugins which are maintained in open-source by the OpenVINO team. For more information, take a look at the list of supported devices.
  • Frontends - contains available OpenVINO frontends that allow reading models from the native framework format.
  • Model Optimizer - is a cross-platform command-line tool that facilitates the transition between training and deployment environments, performs static model analysis, and adjusts deep learning models for optimal execution on end-point target devices.
  • Post-Training Optimization Tool - is designed to accelerate the inference of deep learning models by applying special methods without model retraining or fine-tuning, for example, post-training 8-bit quantization.
  • Samples - applications in C, C++ and Python languages that show basic OpenVINO use cases.

Supported Hardware matrix

The OpenVINO™ Runtime can infer models on different hardware devices. This section provides the list of supported devices.

Device Plugin Library ShortDescription
CPU Intel CPU openvino_intel_cpu_plugin Intel Xeon with Intel® Advanced Vector Extensions 2 (Intel® AVX2), Intel® Advanced Vector Extensions 512 (Intel® AVX-512), and AVX512_BF16, Intel Core Processors with Intel AVX2, Intel Atom Processors with Intel® Streaming SIMD Extensions (Intel® SSE)
ARM CPU openvino_arm_cpu_plugin Raspberry Pi™ 4 Model B, Apple® Mac mini with M1 chip, NVIDIA® Jetson Nano™, Android™ devices
GPU Intel GPU openvino_intel_gpu_plugin Intel Processor Graphics, including Intel HD Graphics and Intel Iris Graphics
GNA Intel GNA openvino_intel_gna_plugin Intel Speech Enabling Developer Kit, Amazon Alexa* Premium Far-Field Developer Kit, Intel Pentium Silver J5005 Processor, Intel Pentium Silver N5000 Processor, Intel Celeron J4005 Processor, Intel Celeron J4105 Processor, Intel Celeron Processor N4100, Intel Celeron Processor N4000, Intel Core i3-8121U Processor, Intel Core i7-1065G7 Processor, Intel Core i7-1060G7 Processor, Intel Core i5-1035G4 Processor, Intel Core i5-1035G7 Processor, Intel Core i5-1035G1 Processor, Intel Core i5-1030G7 Processor, Intel Core i5-1030G4 Processor, Intel Core i3-1005G1 Processor, Intel Core i3-1000G1 Processor, Intel Core i3-1000G4 Processor
VPU Myriad plugin openvino_intel_myriad_plugin Intel® Neural Compute Stick 2 powered by the Intel® Movidius™ Myriad™ X

OpenVINO™ Toolkit also contains several plugins which simplify loading models on several hardware devices:

Plugin Library ShortDescription
Auto openvino_auto_plugin Auto plugin enables selecting Intel device for inference automatically
Auto Batch openvino_auto_batch_plugin Auto batch plugin performs on-the-fly automatic batching (i.e. grouping inference requests together) to improve device utilization, with no programming effort from the user
Hetero openvino_hetero_plugin Heterogeneous execution enables automatic inference splitting between several devices
Multi openvino_auto_plugin Multi plugin enables simultaneous inference of the same model on several devices in parallel

License

OpenVINO™ Toolkit is licensed under Apache License Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.

Documentation

User documentation

The latest documentation for OpenVINO™ Toolkit is available here. This documentation contains detailed information about all OpenVINO components and provides all the important information you may need to create an application based on binary OpenVINO distribution or own OpenVINO version without source code modification.

Developer documentation

Developer documentation contains information about architectural decisions which are applied inside the OpenVINO components. This documentation has all necessary information which could be needed in order to contribute to OpenVINO.

Tutorials

The list of OpenVINO tutorials:

Products which use OpenVINO

System requirements

The system requirements vary depending on platform and are available on dedicated pages:

How to build

See the OpenVINO Wiki to get more information about the OpenVINO build process.

How to contribute

See CONTRIBUTING for details. Thank you!

Get a support

Report questions, issues and suggestions, using:

Additional Resources


* Other names and brands may be claimed as the property of others.

Languages
C++ 80.5%
Python 15.5%
C 2.8%
CMake 0.9%
Cython 0.1%