* changed from generator to unittest * common_test.py tested for pylint 7.96/10 * ChangeRandomUniformOutputType_test pylint 10/10 * replaced generator functionality from compress... * replaced generator functionality in MatMulNormal.. * replaced generator functionality in ShuffleChan... * replaced generator functionality in import_from_mo_test.py * replaced generator functionality in meta_data_test.py * replaced generator functionality in extractor_test.py * replaced generator functionality in interpolate_reshape_test.py * replaced generator functionality in Pack_test.py * replaced generator functionality in rank_decomposer_test.py * replaced generator functionality in size_replacer_test.py * replaced generator functionality in utils_test.py * replaced generator functionality in eltwise_test.py * replaced generator functionality in concat_test.py * replaced generator functionality in tdnn_component_replacer_test.py * replaced generator functionality in MXFFTToDFT_test.py * replaced generator functionality in activation_ext_test.py * replaced generator functionality in AttributedSliceToSlice_test * replaced generator functionality in squeeze_ext_test.py * replaced generator functionality in transpose_ext_test.py * replaced generator functionality in unsqueeze_ext_test.py * replaced generator functionality in ObjectDetectionAPI_test.py * replaced generator functionality in RFFTRealImagToRFFTSplit_test.py * replaced generator functionality in TFFFTToDFT_test.py * replaced generator functionality in WhereDecomposition_test.py * replaced generator functionality in graph_test.py * replaced generator functionality in ConvertGroupedStridedSlice_test.py * replaced generator functionality in dequantize_linear_resolver_test.py * replaced generator functionality in FusedBatchNormTraining_test.py * replaced generator functionality in L2NormFusing_test.py * replaced generator functionality in PreserveRuntimeInfo_test.py * replaced generator functionality in quantize_linear_resolver_test.py * replaced generator functionality in UpsampleToResample_test.py * replaced generator functionality in broadcast_test.py * replaced generator functionality in loader_test.py * replaced generator functionality in cast_test.py * replaced generator functionality in Complex_test.py * replaced generator functionality in dft_signal_size_canonicalization_test.py * replaced generator functionality in div_value_propagation_test.py * replaced generator functionality in einsum_test.py * replaced generator functionality in expand_dims_test.py * replaced generator functionality in ExtractImagePatches_test.py * replaced generator functionality in eye_test.py * replaced generator functionality in gatherelements_test.py * replaced generator functionality in If_test.py * replaced generator functionality in interpolate_test.py * replaced generator functionality in MatMul_test.py * replaced generator functionality in MatMul_value_propagation_test.py * replaced generator functionality in one_hot_test.py * replaced generator functionality in ONNXResize11_test.py * replaced generator functionality in ReduceOps_test.py * replaced generator functionality in reshape_test.py * replaced generator functionality in scatter_test.py * replaced generator functionality in slice_test.py * replaced generator functionality in conversion_with_layout_test.py * replaced generator functionality in conversion_incorrect_models_test.py * replaced generator functionality in conversion_basic_models_test.py * replaced generator functionality in split_test.py * replaced generator functionality in squeeze_test.py * replaced generator functionality in mo_fallback_test_actual.py * replaced generator functionality in layer_to_class_test.py * replaced generator functionality in ir_engine_test.py * replaced generator functionality in mo_fallback_test_tf_fe.py * replaced generator functionality in freeze_placeholder_test.py * replaced generator functionality in broadcasting_test.py * replaced generator functionality in broadcasting_test.py * replaced generator functionality in transpose_test.py * replaced generator functionality in custom_replacement_config_test.py * replaced generator functionality in unsqueeze_test.py * replaced generator functionality in upsample_test.py * replaced generator functionality in upsample_test.py * Removed test-generator dependency from openvino/tools/constraints.txt * replaced generator functionality in freeze_placeholder_test.py * replaced generator functionality in conversion_incorrect_models_test.py * removed test-generator from requirements_dev,constraints.txt,requirements.txt * removed import generator from CorrectPaddingsForPadAfterComplex_test.py * adding test_generator dep.. * revert back constraints.txt * revert back requirements_dev * pytest:- MatMulNormalizer_test.py * pytest:- ShuffleChannelPatternOptimization_test.py * pytest:- import_from_mo_test.py * generator_to_pytest interpolate_reshape_test.py * pytest:- rank_decomposer_test.py * pytest:- size_replacer_test.py * pytest:- concat_test.py * pytest:- eltwise_test.py * pytest:- utils_test.py * pytest:- tdnn_component_replacer_test.py * pytest:- MXFFTToDFT_test.py * pytest:- activation_ext_test.py * pytest:- AttributedSliceToSlice_test.py * pytest:- squeeze_ext_test.py * pytest:- transpose_ext_test.py * pytest:- unsqueeze_ext_test.py * pytest:- ObjectDetectionAPI_test.py * pytest:- RFFTRealImagToRFFTSplit_test.py * pytest:- TFFFTToDFT_test.py * pytest:- WhereDecomposition_test.py * pytest:- graph_test.py * pytest:- ConvertGroupedStridedSlice_test.py * dequantize_linear_resolver_test.py * pytest:- FusedBatchNormTraining_test.py * pytest:- L2NormFusing_test.py * pytest:- PreserveRuntimeInfo_test.py * pytest:- quantize_linear_resolver_test.py * pytest:- UpsampleToResample_test.py * pytest:- broadcast_test.py * pytest:- cast_test.py * pytest:- Complex_test.py * pytest:- dft_signal_size_canonicalization_test.py * pytest:- div_value_propagation_test.py * pytest:- einsum_test.py * pytest:- expand_dims_test.py * pytest:- ExtractImagePatches_test.py * pytest:- eye_test.py * pytest:- gatherelements_test.py * pytest:- If_test.py * pytest:- interpolate_test.py * pytest:- MatMul_test.py * pytest:- MatMul_value_propagation_test.py * pytest:- one_hot_test.py * pytest:- ONNXResize11_test.py * pytest:- ReduceOps_test.py * pytest:- reshape_test.py * scatter_test.py * pytest:- slice_test.py * pytest:- split_test.py * pytest:- squeeze_test.py * pytest:- transpose_test.py * pytest:- unsqueeze_test.py * pytest:- upsample_test.py * pytest:- common_test.py * pytest:- broadcasting_test.py * revert back ir_engine_test.py * revertback :- custom_replacement_config_test.py * revertback:- mo_fallback_test_actual.py * revertback:- mo_fallback_test_tf_fe.py * pytest:- layer_to_class_test.py * revertback:- conversion_basic_models_test.py * revertback:- conversion_incorrect_models_test.py * revertback:- conversion_with_layout_test * revertback:- constraints.txt * revertback:- loader_test.py * pytest:- Pack_test.py * revertback:- freeze_placeholder_test.py --------- Co-authored-by: Andrei Kochin <andrei.kochin@intel.com>
Installation
Installing from PyPi
- Create a virtual environment and activate it, e.g.:
virtualenv -p /usr/bin/python3.7 .env3
source .env3/bin/activate
- Install openvino-dev package, it contains model conversion API:
pip install openvino-dev
This will download all requirements and will install MO in your current virtual environment. If you need only particular frameworks you can specify them manually as optional dependencies in square brackets. E.g. the command below will install dependencies to support ONNX* and TensorFlow2* models:
pip install openvino-dev[onnx,tensorflow2]
To enable support of MxNet* models run:
pip install openvino-dev[mxnet]
To enable support of all frameworks:
pip install openvino-dev[all]
By default, if no frameworks are specified, dependencies to support ONNX* and TensorFlow2* are installed.
Converting models
Setup development environment
If you want to contribute to model conversion API you will need to deploy developer environment. You can do that by following the steps below:
- Create virtual environment and activate it, e.g.:
virtualenv -p /usr/bin/python3.7 .env3
source .env3/bin/activate
- Clone the OpenVINO™ repository and change dir to model-optimizer
git clone https://github.com/openvinotoolkit/openvino
cd openvino/tools/mo/
- Install openvino-mo package for development:
pip install -e .
or run setup.py develop, result will be the same:
python setup.py develop
This will download all requirements and deploy model conversion API for development in your virtual environment: specifically will create *.egg-link into the current directory in your site-packages. As previously noted, you can also manually specify to support only selected frameworks :
pip install -e ".[onnx,tensorflow2]"
How to run unit-tests
- Run tests with:
python -m unittest discover -p "*_test.py" [-s PATH_TO_DIR]
How to capture unit-tests coverage
- Run tests with:
coverage run -m unittest discover -p "*_test.py" [-s PATH_TO_DIR]
- Build html report:
coverage html
How to run code linting
- Run the following command:
pylint openvino/tools/mo/ mo.py