[PyOV] Making offline_transformations a private module (#13213)

This commit is contained in:
Jan Iwaszkiewicz authored and GitHub committed 2022-09-28 18:38:52 +02:00
1 parent d541c3f5f4
commit 2aead0dc3f
13 files changed
+144 -28

No files matched your search

+2
View File
@@ -122,6 +122,8 @@ Icon
# Thumbnails
._*
# Allow these specific folder
!src/openvino/_offline_transformations/
# Files that might appear in the root of a volume
.DocumentRevisions-V100
+1
View File
@@ -43,6 +43,7 @@ packages = [
"openvino.frontend",
"openvino.preprocess",
"openvino.offline_transformations",
"openvino._offline_transformations",
"openvino.runtime",
"openvino.runtime.opset1",
"openvino.runtime.opset2",
@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
# flake8: noqa
from openvino.utils import add_openvino_libs_to_path
add_openvino_libs_to_path()
from openvino.pyopenvino import get_version
__version__ = get_version()
from openvino.pyopenvino._offline_transformations import apply_moc_transformations
from openvino.pyopenvino._offline_transformations import apply_moc_legacy_transformations
from openvino.pyopenvino._offline_transformations import apply_pot_transformations
from openvino.pyopenvino._offline_transformations import apply_low_latency_transformation
from openvino.pyopenvino._offline_transformations import apply_pruning_transformation
from openvino.pyopenvino._offline_transformations import generate_mapping_file
from openvino.pyopenvino._offline_transformations import apply_make_stateful_transformation
from openvino.pyopenvino._offline_transformations import compress_model_transformation
from openvino.pyopenvino._offline_transformations import compress_quantize_weights_transformation
from openvino.pyopenvino._offline_transformations import convert_sequence_to_tensor_iterator_transformation
@@ -3,20 +3,108 @@
# SPDX-License-Identifier: Apache-2.0
# flake8: noqa
# type: ignore
from openvino.utils import add_openvino_libs_to_path
import warnings
warnings.warn(message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future, use `openvino.runtime.passes` instead!",
category=FutureWarning)
from openvino.utils import add_openvino_libs_to_path, deprecated
add_openvino_libs_to_path()
from openvino.pyopenvino import get_version
from openvino.pyopenvino import serialize as _base_serialize
import openvino.pyopenvino._offline_transformations as _base
__version__ = get_version()
from openvino.pyopenvino.offline_transformations import apply_moc_transformations
from openvino.pyopenvino.offline_transformations import apply_moc_legacy_transformations
from openvino.pyopenvino.offline_transformations import apply_pot_transformations
from openvino.pyopenvino.offline_transformations import apply_low_latency_transformation
from openvino.pyopenvino.offline_transformations import apply_pruning_transformation
from openvino.pyopenvino.offline_transformations import generate_mapping_file
from openvino.pyopenvino.offline_transformations import apply_make_stateful_transformation
from openvino.pyopenvino.offline_transformations import compress_model_transformation
from openvino.pyopenvino.offline_transformations import compress_quantize_weights_transformation
from openvino.pyopenvino.offline_transformations import convert_sequence_to_tensor_iterator_transformation
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future, use `openvino.runtime.passes` instead!")
def serialize(model, xml_path, bin_path, version):
_base_serialize(model, xml_path, bin_path, version)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def apply_moc_transformations(model, cf):
_base.apply_moc_transformations(model, cf)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def apply_moc_legacy_transformations(model, params_with_custom_types):
_base.apply_moc_legacy_transformations(model, params_with_custom_types)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def apply_pot_transformations(model, device):
_base.apply_pot_transformations(model, device)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def apply_low_latency_transformation(model, use_const_initializer):
_base.apply_low_latency_transformation(model, use_const_initializer)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def apply_pruning_transformation(model):
_base.apply_pruning_transformation(model)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def generate_mapping_file(model, path, extract_names):
_base.generate_mapping_file(model, path, extract_names)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def apply_make_stateful_transformation(model, param_res_names):
_base.apply_make_stateful_transformation(model, param_res_names)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def compress_model_transformation(model):
_base.compress_model_transformation(model)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def compress_quantize_weights_transformation(model):
_base.compress_quantize_weights_transformation(model)
@deprecated(version="2023.1",
message="The module is private and following namespace "
"`offline_transformations` will be removed in "
"the future.")
def convert_sequence_to_tensor_iterator_transformation(model):
_base.convert_sequence_to_tensor_iterator_transformation(model)
@@ -25,8 +25,10 @@
namespace py = pybind11;
void regmodule_offline_transformations(py::module m) {
py::module m_offline_transformations = m.def_submodule("offline_transformations", "Offline transformations module");
m_offline_transformations.doc() = "openvino.offline_transformations module contains different offline passes.";
py::module m_offline_transformations =
m.def_submodule("_offline_transformations", "Offline transformations module");
m_offline_transformations.doc() =
"openvino._offline_transformations is a private module contains different offline passes.";
m_offline_transformations.def(
"apply_moc_transformations",
@@ -241,6 +241,6 @@ PYBIND11_MODULE(pyopenvino, m) {
regclass_frontend_ProgressReporterExtension(m);
regclass_frontend_OpExtension(m);
// transformations
// transformations - private module
regmodule_offline_transformations(m);
}
@@ -5,7 +5,7 @@
import openvino.preprocess as ov_pre
import openvino.runtime as ov_run
import openvino.frontend as ov_front
import openvino.offline_transformations as ov_off_transf
import openvino._offline_transformations as ov_off_transf
import openvino.pyopenvino as ov_py
@@ -11,9 +11,9 @@ from openvino.runtime import Model
def get_available_transformations():
try:
from openvino.offline_transformations import apply_low_latency_transformation # pylint: disable=import-error,no-name-in-module
from openvino.offline_transformations import apply_make_stateful_transformation # pylint: disable=import-error,no-name-in-module
from openvino.offline_transformations import apply_pruning_transformation # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import apply_low_latency_transformation # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import apply_make_stateful_transformation # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import apply_pruning_transformation # pylint: disable=import-error,no-name-in-module
return {
'MakeStateful': apply_make_stateful_transformation,
'LowLatency2': apply_low_latency_transformation,
@@ -35,20 +35,21 @@ def apply_user_transformations(func: object, transforms: list):
def apply_moc_transformations(func: object):
from openvino.offline_transformations import apply_moc_transformations # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import apply_moc_transformations # pylint: disable=import-error,no-name-in-module
apply_moc_transformations(func, False)
def apply_moc_legacy_transformations(func: object, params_with_custom_types: List[str]):
from openvino.offline_transformations import apply_moc_legacy_transformations # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import apply_moc_legacy_transformations # pylint: disable=import-error,no-name-in-module
apply_moc_legacy_transformations(func, params_with_custom_types)
def compress_model(func: object):
from openvino.offline_transformations import compress_model_transformation # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import compress_model_transformation # pylint: disable=import-error,no-name-in-module
compress_model_transformation(func)
def apply_offline_transformations(func: Model, argv: argparse.Namespace):
from openvino.tools.mo.back.preprocessing import apply_preprocessing # pylint: disable=no-name-in-module,import-error
+1 -1
View File
@@ -23,7 +23,7 @@ from openvino.tools.mo.back.ie_ir_ver_2.emitter import append_ir_info
# pylint: disable=no-name-in-module,import-error
from openvino.frontend import FrontEndManager
from openvino.offline_transformations import generate_mapping_file
from openvino._offline_transformations import generate_mapping_file
from openvino.runtime import serialize
@@ -23,7 +23,7 @@ def moc_emit_ir(ngraph_function: Model, argv: argparse.Namespace):
apply_moc_legacy_transformations
apply_moc_transformations(ngraph_function)
from openvino.offline_transformations import compress_quantize_weights_transformation
from openvino._offline_transformations import compress_quantize_weights_transformation
compress_quantize_weights_transformation(ngraph_function)
if argv.framework == "onnx":
@@ -48,10 +48,10 @@ def import_core_modules(silent: bool, path_to_module: str):
:return: True if all imports were successful and False otherwise
"""
try:
from openvino.offline_transformations import apply_moc_transformations, apply_moc_legacy_transformations,\
from openvino._offline_transformations import apply_moc_transformations, apply_moc_legacy_transformations,\
apply_low_latency_transformation # pylint: disable=import-error,no-name-in-module
from openvino.offline_transformations import apply_make_stateful_transformation, generate_mapping_file # pylint: disable=import-error,no-name-in-module
from openvino.offline_transformations import generate_mapping_file, apply_make_stateful_transformation # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import apply_make_stateful_transformation, generate_mapping_file # pylint: disable=import-error,no-name-in-module
from openvino._offline_transformations import generate_mapping_file, apply_make_stateful_transformation # pylint: disable=import-error,no-name-in-module
from openvino.runtime import Model, serialize, get_version # pylint: disable=import-error,no-name-in-module
from openvino.runtime.op import Parameter # pylint: disable=import-error,no-name-in-module
+1 -1
View File
@@ -36,7 +36,7 @@ class InternalError(BasicError):
def classify_error_type(e):
patterns = [
# Example: No module named 'openvino.offline_transformations.offline_transformations_api'
# Example: No module named 'openvino._offline_transformations.offline_transformations_api'
r"No module named \'\S+\'",
# Example: cannot import name 'IECore' from 'openvino.inference_engine' (unknown location)
r"cannot import name \'\S+\'",
+1 -1
View File
@@ -8,7 +8,7 @@ from openvino.tools.mo.utils.error import classify_error_type
class TestingErrorClassifier(unittest.TestCase):
def test_no_module(self):
message = "No module named 'openvino.offline_transformations.offline_transformations_api'"
message = "No module named 'openvino._offline_transformations.offline_transformations_api'"
self.assertEqual(classify_error_type(message), message)
def test_no_module_neg(self):