diff --git a/nncf/__init__.py b/nncf/__init__.py index 621a94ce9f5..75552c665fe 100644 --- a/nncf/__init__.py +++ b/nncf/__init__.py @@ -12,6 +12,7 @@ Neural Network Compression Framework (NNCF) for enhanced OpenVINO™ inference. """ +from nncf.common.graph.graph import NNCFGraph as NNCFGraph from nncf.common.logging import nncf_logger as nncf_logger from nncf.common.logging.logger import disable_logging as disable_logging from nncf.common.logging.logger import set_log_level as set_log_level diff --git a/nncf/common/hardware/config.py b/nncf/common/hardware/config.py index 42b8ad9592c..dc1c06c922c 100644 --- a/nncf/common/hardware/config.py +++ b/nncf/common/hardware/config.py @@ -20,12 +20,12 @@ import nncf from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.logging import nncf_logger -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.utils.helpers import product_dict from nncf.common.utils.os import safe_open from nncf.definitions import HW_CONFIG_RELATIVE_DIR from nncf.definitions import NNCF_PACKAGE_ROOT_DIR +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig class HWConfigType(Enum): diff --git a/nncf/common/quantization/initialization/range.py b/nncf/common/quantization/initialization/range.py index ff53ccc9427..cb69c08eb3e 100644 --- a/nncf/common/quantization/initialization/range.py +++ b/nncf/common/quantization/initialization/range.py @@ -14,11 +14,11 @@ from nncf.common.graph.utils import get_reduction_axes from nncf.common.initialization.dataloader import NNCFDataLoader -from nncf.common.quantization.structs import QuantizationScheme -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.tensor_statistics.collectors import ReductionAxes from nncf.config.schemata.defaults import NUM_INIT_SAMPLES from nncf.experimental.common.tensor_statistics.collectors import AggregationAxes +from nncf.quantization.structs import QuantizationScheme +from nncf.quantization.structs import QuantizerGroup class RangeInitConfig: diff --git a/nncf/common/quantization/quantizers.py b/nncf/common/quantization/quantizers.py deleted file mode 100644 index 166af882f5d..00000000000 --- a/nncf/common/quantization/quantizers.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (c) 2025 Intel Corporation -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from typing import Tuple - - -def calculate_symmetric_level_ranges(num_bits: int, signed: bool, narrow_range: bool = False) -> Tuple[int, int]: - """ - Calculates the numbers of the low and high quant and the number of - quantization levels for the symmetric quantization scheme. - - :param num_bits: The bitwidth of the quantization. - :param signed: The flag specifying type of the symmetric quantization scheme - if it is True then the symmetric quantization scheme is the signed and - the un-signed otherwise. - :param narrow_range: True if the range of quantized values is reduced by 1 compared to the - naive case, False otherwise. - :return: A Tuple - level_low - the low quant number - level_high - the high quant number - """ - levels = 2**num_bits - - if signed: - level_high = (levels // 2) - 1 - level_low = -(levels // 2) - else: - level_high = levels - 1 - level_low = 0 - - if narrow_range: - if level_low < 0: - level_low += 1 - else: - level_high -= 1 - - return level_low, level_high - - -def calculate_asymmetric_level_ranges(num_bits: int, narrow_range: bool = False) -> Tuple[int, int]: - """ - Calculates the numbers of the low and high quant and the number of - quantization levels for the asymmetric quantization scheme. - - :param num_bits: The bitwidth of the quantization - :param narrow_range: The flag specifying quantization range if it is True - then [1; 2^num_bits - 1] and [0; 2^num_bits - 1] otherwise - :return: A Tuple - level_low - the low quant number - level_high - the high quant number - """ - levels = 2**num_bits - level_high = levels - 1 - level_low = 0 - - if narrow_range: - level_low = level_low + 1 - - return level_low, level_high - - -def get_num_levels(level_low: int, level_high: int) -> int: - return level_high - level_low + 1 diff --git a/nncf/common/scopes.py b/nncf/common/scopes.py index e5423c69d3f..d289eadde58 100644 --- a/nncf/common/scopes.py +++ b/nncf/common/scopes.py @@ -17,7 +17,7 @@ from nncf.common.graph import NNCFNode from nncf.common.graph import NNCFNodeName from nncf.common.logging import nncf_logger -from nncf.common.quantization.structs import QuantizerId +from nncf.quantization.structs import QuantizerId from nncf.scopes import IgnoredScope from nncf.scopes import convert_ignored_scope_to_list diff --git a/nncf/experimental/quantization/quantizer.py b/nncf/experimental/quantization/quantizer.py index 7307726756a..682127ea629 100644 --- a/nncf/experimental/quantization/quantizer.py +++ b/nncf/experimental/quantization/quantizer.py @@ -14,7 +14,7 @@ from typing import TypeVar from nncf.common.graph.graph import NNCFGraph -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup TModel = TypeVar("TModel") diff --git a/nncf/experimental/tensorflow/quantization/algorithm.py b/nncf/experimental/tensorflow/quantization/algorithm.py index 9e45ad084d7..4231b497d66 100644 --- a/nncf/experimental/tensorflow/quantization/algorithm.py +++ b/nncf/experimental/tensorflow/quantization/algorithm.py @@ -19,9 +19,6 @@ from nncf.common.graph.transformations.commands import TransformationPriority from nncf.common.graph.utils import get_first_nodes_of_type from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.stateful_classes_registry import TF_STATEFUL_CLASSES from nncf.common.statistics import NNCFStatistics from nncf.common.utils.backend import copy_model @@ -34,6 +31,9 @@ from nncf.experimental.tensorflow.quantization.init_range import RangeInitializerV2 from nncf.experimental.tensorflow.quantization.init_range import TFRangeInitParamsV2 from nncf.experimental.tensorflow.quantization.quantizers import create_quantizer +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.structs import QuantizerConfig from nncf.tensorflow.algorithm_selector import TF_COMPRESSION_ALGORITHMS from nncf.tensorflow.graph.metatypes.tf_ops import TFOpWithWeightsMetatype from nncf.tensorflow.graph.transformations.commands import TFInsertionCommand diff --git a/nncf/experimental/tensorflow/quantization/init_range.py b/nncf/experimental/tensorflow/quantization/init_range.py index f6093b1ab5a..905f77baa13 100644 --- a/nncf/experimental/tensorflow/quantization/init_range.py +++ b/nncf/experimental/tensorflow/quantization/init_range.py @@ -17,10 +17,10 @@ from nncf.common.logging.progress_bar import ProgressBar from nncf.common.quantization.initialization.range import RangeInitCollectorParams from nncf.common.quantization.initialization.range import RangeInitConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.experimental.tensorflow.nncf_network import NNCFNetwork from nncf.experimental.tensorflow.quantization.quantizers import NNCF_QUANTIZATION_OPERATIONS_V2 from nncf.experimental.tensorflow.quantization.quantizers import InputType +from nncf.quantization.structs import QuantizerGroup from nncf.tensorflow.quantization.init_range import RangeInitializer from nncf.tensorflow.quantization.init_range import TFRangeInitParams from nncf.tensorflow.tensor_statistics.reduction import get_axes diff --git a/nncf/experimental/tensorflow/quantization/quantizers.py b/nncf/experimental/tensorflow/quantization/quantizers.py index 6cf6ccda8af..1c87369b402 100644 --- a/nncf/experimental/tensorflow/quantization/quantizers.py +++ b/nncf/experimental/tensorflow/quantization/quantizers.py @@ -13,8 +13,8 @@ import tensorflow as tf -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode from nncf.common.utils.registry import Registry +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.tensorflow.layers.operation import InputType from nncf.tensorflow.quantization.quantizers import AsymmetricQuantizer from nncf.tensorflow.quantization.quantizers import SymmetricQuantizer diff --git a/nncf/experimental/torch/fx/quantization/quantize_model.py b/nncf/experimental/torch/fx/quantization/quantize_model.py index 5b97bc42b73..d44c33a9372 100644 --- a/nncf/experimental/torch/fx/quantization/quantize_model.py +++ b/nncf/experimental/torch/fx/quantization/quantize_model.py @@ -24,7 +24,6 @@ import nncf from nncf.common.factory import NNCFGraphFactory from nncf.common.logging import nncf_logger -from nncf.common.quantization.structs import QuantizationPreset from nncf.data import Dataset from nncf.experimental.torch.fx.quantization.backend_parameters import is_weight_compression_needed from nncf.experimental.torch.fx.transformations import apply_quantization_transformations @@ -40,6 +39,7 @@ from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.algorithms.post_training.algorithm import PostTrainingQuantization from nncf.quantization.algorithms.weight_compression.algorithm import WeightCompression +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope DEFAULT_RANGE_TYPE = "mean_min_max" diff --git a/nncf/experimental/torch/fx/quantization/quantizer/openvino_adapter.py b/nncf/experimental/torch/fx/quantization/quantizer/openvino_adapter.py index 2283d9d9dbb..dc6079ee5e5 100644 --- a/nncf/experimental/torch/fx/quantization/quantizer/openvino_adapter.py +++ b/nncf/experimental/torch/fx/quantization/quantizer/openvino_adapter.py @@ -12,9 +12,9 @@ import torch.fx from nncf.common.graph.graph import NNCFGraph -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.experimental.quantization.quantizer import Quantizer from nncf.experimental.torch.fx.quantization.quantizer.openvino_quantizer import OpenVINOQuantizer +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup class OpenVINOQuantizerAdapter(Quantizer): diff --git a/nncf/experimental/torch/fx/quantization/quantizer/openvino_quantizer.py b/nncf/experimental/torch/fx/quantization/quantizer/openvino_quantizer.py index 8cea65d5825..572716a71ca 100644 --- a/nncf/experimental/torch/fx/quantization/quantizer/openvino_quantizer.py +++ b/nncf/experimental/torch/fx/quantization/quantizer/openvino_quantizer.py @@ -25,11 +25,6 @@ import nncf from nncf.common.graph.graph import NNCFGraph from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationRule -from nncf.common.quantization.quantizer_setup import QuantizationPointBase -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme from nncf.experimental.torch.fx.nncf_graph_builder import GraphConverter from nncf.experimental.torch.fx.node_utils import get_graph_node_by_name from nncf.experimental.torch.fx.transformations import fold_constant_except_qdq @@ -40,6 +35,11 @@ from nncf.quantization.advanced_parameters import OverflowFix from nncf.quantization.advanced_parameters import QuantizationParameters from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationRule +from nncf.quantization.quantizer_setup import QuantizationPointBase +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme from nncf.scopes import IgnoredScope from nncf.torch.model_graph_manager import get_weight_tensor_port_ids diff --git a/nncf/experimental/torch/fx/quantization/quantizer/torch_ao_adapter.py b/nncf/experimental/torch/fx/quantization/quantizer/torch_ao_adapter.py index f27e6b6e2b3..f0a8d007e05 100644 --- a/nncf/experimental/torch/fx/quantization/quantizer/torch_ao_adapter.py +++ b/nncf/experimental/torch/fx/quantization/quantizer/torch_ao_adapter.py @@ -23,15 +23,15 @@ import nncf from nncf.common.graph.graph import NNCFGraph from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import QuantizationPointBase -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig from nncf.experimental.quantization.quantizer import Quantizer from nncf.experimental.torch.fx.nncf_graph_builder import GraphConverter +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import QuantizationPointBase +from nncf.quantization.quantizer_setup import SingleConfigQuantizationPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig EdgeOrNode = Union[Tuple[torch.fx.Node, torch.fx.Node]] diff --git a/nncf/experimental/torch2/quantization/quantize_model.py b/nncf/experimental/torch2/quantization/quantize_model.py index efa17fc11c9..768b059e110 100644 --- a/nncf/experimental/torch2/quantization/quantize_model.py +++ b/nncf/experimental/torch2/quantization/quantize_model.py @@ -15,7 +15,6 @@ import torch import nncf -from nncf.common.quantization.structs import QuantizationPreset from nncf.data import Dataset from nncf.experimental.torch2.function_hook import wrap_model from nncf.experimental.torch2.function_hook.nncf_graph.nncf_graph_builder import GraphModelWrapper @@ -25,6 +24,7 @@ from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.algorithms.post_training.algorithm import PostTrainingQuantization from nncf.quantization.quantize_model import warning_model_no_batchwise_support +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope from nncf.torch.graph.operator_metatypes import OPERATIONS_OUTPUT_HAS_NO_BATCH_AXIS diff --git a/nncf/onnx/quantization/default_quantization.py b/nncf/onnx/quantization/default_quantization.py index 27f55e86225..cf8cdc74625 100644 --- a/nncf/onnx/quantization/default_quantization.py +++ b/nncf/onnx/quantization/default_quantization.py @@ -9,10 +9,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.onnx.graph.metatypes import onnx_metatypes from nncf.onnx.graph.metatypes.groups import INPUTS_QUANTIZABLE_OPERATIONS from nncf.onnx.graph.metatypes.groups import QUANTIZE_AGNOSTIC_OPERATIONS +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait # If a metatype is not in this list, then it is considered to be QuantizationTrait.NON_QUANTIZABLE. diff --git a/nncf/onnx/quantization/quantize_model.py b/nncf/onnx/quantization/quantize_model.py index 6fe92206444..81dea04a72a 100644 --- a/nncf/onnx/quantization/quantize_model.py +++ b/nncf/onnx/quantization/quantize_model.py @@ -15,7 +15,6 @@ import nncf from nncf.common.logging.logger import nncf_logger -from nncf.common.quantization.structs import QuantizationPreset from nncf.data import Dataset from nncf.onnx.graph.metatypes.groups import OPERATIONS_OUTPUT_HAS_NO_BATCH_AXIS from nncf.onnx.graph.nncf_graph_builder import GraphConverter @@ -32,6 +31,7 @@ from nncf.quantization.algorithms.post_training.algorithm import PostTrainingQuantization from nncf.quantization.quantize_model import quantize_with_tune_hyperparams from nncf.quantization.quantize_model import warning_model_no_batchwise_support +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope TTensor = TypeVar("TTensor") diff --git a/nncf/openvino/quantization/default_quantization.py b/nncf/openvino/quantization/default_quantization.py index 6db0ae9a141..db93f712e68 100644 --- a/nncf/openvino/quantization/default_quantization.py +++ b/nncf/openvino/quantization/default_quantization.py @@ -9,10 +9,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.openvino.graph.metatypes import openvino_metatypes as ov_metatypes from nncf.openvino.graph.metatypes.groups import INPUTS_QUANTIZABLE_OPERATIONS from nncf.openvino.graph.metatypes.groups import QUANTIZE_AGNOSTIC_OPERATIONS +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait # If a metatype is not in this list, then it is considered to be QuantizationTrait.NON_QUANTIZABLE. diff --git a/nncf/openvino/quantization/quantize_model.py b/nncf/openvino/quantization/quantize_model.py index 423cc026a5e..1d978586528 100644 --- a/nncf/openvino/quantization/quantize_model.py +++ b/nncf/openvino/quantization/quantize_model.py @@ -19,7 +19,6 @@ from nncf.common.factory import NNCFGraphFactory from nncf.common.factory import StatisticsAggregatorFactory from nncf.common.logging import nncf_logger -from nncf.common.quantization.structs import QuantizationPreset from nncf.data import Dataset from nncf.openvino.graph.metatypes.groups import OPERATIONS_OUTPUT_HAS_NO_BATCH_AXIS from nncf.openvino.graph.metatypes.openvino_metatypes import OVIfMetatype @@ -53,6 +52,7 @@ from nncf.quantization.quantize_model import warning_model_no_batchwise_support from nncf.quantization.statistics_caching import cache_weight_compression_statistics from nncf.quantization.statistics_caching import register_statistics_for_algorithm +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope from nncf.scopes import validate_ignored_scope diff --git a/nncf/quantization/__init__.py b/nncf/quantization/__init__.py index 8996662a58f..77f82d30efb 100644 --- a/nncf/quantization/__init__.py +++ b/nncf/quantization/__init__.py @@ -9,7 +9,9 @@ # See the License for the specific language governing permissions and # limitations under the License. """Post-training quantization APIs.""" -from nncf.common.quantization.structs import QuantizationPreset as QuantizationPreset from nncf.quantization.quantize_model import compress_weights as compress_weights from nncf.quantization.quantize_model import quantize as quantize from nncf.quantization.quantize_model import quantize_with_accuracy_control as quantize_with_accuracy_control +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup as SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizationPreset as QuantizationPreset +from nncf.quantization.structs import QuantizationScheme as QuantizationScheme diff --git a/nncf/quantization/advanced_parameters.py b/nncf/quantization/advanced_parameters.py index afa7b6fe61f..697946561b3 100644 --- a/nncf/quantization/advanced_parameters.py +++ b/nncf/quantization/advanced_parameters.py @@ -21,13 +21,13 @@ from typing import Any, Dict, Optional, Union import nncf -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationRule -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode from nncf.common.utils.api_marker import api from nncf.parameters import StrEnum +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationRule from nncf.quantization.range_estimator import AggregatorType from nncf.quantization.range_estimator import RangeEstimatorParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizationScheme as QuantizationMode @api(canonical_alias="nncf.OverflowFix") diff --git a/nncf/quantization/algorithms/accuracy_control/algorithm.py b/nncf/quantization/algorithms/accuracy_control/algorithm.py index f508652d87f..bd487c91430 100644 --- a/nncf/quantization/algorithms/accuracy_control/algorithm.py +++ b/nncf/quantization/algorithms/accuracy_control/algorithm.py @@ -18,7 +18,6 @@ from nncf.common.graph import NNCFNode from nncf.common.graph.utils import get_number_of_quantized_ops from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_removal import revert_operations_to_floating_point_precision from nncf.common.utils.backend import BackendType from nncf.common.utils.backend import get_backend from nncf.common.utils.os import get_available_cpu_count @@ -30,6 +29,7 @@ from nncf.quantization.algorithms.accuracy_control.evaluator import Evaluator from nncf.quantization.algorithms.accuracy_control.evaluator import MetricResults from nncf.quantization.algorithms.accuracy_control.ranker import Ranker +from nncf.quantization.quantizer_removal import revert_operations_to_floating_point_precision TModel = TypeVar("TModel") TTensor = TypeVar("TTensor") diff --git a/nncf/quantization/algorithms/accuracy_control/ranker.py b/nncf/quantization/algorithms/accuracy_control/ranker.py index 268476408da..51bf0dea7ef 100644 --- a/nncf/quantization/algorithms/accuracy_control/ranker.py +++ b/nncf/quantization/algorithms/accuracy_control/ranker.py @@ -19,8 +19,6 @@ from nncf.common.graph import NNCFNode from nncf.common.logging import nncf_logger from nncf.common.logging.track_progress import track -from nncf.common.quantization.quantizer_removal import find_quantizer_nodes_to_cut -from nncf.common.quantization.quantizer_removal import revert_operations_to_floating_point_precision from nncf.common.utils.backend import BackendType from nncf.common.utils.backend import get_backend from nncf.common.utils.timer import timer @@ -31,6 +29,8 @@ from nncf.quantization.algorithms.accuracy_control.rank_functions import create_normalized_mse_func from nncf.quantization.algorithms.accuracy_control.subset_selection import select_subset from nncf.quantization.passes import find_shapeof_subgraphs +from nncf.quantization.quantizer_removal import find_quantizer_nodes_to_cut +from nncf.quantization.quantizer_removal import revert_operations_to_floating_point_precision TModel = TypeVar("TModel") TPModel = TypeVar("TPModel") diff --git a/nncf/quantization/algorithms/hyperparameter_tuner/param_grid.py b/nncf/quantization/algorithms/hyperparameter_tuner/param_grid.py index e4be3bbb3cb..952fb70d7ed 100644 --- a/nncf/quantization/algorithms/hyperparameter_tuner/param_grid.py +++ b/nncf/quantization/algorithms/hyperparameter_tuner/param_grid.py @@ -12,8 +12,6 @@ import itertools from typing import Any, Dict, List -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationRule -from nncf.common.quantization.structs import QuantizationPreset from nncf.common.utils.backend import BackendType from nncf.quantization.advanced_parameters import AdvancedSmoothQuantParameters from nncf.quantization.algorithms.bias_correction.algorithm import BiasCorrection @@ -22,10 +20,12 @@ from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization from nncf.quantization.algorithms.pipeline import Pipeline from nncf.quantization.algorithms.smooth_quant.algorithm import SmoothQuant +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationRule from nncf.quantization.range_estimator import AggregatorType from nncf.quantization.range_estimator import RangeEstimatorParameters from nncf.quantization.range_estimator import StatisticsCollectorParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizationPreset ParamGrid = Dict[str, List[Any]] diff --git a/nncf/quantization/algorithms/min_max/algorithm.py b/nncf/quantization/algorithms/min_max/algorithm.py index 5eb622070dd..dd032c209fc 100644 --- a/nncf/quantization/algorithms/min_max/algorithm.py +++ b/nncf/quantization/algorithms/min_max/algorithm.py @@ -31,19 +31,7 @@ from nncf.common.hardware.config import get_hw_config_type from nncf.common.insertion_point_graph import InsertionPointGraph from nncf.common.logging import nncf_logger -from nncf.common.quantization.config_assignment import assign_qconfig_lists_to_modules from nncf.common.quantization.initialization.range import RangeInitCollectorParams -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationRule -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver -from nncf.common.quantization.quantizer_propagation.structs import IgnoreReason -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizableWeightedLayerNode -from nncf.common.quantization.structs import QuantizationConstraints -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.tensor_statistics.statistic_point import StatisticPoint from nncf.common.tensor_statistics.statistic_point import StatisticPointsContainer from nncf.common.utils.backend import BackendType @@ -60,13 +48,25 @@ from nncf.quantization.advanced_parameters import QuantizationParameters from nncf.quantization.advanced_parameters import changes_asdict from nncf.quantization.algorithms.algorithm import Algorithm +from nncf.quantization.config_assignment import assign_qconfig_lists_to_modules from nncf.quantization.fake_quantize import calculate_convert_parameters from nncf.quantization.fake_quantize import calculate_quantizer_parameters from nncf.quantization.passes import transform_to_inference_graph +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationRule +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.quantizer_propagation.structs import IgnoreReason +from nncf.quantization.quantizer_setup import SingleConfigQuantizationPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.quantization.range_estimator import AggregatorType from nncf.quantization.range_estimator import RangeEstimatorParameters from nncf.quantization.range_estimator import RangeEstimatorParametersSet from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizableWeightedLayerNode +from nncf.quantization.structs import QuantizationConstraints +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.scopes import IgnoredScope from nncf.scopes import get_ignored_node_names_from_ignored_scope diff --git a/nncf/quantization/algorithms/min_max/backend.py b/nncf/quantization/algorithms/min_max/backend.py index 253aaba43ec..556a0d9f01b 100644 --- a/nncf/quantization/algorithms/min_max/backend.py +++ b/nncf/quantization/algorithms/min_max/backend.py @@ -20,14 +20,14 @@ from nncf.common.graph.transformations.commands import TargetPoint from nncf.common.graph.transformations.commands import TargetType from nncf.common.hardware.config import HWConfig -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.structs import QuantizerConfig from nncf.experimental.common.tensor_statistics.collectors import TensorReducerBase from nncf.parameters import ModelType from nncf.parameters import TargetDevice from nncf.quantization.fake_quantize import FakeConvertParameters from nncf.quantization.fake_quantize import FakeQuantizeParameters +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizerConfig TModel = TypeVar("TModel") diff --git a/nncf/quantization/algorithms/min_max/onnx_backend.py b/nncf/quantization/algorithms/min_max/onnx_backend.py index 77d5ed665f0..e9c263503cf 100644 --- a/nncf/quantization/algorithms/min_max/onnx_backend.py +++ b/nncf/quantization/algorithms/min_max/onnx_backend.py @@ -20,7 +20,6 @@ from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.commands import TransformationCommand from nncf.common.hardware.config import HWConfig -from nncf.common.quantization.structs import QuantizerConfig from nncf.experimental.common.tensor_statistics.collectors import REDUCERS_MAP from nncf.experimental.common.tensor_statistics.collectors import TensorReducerBase from nncf.onnx.graph.metatypes import onnx_metatypes as om @@ -40,6 +39,7 @@ from nncf.quantization.fake_quantize import FakeConvertParameters from nncf.quantization.fake_quantize import FakeQuantizeParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizerConfig class ONNXMinMaxAlgoBackend(MinMaxAlgoBackend): diff --git a/nncf/quantization/algorithms/min_max/openvino_backend.py b/nncf/quantization/algorithms/min_max/openvino_backend.py index 7c4ca43bebc..2ec7236b3f2 100644 --- a/nncf/quantization/algorithms/min_max/openvino_backend.py +++ b/nncf/quantization/algorithms/min_max/openvino_backend.py @@ -16,7 +16,6 @@ from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.graph.transformations.commands import TargetType from nncf.common.hardware.config import HWConfig -from nncf.common.quantization.structs import QuantizerConfig from nncf.experimental.common.tensor_statistics.collectors import TensorReducerBase from nncf.openvino.graph.layer_attributes import OVLayerAttributes from nncf.openvino.graph.metatypes import openvino_metatypes as om @@ -36,6 +35,7 @@ from nncf.quantization.fake_quantize import FakeConvertParameters from nncf.quantization.fake_quantize import FakeQuantizeParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizerConfig class OVMinMaxAlgoBackend(MinMaxAlgoBackend): diff --git a/nncf/quantization/algorithms/min_max/torch_backend.py b/nncf/quantization/algorithms/min_max/torch_backend.py index 189b5ab2a9a..d59d508017b 100644 --- a/nncf/quantization/algorithms/min_max/torch_backend.py +++ b/nncf/quantization/algorithms/min_max/torch_backend.py @@ -22,7 +22,6 @@ from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.commands import TransformationCommand from nncf.common.hardware.config import HWConfig -from nncf.common.quantization.structs import QuantizerConfig from nncf.experimental.common.check_feature import is_experimental_torch_tracing_enabled from nncf.experimental.common.tensor_statistics.collectors import REDUCERS_MAP from nncf.experimental.common.tensor_statistics.collectors import TensorReducerBase @@ -32,6 +31,7 @@ from nncf.quantization.fake_quantize import FakeConvertParameters from nncf.quantization.fake_quantize import FakeQuantizeParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizerConfig from nncf.torch.graph.graph import PTNNCFGraph from nncf.torch.graph.graph import PTTargetPoint from nncf.torch.graph.operator_metatypes import ELEMENTWISE_OPERATIONS diff --git a/nncf/quantization/algorithms/min_max/torch_fx_backend.py b/nncf/quantization/algorithms/min_max/torch_fx_backend.py index 564d6b12a1d..cb964cca590 100644 --- a/nncf/quantization/algorithms/min_max/torch_fx_backend.py +++ b/nncf/quantization/algorithms/min_max/torch_fx_backend.py @@ -22,7 +22,6 @@ from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.commands import TransformationCommand from nncf.common.hardware.config import HWConfig -from nncf.common.quantization.structs import QuantizerConfig from nncf.experimental.common.tensor_statistics.collectors import REDUCERS_MAP from nncf.experimental.common.tensor_statistics.collectors import TensorReducerBase from nncf.experimental.torch.fx.commands import FXApplyTransformationCommand @@ -34,6 +33,7 @@ from nncf.quantization.fake_quantize import FakeConvertParameters from nncf.quantization.fake_quantize import FakeQuantizeParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizerConfig from nncf.torch.graph.graph import PTNNCFGraph from nncf.torch.graph.graph import PTTargetPoint from nncf.torch.graph.operator_metatypes import ELEMENTWISE_OPERATIONS diff --git a/nncf/quantization/algorithms/post_training/algorithm.py b/nncf/quantization/algorithms/post_training/algorithm.py index 850527381f4..75db5e32789 100644 --- a/nncf/quantization/algorithms/post_training/algorithm.py +++ b/nncf/quantization/algorithms/post_training/algorithm.py @@ -14,7 +14,6 @@ from nncf import Dataset from nncf.common.graph.graph import NNCFGraph -from nncf.common.quantization.structs import QuantizationPreset from nncf.common.tensor_statistics.statistic_point import StatisticPointsContainer from nncf.common.utils.backend import BackendType from nncf.parameters import ModelType @@ -23,6 +22,7 @@ from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.algorithms.algorithm import Algorithm from nncf.quantization.algorithms.post_training.pipeline import create_ptq_pipeline +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope TModel = TypeVar("TModel") diff --git a/nncf/quantization/algorithms/post_training/pipeline.py b/nncf/quantization/algorithms/post_training/pipeline.py index 795414fa454..d9db06c79e6 100644 --- a/nncf/quantization/algorithms/post_training/pipeline.py +++ b/nncf/quantization/algorithms/post_training/pipeline.py @@ -12,7 +12,6 @@ from typing import Optional, TypeVar from nncf.common.deprecation import warning_deprecated -from nncf.common.quantization.structs import QuantizationPreset from nncf.parameters import ModelType from nncf.parameters import QuantizationMode from nncf.parameters import TargetDevice @@ -25,6 +24,7 @@ from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization from nncf.quantization.algorithms.pipeline import Pipeline from nncf.quantization.algorithms.smooth_quant.algorithm import SmoothQuant +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope TModel = TypeVar("TModel") diff --git a/nncf/quantization/algorithms/smooth_quant/torch_backend.py b/nncf/quantization/algorithms/smooth_quant/torch_backend.py index 039de08a6d0..2da568de92a 100644 --- a/nncf/quantization/algorithms/smooth_quant/torch_backend.py +++ b/nncf/quantization/algorithms/smooth_quant/torch_backend.py @@ -19,12 +19,12 @@ from nncf.common.graph import NNCFNode from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.common.tensor_statistics.statistic_point import StatisticPoint from nncf.experimental.common.tensor_statistics.collectors import AbsMaxReducer from nncf.experimental.common.tensor_statistics.collectors import MaxAggregator from nncf.experimental.common.tensor_statistics.collectors import TensorCollector from nncf.quantization.algorithms.smooth_quant.backend import SmoothQuantAlgoBackend +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.tensor import Tensor from nncf.torch.graph.transformations.command_creation import create_command_to_update_weight from nncf.torch.graph.transformations.commands import PTSharedFnInsertionCommand diff --git a/nncf/quantization/algorithms/smooth_quant/torch_fx_backend.py b/nncf/quantization/algorithms/smooth_quant/torch_fx_backend.py index 2c07dc15e94..7f1dddc4953 100644 --- a/nncf/quantization/algorithms/smooth_quant/torch_fx_backend.py +++ b/nncf/quantization/algorithms/smooth_quant/torch_fx_backend.py @@ -18,7 +18,6 @@ from nncf.common.graph import NNCFNode from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.common.tensor_statistics.statistic_point import StatisticPoint from nncf.experimental.common.tensor_statistics.collectors import AbsMaxReducer from nncf.experimental.common.tensor_statistics.collectors import MaxAggregator @@ -29,6 +28,7 @@ from nncf.experimental.torch.fx.transformations import get_graph_node_by_name from nncf.experimental.torch.fx.transformations import module_insertion_transformation_builder from nncf.quantization.algorithms.smooth_quant.backend import SmoothQuantAlgoBackend +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.tensor import Tensor from nncf.torch.graph.transformations.commands import PTTargetPoint from nncf.torch.model_graph_manager import get_const_node diff --git a/nncf/common/quantization/config_assignment.py b/nncf/quantization/config_assignment.py similarity index 97% rename from nncf/common/quantization/config_assignment.py rename to nncf/quantization/config_assignment.py index ba38c80cec5..80e9f674857 100644 --- a/nncf/common/quantization/config_assignment.py +++ b/nncf/quantization/config_assignment.py @@ -13,9 +13,9 @@ from nncf.common.graph import NNCFNode from nncf.common.hardware.config import HWConfig -from nncf.common.quantization.structs import QuantizationConstraints -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.scopes import matches_any +from nncf.quantization.structs import QuantizationConstraints +from nncf.quantization.structs import QuantizerConfig def get_scoped_quantizer_config( diff --git a/nncf/quantization/fake_quantize.py b/nncf/quantization/fake_quantize.py index 556a10f7690..863949893fa 100644 --- a/nncf/quantization/fake_quantize.py +++ b/nncf/quantization/fake_quantize.py @@ -14,14 +14,11 @@ from typing import Tuple import nncf -from nncf.common.quantization.quantizers import calculate_asymmetric_level_ranges -from nncf.common.quantization.quantizers import calculate_symmetric_level_ranges -from nncf.common.quantization.quantizers import get_num_levels -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.experimental.common.tensor_statistics.statistics import MinMaxTensorStatistic from nncf.quantization.advanced_parameters import FP8Type +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.tensor import Tensor from nncf.tensor import TensorDataType from nncf.tensor import functions as fns @@ -201,6 +198,65 @@ def asymmetric_range( return level_low, level_high +def calculate_symmetric_level_ranges(num_bits: int, signed: bool, narrow_range: bool = False) -> Tuple[int, int]: + """ + Calculates the numbers of the low and high quant and the number of + quantization levels for the symmetric quantization scheme. + + :param num_bits: The bitwidth of the quantization. + :param signed: The flag specifying type of the symmetric quantization scheme + if it is True then the symmetric quantization scheme is the signed and + the un-signed otherwise. + :param narrow_range: True if the range of quantized values is reduced by 1 compared to the + naive case, False otherwise. + :return: A Tuple + level_low - the low quant number + level_high - the high quant number + """ + levels = 2**num_bits + + if signed: + level_high = (levels // 2) - 1 + level_low = -(levels // 2) + else: + level_high = levels - 1 + level_low = 0 + + if narrow_range: + if level_low < 0: + level_low += 1 + else: + level_high -= 1 + + return level_low, level_high + + +def calculate_asymmetric_level_ranges(num_bits: int, narrow_range: bool = False) -> Tuple[int, int]: + """ + Calculates the numbers of the low and high quant and the number of + quantization levels for the asymmetric quantization scheme. + + :param num_bits: The bitwidth of the quantization + :param narrow_range: The flag specifying quantization range if it is True + then [1; 2^num_bits - 1] and [0; 2^num_bits - 1] otherwise + :return: A Tuple + level_low - the low quant number + level_high - the high quant number + """ + levels = 2**num_bits + level_high = levels - 1 + level_low = 0 + + if narrow_range: + level_low = level_low + 1 + + return level_low, level_high + + +def get_num_levels(level_low: int, level_high: int) -> int: + return level_high - level_low + 1 + + def calculate_quantizer_parameters( statistics: MinMaxTensorStatistic, quantizer_config: QuantizerConfig, diff --git a/nncf/quantization/quantize_model.py b/nncf/quantization/quantize_model.py index 9b7cdb6edcb..c2e60ce3d1b 100644 --- a/nncf/quantization/quantize_model.py +++ b/nncf/quantization/quantize_model.py @@ -16,7 +16,6 @@ from nncf.common.graph import NNCFGraph from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.logging.logger import nncf_logger -from nncf.common.quantization.structs import QuantizationPreset from nncf.common.utils.api_marker import api from nncf.common.utils.backend import BackendType from nncf.common.utils.backend import get_backend @@ -38,6 +37,7 @@ from nncf.quantization.algorithms.post_training.pipeline import create_ptq_pipeline from nncf.quantization.algorithms.weight_compression.algorithm import check_user_compression_configuration from nncf.quantization.algorithms.weight_compression.algorithm import get_weight_compression_configuration +from nncf.quantization.structs import QuantizationPreset from nncf.quantization.telemetry_extractors import CompressionStartedWithCompressWeightsApi from nncf.quantization.telemetry_extractors import CompressionStartedWithQuantizeApi from nncf.quantization.telemetry_extractors import CompressionStartedWithQuantizeWithAccuracyControlApi diff --git a/nncf/common/quantization/quantizer_propagation/__init__.py b/nncf/quantization/quantizer_propagation/__init__.py similarity index 100% rename from nncf/common/quantization/quantizer_propagation/__init__.py rename to nncf/quantization/quantizer_propagation/__init__.py diff --git a/nncf/common/quantization/quantizer_propagation/graph.py b/nncf/quantization/quantizer_propagation/graph.py similarity index 98% rename from nncf/common/quantization/quantizer_propagation/graph.py rename to nncf/quantization/quantizer_propagation/graph.py index fc6ae5b4088..e486a20c853 100644 --- a/nncf/common/quantization/quantizer_propagation/graph.py +++ b/nncf/quantization/quantizer_propagation/graph.py @@ -30,23 +30,23 @@ from nncf.common.insertion_point_graph import InsertionPointGraphNodeType from nncf.common.insertion_point_graph import PostHookInsertionPoint from nncf.common.insertion_point_graph import PreHookInsertionPoint -from nncf.common.quantization.quantizer_propagation.grouping import UnifiedScalePropagatingQuantizerGroupManager -from nncf.common.quantization.quantizer_propagation.structs import IgnoreReason -from nncf.common.quantization.quantizer_propagation.structs import PropagatingQuantizer -from nncf.common.quantization.quantizer_propagation.structs import PropagationPath -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType -from nncf.common.quantization.quantizer_propagation.structs import SharedAffectedOpsPropagatingQuantizerGroup -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizerSetup -from nncf.common.quantization.quantizer_setup import QuantizationInsertionPointBase -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import UnifiedScaleType from nncf.common.scopes import should_consider_scope +from nncf.quantization.quantizer_propagation.grouping import UnifiedScalePropagatingQuantizerGroupManager +from nncf.quantization.quantizer_propagation.structs import IgnoreReason +from nncf.quantization.quantizer_propagation.structs import PropagatingQuantizer +from nncf.quantization.quantizer_propagation.structs import PropagationPath +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType +from nncf.quantization.quantizer_propagation.structs import SharedAffectedOpsPropagatingQuantizerGroup +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import MultiConfigQuantizationPoint +from nncf.quantization.quantizer_setup import MultiConfigQuantizerSetup +from nncf.quantization.quantizer_setup import QuantizationInsertionPointBase +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import UnifiedScaleType class QuantizerPropagationStateGraph(nx.DiGraph): # type: ignore[misc] diff --git a/nncf/common/quantization/quantizer_propagation/grouping.py b/nncf/quantization/quantizer_propagation/grouping.py similarity index 98% rename from nncf/common/quantization/quantizer_propagation/grouping.py rename to nncf/quantization/quantizer_propagation/grouping.py index c0299532c89..ee602d9beeb 100644 --- a/nncf/common/quantization/quantizer_propagation/grouping.py +++ b/nncf/quantization/quantizer_propagation/grouping.py @@ -12,7 +12,7 @@ from copy import copy from typing import Dict, Optional, Set -from nncf.common.quantization.quantizer_propagation.structs import PropagatingQuantizer +from nncf.quantization.quantizer_propagation.structs import PropagatingQuantizer class UnifiedScalePropagatingQuantizerGroupManager: diff --git a/nncf/common/quantization/quantizer_propagation/solver.py b/nncf/quantization/quantizer_propagation/solver.py similarity index 98% rename from nncf/common/quantization/quantizer_propagation/solver.py rename to nncf/quantization/quantizer_propagation/solver.py index 8d361692bd3..312a2a9ffc8 100644 --- a/nncf/common/quantization/quantizer_propagation/solver.py +++ b/nncf/quantization/quantizer_propagation/solver.py @@ -28,30 +28,30 @@ from nncf.common.hardware.config import HWConfig from nncf.common.insertion_point_graph import InsertionPointGraph from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph -from nncf.common.quantization.quantizer_propagation.grouping import QuantizersWaitingForMergeManager -from nncf.common.quantization.quantizer_propagation.structs import IgnoreReason -from nncf.common.quantization.quantizer_propagation.structs import PropagatingQuantizer -from nncf.common.quantization.quantizer_propagation.structs import PropagationPath -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationRule -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType -from nncf.common.quantization.quantizer_setup import DEFAULT_QUANTIZER_CONFIG -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizerSetup -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizableWeightedLayerNode -from nncf.common.quantization.structs import QuantizationConstraints -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup -from nncf.common.quantization.structs import UnifiedScaleType from nncf.common.scopes import matches_any from nncf.common.scopes import should_consider_scope from nncf.common.utils.debug import DEBUG_LOG_DIR from nncf.common.utils.debug import is_debug from nncf.common.utils.dot_file_rw import write_dot_graph from nncf.config.schemata.defaults import QUANTIZATION_NARROW_RANGE +from nncf.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph +from nncf.quantization.quantizer_propagation.grouping import QuantizersWaitingForMergeManager +from nncf.quantization.quantizer_propagation.structs import IgnoreReason +from nncf.quantization.quantizer_propagation.structs import PropagatingQuantizer +from nncf.quantization.quantizer_propagation.structs import PropagationPath +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationRule +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType +from nncf.quantization.quantizer_setup import DEFAULT_QUANTIZER_CONFIG +from nncf.quantization.quantizer_setup import MultiConfigQuantizerSetup +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizableWeightedLayerNode +from nncf.quantization.structs import QuantizationConstraints +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup +from nncf.quantization.structs import UnifiedScaleType class TransitionStatus(Enum): @@ -395,7 +395,7 @@ def __init__( self._hw_config = hw_config self._visualizer: Optional[Any] = None if is_debug(): - from nncf.common.quantization.quantizer_propagation.visualizer import QuantizerPropagationVisualizer + from nncf.quantization.quantizer_propagation.visualizer import QuantizerPropagationVisualizer self._visualizer = QuantizerPropagationVisualizer(DEBUG_LOG_DIR + "/quant_prop") self._propagation_strategy = ( diff --git a/nncf/common/quantization/quantizer_propagation/structs.py b/nncf/quantization/quantizer_propagation/structs.py similarity index 97% rename from nncf/common/quantization/quantizer_propagation/structs.py rename to nncf/quantization/quantizer_propagation/structs.py index 741f07c5348..7b3dce8939c 100644 --- a/nncf/common/quantization/quantizer_propagation/structs.py +++ b/nncf/quantization/quantizer_propagation/structs.py @@ -14,10 +14,10 @@ from enum import Enum from typing import List, Optional, Set, Tuple -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import UnifiedScaleType from nncf.common.utils.api_marker import api from nncf.parameters import StrEnum +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import UnifiedScaleType class QuantizationTrait(Enum): diff --git a/nncf/common/quantization/quantizer_propagation/visualizer.py b/nncf/quantization/quantizer_propagation/visualizer.py similarity index 87% rename from nncf/common/quantization/quantizer_propagation/visualizer.py rename to nncf/quantization/quantizer_propagation/visualizer.py index d0888cc3cc8..4fb49a9a2f5 100644 --- a/nncf/common/quantization/quantizer_propagation/visualizer.py +++ b/nncf/quantization/quantizer_propagation/visualizer.py @@ -11,8 +11,8 @@ import shutil from pathlib import Path -from nncf.common.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver class QuantizerPropagationVisualizer: diff --git a/nncf/common/quantization/quantizer_removal.py b/nncf/quantization/quantizer_removal.py similarity index 100% rename from nncf/common/quantization/quantizer_removal.py rename to nncf/quantization/quantizer_removal.py diff --git a/nncf/common/quantization/quantizer_setup.py b/nncf/quantization/quantizer_setup.py similarity index 98% rename from nncf/common/quantization/quantizer_setup.py rename to nncf/quantization/quantizer_setup.py index dfe3d1ed430..6c98445c14a 100644 --- a/nncf/common/quantization/quantizer_setup.py +++ b/nncf/quantization/quantizer_setup.py @@ -18,13 +18,13 @@ import nncf from nncf.common.graph import NNCFNodeName from nncf.common.logging import nncf_logger -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import UnifiedScaleType -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.stateful_classes_registry import CommonStatefulClassesRegistry from nncf.config.schemata.defaults import QUANTIZATION_NARROW_RANGE +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import UnifiedScaleType +from nncf.quantization.structs import WeightQuantizerId QuantizationPointId = int diff --git a/nncf/common/quantization/structs.py b/nncf/quantization/structs.py similarity index 100% rename from nncf/common/quantization/structs.py rename to nncf/quantization/structs.py diff --git a/nncf/tensorflow/quantization/algorithm.py b/nncf/tensorflow/quantization/algorithm.py index 41bfcec30eb..01869c5fe60 100644 --- a/nncf/tensorflow/quantization/algorithm.py +++ b/nncf/tensorflow/quantization/algorithm.py @@ -33,18 +33,6 @@ from nncf.common.initialization.batchnorm_adaptation import BatchnormAdaptationAlgorithm from nncf.common.insertion_point_graph import InsertionPointGraph from nncf.common.logging import nncf_logger -from nncf.common.quantization.config_assignment import assign_qconfig_lists_to_modules -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver -from nncf.common.quantization.quantizer_propagation.structs import IgnoreReason -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizableWeightedLayerNode -from nncf.common.quantization.structs import QuantizationConstraints -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.schedulers import BaseCompressionScheduler from nncf.common.scopes import check_scopes_in_graph from nncf.common.stateful_classes_registry import TF_STATEFUL_CLASSES @@ -56,6 +44,18 @@ from nncf.config.schemata.defaults import QUANTIZE_INPUTS from nncf.config.schemata.defaults import QUANTIZE_OUTPUTS from nncf.config.schemata.defaults import TARGET_DEVICE +from nncf.quantization.config_assignment import assign_qconfig_lists_to_modules +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.quantizer_propagation.structs import IgnoreReason +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizableWeightedLayerNode +from nncf.quantization.structs import QuantizationConstraints +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.tensorflow.algorithm_selector import TF_COMPRESSION_ALGORITHMS from nncf.tensorflow.api.compression import TFCompressionAlgorithmBuilder from nncf.tensorflow.graph.converter import TFModelConverter diff --git a/nncf/tensorflow/quantization/collectors.py b/nncf/tensorflow/quantization/collectors.py index 379264ea883..04bdf5d4485 100644 --- a/nncf/tensorflow/quantization/collectors.py +++ b/nncf/tensorflow/quantization/collectors.py @@ -15,7 +15,7 @@ from nncf.common.quantization.collectors import QuantizationStatisticsCollector from nncf.common.quantization.collectors import QuantizerDescription -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.tensorflow.graph.utils import get_nncf_operations from nncf.tensorflow.quantization.utils import collect_fake_quantize_layers diff --git a/nncf/tensorflow/quantization/default_quantization.py b/nncf/tensorflow/quantization/default_quantization.py index 8cc1af69e71..f785e182b26 100644 --- a/nncf/tensorflow/quantization/default_quantization.py +++ b/nncf/tensorflow/quantization/default_quantization.py @@ -8,7 +8,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.tensorflow.graph.metatypes import common from nncf.tensorflow.graph.metatypes import keras_layers as layer_metatypes from nncf.tensorflow.graph.metatypes import tf_ops as op_metatypes diff --git a/nncf/tensorflow/quantization/init_range.py b/nncf/tensorflow/quantization/init_range.py index 9566ffbb25d..c8c146dfbce 100644 --- a/nncf/tensorflow/quantization/init_range.py +++ b/nncf/tensorflow/quantization/init_range.py @@ -21,12 +21,12 @@ from nncf.common.quantization.initialization.range import RangeInitCollectorParams from nncf.common.quantization.initialization.range import RangeInitConfig from nncf.common.quantization.initialization.range import RangeInitParams -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.scopes import should_consider_scope from nncf.common.tensor_statistics.collectors import ReductionAxes from nncf.common.tensor_statistics.collectors import TensorStatisticCollectorBase from nncf.config.schemata.defaults import MAX_PERCENTILE from nncf.config.schemata.defaults import MIN_PERCENTILE +from nncf.quantization.structs import QuantizerGroup from nncf.tensorflow.layers.custom_objects import NNCF_QUANTIZATION_OPERATIONS from nncf.tensorflow.layers.data_layout import get_channel_axis from nncf.tensorflow.layers.operation import InputType diff --git a/nncf/tensorflow/quantization/layers.py b/nncf/tensorflow/quantization/layers.py index d8677e293e4..01a7d9121c9 100644 --- a/nncf/tensorflow/quantization/layers.py +++ b/nncf/tensorflow/quantization/layers.py @@ -11,7 +11,7 @@ import tensorflow as tf -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.tensorflow.layers.custom_objects import NNCF_CUSTOM_OBJECTS from nncf.tensorflow.layers.custom_objects import NNCF_QUANTIZATION_OPERATIONS from nncf.tensorflow.layers.operation import InputType diff --git a/nncf/tensorflow/quantization/quantize_model.py b/nncf/tensorflow/quantization/quantize_model.py index 8925c4b746b..dfb2e20d305 100644 --- a/nncf/tensorflow/quantization/quantize_model.py +++ b/nncf/tensorflow/quantization/quantize_model.py @@ -15,7 +15,6 @@ import nncf from nncf.common.initialization.dataloader import NNCFDataLoader -from nncf.common.quantization.structs import QuantizationPreset from nncf.config import NNCFConfig from nncf.config.structures import BNAdaptationInitArgs from nncf.config.structures import QuantizationRangeInitArgs @@ -26,6 +25,7 @@ from nncf.parameters import TargetDevice from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.advanced_parameters import apply_advanced_parameters_to_config +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope from nncf.scopes import convert_ignored_scope_to_list from nncf.tensorflow.helpers.model_creation import create_compressed_model_impl diff --git a/nncf/tensorflow/quantization/quantizers.py b/nncf/tensorflow/quantization/quantizers.py index 4b7a9cfb864..cf08057f186 100644 --- a/nncf/tensorflow/quantization/quantizers.py +++ b/nncf/tensorflow/quantization/quantizers.py @@ -15,9 +15,9 @@ import tensorflow as tf import nncf -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerSpec +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerSpec from nncf.tensorflow.layers.custom_objects import NNCF_CUSTOM_OBJECTS from nncf.tensorflow.layers.custom_objects import NNCF_QUANTIZATION_OPERATIONS from nncf.tensorflow.layers.data_layout import get_channel_axis diff --git a/nncf/torch/automl/environment/quantization_env.py b/nncf/torch/automl/environment/quantization_env.py index f2524007a52..eee64e767b9 100644 --- a/nncf/torch/automl/environment/quantization_env.py +++ b/nncf/torch/automl/environment/quantization_env.py @@ -33,15 +33,15 @@ from nncf.common.hardware.config import HWConfigType from nncf.common.initialization.batchnorm_adaptation import BatchnormAdaptationAlgorithm from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerId -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.utils.debug import DEBUG_LOG_DIR from nncf.common.utils.debug import is_debug from nncf.common.utils.os import safe_open from nncf.config.extractors import extract_bn_adaptation_init_params +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch.initialization import PartialDataLoader from nncf.torch.quantization.algo import ExperimentalQuantizationController from nncf.torch.quantization.algo import NNCFNetwork diff --git a/nncf/torch/graph/transformations/command_creation.py b/nncf/torch/graph/transformations/command_creation.py index 0a05f5332f5..ecb92fbe95f 100644 --- a/nncf/torch/graph/transformations/command_creation.py +++ b/nncf/torch/graph/transformations/command_creation.py @@ -17,9 +17,9 @@ from nncf.common.graph.graph import NNCFNode from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.commands import TransformationPriority -from nncf.common.quantization.structs import NonWeightQuantizerId from nncf.experimental.common.check_feature import is_experimental_torch_tracing_enabled from nncf.experimental.torch2.commands import PT2InsertionCommand +from nncf.quantization.structs import NonWeightQuantizerId from nncf.torch.graph.transformations.commands import ExtraCompressionModuleType from nncf.torch.graph.transformations.commands import PTBiasCorrectionCommand from nncf.torch.graph.transformations.commands import PTInsertionCommand diff --git a/nncf/torch/quantization/adjust_padding.py b/nncf/torch/quantization/adjust_padding.py index b19435ed23d..1cb4a10e818 100644 --- a/nncf/torch/quantization/adjust_padding.py +++ b/nncf/torch/quantization/adjust_padding.py @@ -16,7 +16,7 @@ import nncf from nncf.common.graph import NNCFNodeName -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.layers import NNCFConv2d from nncf.torch.module_operations import UpdatePaddingValue from nncf.torch.nncf_network import NNCFNetwork diff --git a/nncf/torch/quantization/algo.py b/nncf/torch/quantization/algo.py index 029a6e2356e..16cebca14d8 100644 --- a/nncf/torch/quantization/algo.py +++ b/nncf/torch/quantization/algo.py @@ -40,20 +40,6 @@ from nncf.common.hardware.config import get_hw_config_type from nncf.common.initialization.batchnorm_adaptation import BatchnormAdaptationAlgorithm from nncf.common.logging import nncf_logger -from nncf.common.quantization.config_assignment import assign_qconfig_lists_to_modules -from nncf.common.quantization.quantizer_propagation.structs import IgnoreReason -from nncf.common.quantization.quantizer_setup import DEFAULT_QUANTIZER_CONFIG -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizerSetup -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import QuantizerSetupBase -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import QuantizableWeightedLayerNode -from nncf.common.quantization.structs import QuantizationConstraints -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizerGroup -from nncf.common.quantization.structs import QuantizerId -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.schedulers import BaseCompressionScheduler from nncf.common.statistics import NNCFStatistics from nncf.common.tensor_statistics.collectors import ReductionAxes @@ -74,6 +60,20 @@ from nncf.config.schemata.defaults import QUANTIZE_OUTPUTS from nncf.experimental.common.tensor_statistics.statistics import MinMaxTensorStatistic from nncf.experimental.common.tensor_statistics.statistics import TensorStatistic +from nncf.quantization.config_assignment import assign_qconfig_lists_to_modules +from nncf.quantization.quantizer_propagation.structs import IgnoreReason +from nncf.quantization.quantizer_setup import DEFAULT_QUANTIZER_CONFIG +from nncf.quantization.quantizer_setup import MultiConfigQuantizerSetup +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import QuantizerSetupBase +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import QuantizableWeightedLayerNode +from nncf.quantization.structs import QuantizationConstraints +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizerGroup +from nncf.quantization.structs import QuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch.algo_selector import PT_COMPRESSION_ALGORITHMS from nncf.torch.algo_selector import ZeroCompressionLoss from nncf.torch.compression_method_api import PTCompressionAlgorithmBuilder @@ -347,7 +347,7 @@ def generate_setup(self) -> SingleConfigQuantizerSetup: insertion_point_graph = self._target_model.nncf.get_original_insertion_point_graph() if self._debug_interface: self._debug_interface.visualize_insertion_point_graph(insertion_point_graph) - from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver + from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver scales_unification_map = {PTCatMetatype: UNIFICATION_PRODUCING_METATYPES} ignored_scopes_for_solver = { diff --git a/nncf/torch/quantization/default_quantization.py b/nncf/torch/quantization/default_quantization.py index c8b823cf438..131a0cd4eee 100644 --- a/nncf/torch/quantization/default_quantization.py +++ b/nncf/torch/quantization/default_quantization.py @@ -10,7 +10,7 @@ # limitations under the License. from typing import Dict, List -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait from nncf.torch.graph import operator_metatypes from nncf.torch.graph.operator_metatypes import OPERATORS_WITH_WEIGHTS_METATYPES from nncf.torch.graph.operator_metatypes import PTOperatorMetatype diff --git a/nncf/torch/quantization/init_range.py b/nncf/torch/quantization/init_range.py index 4c514cb44e9..ebfcc34c1b0 100644 --- a/nncf/torch/quantization/init_range.py +++ b/nncf/torch/quantization/init_range.py @@ -21,18 +21,18 @@ from nncf.common.quantization.initialization.range import RangeInitCollectorParams from nncf.common.quantization.initialization.range import RangeInitConfig from nncf.common.quantization.initialization.range import RangeInitParams -from nncf.common.quantization.quantizer_setup import QuantizationPointBase -from nncf.common.quantization.quantizer_setup import QuantizerSetupBase -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import QuantizationScheme -from nncf.common.quantization.structs import QuantizerGroup -from nncf.common.quantization.structs import QuantizerId -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.scopes import should_consider_scope from nncf.common.tensor_statistics.collectors import ReductionAxes from nncf.common.tensor_statistics.collectors import TensorStatisticCollectorBase from nncf.config.schemata.algo.quantization import RANGE_INIT_TYPES_VS_DESCRIPTIONS from nncf.experimental.common.tensor_statistics.collectors import AggregationAxes +from nncf.quantization.quantizer_setup import QuantizationPointBase +from nncf.quantization.quantizer_setup import QuantizerSetupBase +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import QuantizationScheme +from nncf.quantization.structs import QuantizerGroup +from nncf.quantization.structs import QuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch.graph.graph import PTNNCFGraph from nncf.torch.initialization import DataLoaderBaseRunner from nncf.torch.nncf_network import NNCFNetwork diff --git a/nncf/torch/quantization/layers.py b/nncf/torch/quantization/layers.py index c6785b6ea18..239c7e7c762 100644 --- a/nncf/torch/quantization/layers.py +++ b/nncf/torch/quantization/layers.py @@ -25,16 +25,16 @@ import nncf from nncf.common.graph import NNCFNodeName from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import QuantizerSetupBase -from nncf.common.quantization.quantizers import calculate_asymmetric_level_ranges -from nncf.common.quantization.quantizers import calculate_symmetric_level_ranges -from nncf.common.quantization.quantizers import get_num_levels -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerSpec from nncf.common.utils.debug import is_debug from nncf.common.utils.registry import Registry +from nncf.quantization.fake_quantize import calculate_asymmetric_level_ranges +from nncf.quantization.fake_quantize import calculate_symmetric_level_ranges +from nncf.quantization.fake_quantize import get_num_levels +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import QuantizerSetupBase +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerSpec from nncf.torch.checkpoint_loading import OPTIONAL_PARAMETERS_REGISTRY from nncf.torch.dynamic_graph.context import no_nncf_trace from nncf.torch.functions import clamp diff --git a/nncf/torch/quantization/metrics.py b/nncf/torch/quantization/metrics.py index a7684185c9e..bae80412504 100644 --- a/nncf/torch/quantization/metrics.py +++ b/nncf/torch/quantization/metrics.py @@ -26,11 +26,11 @@ from nncf.common.graph.patterns.manager import TargetDevice from nncf.common.quantization.collectors import QuantizationStatisticsCollector from nncf.common.quantization.collectors import QuantizerDescription -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.utils.backend import BackendType from nncf.common.utils.debug import is_debug +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch.nncf_module_replacement import is_nncf_module from nncf.torch.nncf_network import NNCFNetwork from nncf.torch.nncf_network import PTNNCFGraph diff --git a/nncf/torch/quantization/precision_constraints.py b/nncf/torch/quantization/precision_constraints.py index d5d2c4596e8..1eaed91ed5b 100644 --- a/nncf/torch/quantization/precision_constraints.py +++ b/nncf/torch/quantization/precision_constraints.py @@ -11,8 +11,8 @@ from copy import deepcopy from typing import Dict, List -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerId +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerId class HardwareQuantizationConstraints: diff --git a/nncf/torch/quantization/precision_init/adjacent_quantizers.py b/nncf/torch/quantization/precision_init/adjacent_quantizers.py index 4e7c33551af..3d046a93e16 100644 --- a/nncf/torch/quantization/precision_init/adjacent_quantizers.py +++ b/nncf/torch/quantization/precision_init/adjacent_quantizers.py @@ -12,9 +12,9 @@ from nncf.common.graph import NNCFNodeName from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import QuantizerSetupBase -from nncf.common.quantization.structs import QuantizerId +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import QuantizerSetupBase +from nncf.quantization.structs import QuantizerId from nncf.torch.quantization.layers import BaseQuantizer diff --git a/nncf/torch/quantization/precision_init/autoq_init.py b/nncf/torch/quantization/precision_init/autoq_init.py index 92332bc83d0..280179ef811 100644 --- a/nncf/torch/quantization/precision_init/autoq_init.py +++ b/nncf/torch/quantization/precision_init/autoq_init.py @@ -25,13 +25,13 @@ from nncf.common.hardware.config import HWConfigType from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.common.utils.debug import is_debug from nncf.common.utils.os import safe_open from nncf.config.schemata.defaults import AUTOQ_EVAL_SUBSET_RATIO from nncf.config.schemata.defaults import AUTOQ_ITER_NUMBER from nncf.config.schemata.defaults import AUTOQ_WARMUP_ITER_NUMBER from nncf.config.schemata.defaults import PRECISION_INIT_BITWIDTHS +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.torch.automl.agent.ddpg.ddpg import DDPG from nncf.torch.quantization.precision_constraints import HardwareQuantizationConstraints from nncf.torch.quantization.precision_init.base_init import BasePrecisionInitializer diff --git a/nncf/torch/quantization/precision_init/base_init.py b/nncf/torch/quantization/precision_init/base_init.py index 2bc7b43e8e8..6b78f90de06 100644 --- a/nncf/torch/quantization/precision_init/base_init.py +++ b/nncf/torch/quantization/precision_init/base_init.py @@ -14,9 +14,9 @@ from typing import Dict, List, Union from nncf.common.graph import NNCFNodeName -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizerId -from nncf.common.quantization.structs import WeightQuantizerId +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch.dynamic_graph.scope import Scope from nncf.torch.graph.transformations.commands import ExtraCompressionModuleType from nncf.torch.module_operations import UpdateWeight diff --git a/nncf/torch/quantization/precision_init/bitwidth_graph.py b/nncf/torch/quantization/precision_init/bitwidth_graph.py index 5ca3e5cbbfb..0cfa557c89e 100644 --- a/nncf/torch/quantization/precision_init/bitwidth_graph.py +++ b/nncf/torch/quantization/precision_init/bitwidth_graph.py @@ -17,7 +17,7 @@ from nncf.common.graph import NNCFGraph from nncf.common.graph import NNCFNode from nncf.common.logging import nncf_logger -from nncf.common.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import NonWeightQuantizerId from nncf.torch.layers import NNCFConv2d from nncf.torch.nncf_network import NNCFNetwork from nncf.torch.quantization.algo import QuantizationController diff --git a/nncf/torch/quantization/precision_init/compression_ratio.py b/nncf/torch/quantization/precision_init/compression_ratio.py index a865c41badb..5e32d0c3ed1 100644 --- a/nncf/torch/quantization/precision_init/compression_ratio.py +++ b/nncf/torch/quantization/precision_init/compression_ratio.py @@ -11,8 +11,8 @@ from typing import Dict from nncf.common.graph import NNCFNodeName -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup class CompressionRatioCalculator: diff --git a/nncf/torch/quantization/precision_init/definitions.py b/nncf/torch/quantization/precision_init/definitions.py index d604ca4d74a..426580babb7 100644 --- a/nncf/torch/quantization/precision_init/definitions.py +++ b/nncf/torch/quantization/precision_init/definitions.py @@ -10,7 +10,7 @@ # limitations under the License. from typing import List -from nncf.common.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerConfig QConfigSequenceForHAWQToEvaluate = List[QuantizerConfig] CoveringQConfigSequenceForQuantNoiseCalculation = List[QuantizerConfig] diff --git a/nncf/torch/quantization/precision_init/hawq_init.py b/nncf/torch/quantization/precision_init/hawq_init.py index 8bcde879a3a..00cb19a902d 100644 --- a/nncf/torch/quantization/precision_init/hawq_init.py +++ b/nncf/torch/quantization/precision_init/hawq_init.py @@ -26,11 +26,6 @@ import nncf from nncf.common.graph import NNCFNodeName from nncf.common.logging import nncf_logger -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerId -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.utils.debug import is_debug from nncf.common.utils.os import safe_open from nncf.config.schemata.defaults import HAWQ_COMPRESSION_RATIO @@ -39,6 +34,11 @@ from nncf.config.schemata.defaults import HAWQ_NUM_DATA_POINTS from nncf.config.schemata.defaults import HAWQ_TOLERANCE from nncf.config.schemata.defaults import PRECISION_INIT_BITWIDTHS +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch.quantization.hessian_trace import HessianTraceEstimator from nncf.torch.quantization.layers import QuantizersSwitcher from nncf.torch.quantization.precision_constraints import HardwareQuantizationConstraints diff --git a/nncf/torch/quantization/precision_init/manual_init.py b/nncf/torch/quantization/precision_init/manual_init.py index 253d9749ee4..622435e1ecd 100644 --- a/nncf/torch/quantization/precision_init/manual_init.py +++ b/nncf/torch/quantization/precision_init/manual_init.py @@ -10,7 +10,7 @@ # limitations under the License. from typing import Dict, List -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.torch.quantization.precision_constraints import HardwareQuantizationConstraints from nncf.torch.quantization.precision_init.base_init import BasePrecisionInitializer from nncf.torch.quantization.precision_init.base_init import BasePrecisionInitParams diff --git a/nncf/torch/quantization/precision_init/perturbations.py b/nncf/torch/quantization/precision_init/perturbations.py index 6fbda4021f6..a9f46b800d1 100644 --- a/nncf/torch/quantization/precision_init/perturbations.py +++ b/nncf/torch/quantization/precision_init/perturbations.py @@ -13,7 +13,7 @@ import torch from torch import Tensor -from nncf.common.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerConfig from nncf.torch.dynamic_graph.context import no_nncf_trace diff --git a/nncf/torch/quantization/quantize_model.py b/nncf/torch/quantization/quantize_model.py index 734f15a1607..b3bc1d65674 100644 --- a/nncf/torch/quantization/quantize_model.py +++ b/nncf/torch/quantization/quantize_model.py @@ -16,7 +16,6 @@ import nncf from nncf.common.factory import NNCFGraphFactory -from nncf.common.quantization.structs import QuantizationPreset from nncf.data import Dataset from nncf.parameters import BackupMode from nncf.parameters import CompressWeightsMode @@ -29,6 +28,7 @@ from nncf.quantization.algorithms.post_training.algorithm import PostTrainingQuantization from nncf.quantization.algorithms.weight_compression.algorithm import WeightCompression from nncf.quantization.quantize_model import warning_model_no_batchwise_support +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope from nncf.torch.graph.operator_metatypes import OPERATIONS_OUTPUT_HAS_NO_BATCH_AXIS from nncf.torch.model_creation import wrap_model diff --git a/nncf/torch/quantization/translator.py b/nncf/torch/quantization/translator.py index ecfa3704326..df1c0a40964 100644 --- a/nncf/torch/quantization/translator.py +++ b/nncf/torch/quantization/translator.py @@ -10,9 +10,9 @@ # limitations under the License. from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import QuantizationInsertionPointBase -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import QuantizationInsertionPointBase +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint from nncf.torch.graph.transformations.commands import PTTargetPoint diff --git a/tests/common/quantization/metatypes.py b/tests/common/quantization/metatypes.py index d34dd8b3b49..d3dca7d35fc 100644 --- a/tests/common/quantization/metatypes.py +++ b/tests/common/quantization/metatypes.py @@ -14,7 +14,7 @@ from nncf.common.graph.operator_metatypes import INPUT_NOOP_METATYPES from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.graph.operator_metatypes import OperatorMetatypeRegistry -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait METATYPES_FOR_TEST = OperatorMetatypeRegistry("TEST_METATYPES") diff --git a/tests/common/quantization/test_ignore_post_processing.py b/tests/common/quantization/test_ignore_post_processing.py index 5a5da1f54eb..c0c0aa1c566 100644 --- a/tests/common/quantization/test_ignore_post_processing.py +++ b/tests/common/quantization/test_ignore_post_processing.py @@ -16,11 +16,11 @@ from nncf.common.graph.operator_metatypes import InputNoopMetatype from nncf.common.graph.operator_metatypes import OutputNoopMetatype from nncf.common.insertion_point_graph import InsertionPointGraph -from nncf.common.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph -from nncf.common.quantization.quantizer_propagation.solver import PostprocessingNodeLocator -from nncf.common.quantization.structs import QuantizableWeightedLayerNode -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.utils.registry import Registry +from nncf.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph +from nncf.quantization.quantizer_propagation.solver import PostprocessingNodeLocator +from nncf.quantization.structs import QuantizableWeightedLayerNode +from nncf.quantization.structs import QuantizerConfig from tests.common.quantization.metatypes import WEIGHT_LAYER_METATYPES from tests.common.quantization.metatypes import Conv2dTestMetatype from tests.common.quantization.metatypes import IdentityTestMetatype diff --git a/tests/common/quantization/test_minmax.py b/tests/common/quantization/test_minmax.py index 31238faf449..13de3fb8725 100644 --- a/tests/common/quantization/test_minmax.py +++ b/tests/common/quantization/test_minmax.py @@ -15,9 +15,6 @@ import pytest import nncf -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme -from nncf.common.quantization.structs import QuantizerGroup from nncf.parameters import ModelType from nncf.parameters import QuantizationMode from nncf.parameters import TargetDevice @@ -26,6 +23,9 @@ from nncf.quantization.advanced_parameters import OverflowFix from nncf.quantization.advanced_parameters import QuantizationParameters from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme +from nncf.quantization.structs import QuantizerGroup @pytest.mark.parametrize( diff --git a/tests/common/quantization/test_quantizer_propagation_graph.py b/tests/common/quantization/test_quantizer_propagation_graph.py index 46ef772d159..fadca0cb57a 100644 --- a/tests/common/quantization/test_quantizer_propagation_graph.py +++ b/tests/common/quantization/test_quantizer_propagation_graph.py @@ -26,17 +26,17 @@ from nncf.common.insertion_point_graph import InsertionPointGraph from nncf.common.insertion_point_graph import PostHookInsertionPoint from nncf.common.insertion_point_graph import PreHookInsertionPoint -from nncf.common.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph as QPSG -from nncf.common.quantization.quantizer_propagation.structs import PropagationPath -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizerSetup -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import UnifiedScaleType +from nncf.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph as QPSG +from nncf.quantization.quantizer_propagation.structs import PropagationPath +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import MultiConfigQuantizationPoint +from nncf.quantization.quantizer_setup import MultiConfigQuantizerSetup +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import UnifiedScaleType from tests.common.quantization.metatypes import WEIGHT_LAYER_METATYPES from tests.common.quantization.metatypes import CatTestMetatype from tests.common.quantization.metatypes import Conv2dTestMetatype diff --git a/tests/common/quantization/test_quantizer_propagation_solver.py b/tests/common/quantization/test_quantizer_propagation_solver.py index 72a40e3a509..30099858b33 100644 --- a/tests/common/quantization/test_quantizer_propagation_solver.py +++ b/tests/common/quantization/test_quantizer_propagation_solver.py @@ -28,20 +28,20 @@ from nncf.common.graph.operator_metatypes import UnknownMetatype from nncf.common.graph.transformations.commands import TargetType from nncf.common.insertion_point_graph import InsertionPointGraph -from nncf.common.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph as QPSG -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationRule -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver -from nncf.common.quantization.quantizer_propagation.solver import TransitionStatus -from nncf.common.quantization.quantizer_propagation.structs import IgnoreReason -from nncf.common.quantization.quantizer_propagation.structs import PropagatingQuantizer -from nncf.common.quantization.quantizer_propagation.structs import PropagationPath -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import QuantizationPointId -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig +from nncf.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph as QPSG +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationRule +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.quantizer_propagation.solver import TransitionStatus +from nncf.quantization.quantizer_propagation.structs import IgnoreReason +from nncf.quantization.quantizer_propagation.structs import PropagatingQuantizer +from nncf.quantization.quantizer_propagation.structs import PropagationPath +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import MultiConfigQuantizationPoint +from nncf.quantization.quantizer_setup import QuantizationPointId +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig from tests.common.quantization.metatypes import DEFAULT_TEST_QUANT_TRAIT_MAP from tests.common.quantization.metatypes import BatchNormTestMetatype from tests.common.quantization.metatypes import Conv2dTestMetatype diff --git a/tests/common/quantization/test_quantizer_removal.py b/tests/common/quantization/test_quantizer_removal.py index 3a27136e88e..bf17ff58152 100644 --- a/tests/common/quantization/test_quantizer_removal.py +++ b/tests/common/quantization/test_quantizer_removal.py @@ -17,8 +17,8 @@ from nncf.common.graph import NNCFGraph from nncf.common.graph.layer_attributes import Dtype -from nncf.common.quantization.quantizer_removal import find_quantizer_nodes_to_cut from nncf.quantization.passes import find_shapeof_subgraphs +from nncf.quantization.quantizer_removal import find_quantizer_nodes_to_cut from tests.common.quantization.metatypes import CONSTANT_METATYPES from tests.common.quantization.metatypes import METATYPES_FOR_TEST from tests.common.quantization.metatypes import QUANTIZABLE_METATYPES diff --git a/tests/common/test_statistics_aggregator.py b/tests/common/test_statistics_aggregator.py index 58a05879616..198b430b2aa 100644 --- a/tests/common/test_statistics_aggregator.py +++ b/tests/common/test_statistics_aggregator.py @@ -22,8 +22,6 @@ from nncf.common.factory import NNCFGraphFactory from nncf.common.graph.transformations.commands import TargetPoint from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.tensor_statistics.aggregator import EMPTY_DATASET_ERROR from nncf.common.tensor_statistics.statistic_point import StatisticPoint from nncf.common.tensor_statistics.statistic_point import StatisticPointsContainer @@ -39,6 +37,8 @@ from nncf.quantization.range_estimator import RangeEstimatorParametersSet from nncf.quantization.range_estimator import StatisticsCollectorParameters from nncf.quantization.range_estimator import StatisticsType +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig from nncf.tensor import functions as fns diff --git a/tests/cross_fw/test_templates/test_calculate_quantizer_parameters.py b/tests/cross_fw/test_templates/test_calculate_quantizer_parameters.py index e7bc9db9b86..31a9a354968 100644 --- a/tests/cross_fw/test_templates/test_calculate_quantizer_parameters.py +++ b/tests/cross_fw/test_templates/test_calculate_quantizer_parameters.py @@ -18,12 +18,12 @@ import pytest import nncf -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.experimental.common.tensor_statistics.statistics import MinMaxTensorStatistic from nncf.quantization.fake_quantize import FakeQuantizeParameters from nncf.quantization.fake_quantize import calculate_quantizer_parameters +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.tensor import functions as fns from tests.cross_fw.shared.json import dump_to_json from tests.cross_fw.shared.json import load_json diff --git a/tests/cross_fw/test_templates/test_ptq_params.py b/tests/cross_fw/test_templates/test_ptq_params.py index 4c87a5d02cd..15244481ccf 100644 --- a/tests/cross_fw/test_templates/test_ptq_params.py +++ b/tests/cross_fw/test_templates/test_ptq_params.py @@ -21,10 +21,6 @@ from nncf.common.graph.operator_metatypes import OperatorMetatype from nncf.common.graph.operator_metatypes import OutputNoopMetatype from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.tensor_statistics.statistic_point import StatisticPoint from nncf.common.tensor_statistics.statistic_point import StatisticPointsContainer from nncf.experimental.common.tensor_statistics.collectors import MaxAggregator @@ -37,6 +33,10 @@ from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization from nncf.quantization.passes import transform_to_inference_graph from nncf.quantization.range_estimator import RangeEstimatorParametersSet +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.scopes import IgnoredScope from nncf.tensor import Tensor from tests.common.quantization.metatypes import CatTestMetatype diff --git a/tests/cross_fw/test_templates/test_quantizer_config.py b/tests/cross_fw/test_templates/test_quantizer_config.py index 16fd13a6924..64e9f23b7e5 100644 --- a/tests/cross_fw/test_templates/test_quantizer_config.py +++ b/tests/cross_fw/test_templates/test_quantizer_config.py @@ -21,13 +21,6 @@ from nncf.common.graph.patterns import GraphPattern from nncf.common.graph.patterns.manager import PatternsManager from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.tensor_statistics.collectors import ReductionAxes from nncf.experimental.common.tensor_statistics.collectors import AbsMaxReducer from nncf.experimental.common.tensor_statistics.collectors import MaxAggregator @@ -41,7 +34,14 @@ from nncf.quantization.advanced_parameters import QuantizationParameters from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization from nncf.quantization.passes import transform_to_inference_graph +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizationPoint +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint from nncf.quantization.range_estimator import RangeEstimatorParametersSet +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from tests.cross_fw.test_templates.models import NNCFGraphToTest from tests.cross_fw.test_templates.models import NNCFGraphToTestDepthwiseConv from tests.cross_fw.test_templates.models import NNCFGraphToTestSumAggregation diff --git a/tests/onnx/quantization/test_qdq_params_calculation.py b/tests/onnx/quantization/test_qdq_params_calculation.py index 95ffa3cff1f..544db333236 100644 --- a/tests/onnx/quantization/test_qdq_params_calculation.py +++ b/tests/onnx/quantization/test_qdq_params_calculation.py @@ -14,10 +14,10 @@ import onnx import pytest -from nncf.common.quantization.structs import QuantizationPreset from nncf.onnx.graph.onnx_helper import get_tensor_value from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.advanced_parameters import OverflowFix +from nncf.quantization.structs import QuantizationPreset from tests.cross_fw.shared.comparator import compare_stats from tests.cross_fw.shared.json import load_json from tests.onnx.conftest import ONNX_TEST_ROOT diff --git a/tests/openvino/native/quantization/test_fq_params_calculation.py b/tests/openvino/native/quantization/test_fq_params_calculation.py index 578aca923fd..40f6538a654 100644 --- a/tests/openvino/native/quantization/test_fq_params_calculation.py +++ b/tests/openvino/native/quantization/test_fq_params_calculation.py @@ -15,12 +15,12 @@ import pytest import torch -from nncf.common.quantization.structs import QuantizationPreset from nncf.openvino.graph.nncf_graph_builder import GraphConverter from nncf.openvino.statistics.aggregator import OVStatisticsAggregator from nncf.parameters import QuantizationMode from nncf.quantization.advanced_parameters import OverflowFix from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization +from nncf.quantization.structs import QuantizationPreset from tests.cross_fw.shared.comparator import compare_stats from tests.cross_fw.shared.json import load_json from tests.openvino.native.common import convert_torch_model diff --git a/tests/openvino/native/quantization/test_graphs.py b/tests/openvino/native/quantization/test_graphs.py index d351196053d..b82380a259d 100644 --- a/tests/openvino/native/quantization/test_graphs.py +++ b/tests/openvino/native/quantization/test_graphs.py @@ -18,7 +18,6 @@ import pytest from nncf import Dataset -from nncf.common.quantization.structs import QuantizationPreset from nncf.openvino.graph.nncf_graph_builder import GraphConverter from nncf.openvino.quantization.quantize_model import quantize_impl from nncf.openvino.statistics.aggregator import OVStatisticsAggregator @@ -26,6 +25,7 @@ from nncf.parameters import QuantizationMode from nncf.parameters import TargetDevice from nncf.quantization.algorithms.smooth_quant.algorithm import SmoothQuant +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope from tests.openvino.native.common import compare_nncf_graphs from tests.openvino.native.common import convert_torch_model diff --git a/tests/openvino/native/quantization/test_quantization_pipeline.py b/tests/openvino/native/quantization/test_quantization_pipeline.py index 5713a8ca927..a8d52814527 100644 --- a/tests/openvino/native/quantization/test_quantization_pipeline.py +++ b/tests/openvino/native/quantization/test_quantization_pipeline.py @@ -14,9 +14,9 @@ import pytest import nncf -from nncf.common.quantization.structs import QuantizationPreset from nncf.openvino.quantization.quantize_model import quantize_impl from nncf.parameters import TargetDevice +from nncf.quantization.structs import QuantizationPreset from nncf.scopes import IgnoredScope from tests.openvino.native.common import get_dataset_for_test from tests.openvino.native.models import ConvModel diff --git a/tests/openvino/native/quantization/test_quantizer_removal.py b/tests/openvino/native/quantization/test_quantizer_removal.py index 0e386d6b80b..43e67422644 100644 --- a/tests/openvino/native/quantization/test_quantizer_removal.py +++ b/tests/openvino/native/quantization/test_quantizer_removal.py @@ -16,11 +16,11 @@ import pytest from nncf.common.factory import NNCFGraphFactory -from nncf.common.quantization.quantizer_removal import revert_operations_to_floating_point_precision from nncf.openvino.graph.layer_attributes import OVLayerAttributes from nncf.openvino.graph.metatypes import openvino_metatypes as ov_metatypes from nncf.openvino.graph.metatypes.groups import OPERATIONS_WITH_WEIGHTS from nncf.quantization.advanced_parameters import RestoreMode +from nncf.quantization.quantizer_removal import revert_operations_to_floating_point_precision from tests.openvino.native.models import LinearQuantizedModel diff --git a/tests/openvino/tools/calibrate.py b/tests/openvino/tools/calibrate.py index 4d45cb4a385..7391016a6b2 100644 --- a/tests/openvino/tools/calibrate.py +++ b/tests/openvino/tools/calibrate.py @@ -46,8 +46,6 @@ from nncf.common.deprecation import warning_deprecated from nncf.common.logging import nncf_logger from nncf.common.logging.logger import set_log_file -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme from nncf.data.dataset import DataProvider from nncf.parameters import DropType from nncf.parameters import ModelType @@ -59,6 +57,8 @@ from nncf.quantization.advanced_parameters import OverflowFix from nncf.quantization.advanced_parameters import RestoreMode from nncf.quantization.advanced_parameters import StatisticsType +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme from nncf.scopes import IgnoredScope TModel = TypeVar("TModel") diff --git a/tests/tensorflow/quantization/test_algorithm_quantization.py b/tests/tensorflow/quantization/test_algorithm_quantization.py index 906bdd272a9..33e327cea9c 100644 --- a/tests/tensorflow/quantization/test_algorithm_quantization.py +++ b/tests/tensorflow/quantization/test_algorithm_quantization.py @@ -17,7 +17,7 @@ # TODO(nlyalyus): WA for the bug 58886, QuantizationMode should be imported after nncf.tensorflow. # Otherwise test_quantize_inputs and test_quantize_outputs_removal will fail, because of invalid inputs quantization -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.tensorflow.graph.metatypes.matcher import get_keras_layer_metatype from nncf.tensorflow.layers.custom_objects import NNCF_QUANTIZATION_OPERATIONS from nncf.tensorflow.layers.data_layout import get_channel_axis diff --git a/tests/tensorflow/quantization/test_builder_state.py b/tests/tensorflow/quantization/test_builder_state.py index 10c0eaf0c30..00cb59a0906 100644 --- a/tests/tensorflow/quantization/test_builder_state.py +++ b/tests/tensorflow/quantization/test_builder_state.py @@ -17,7 +17,7 @@ from examples.tensorflow.classification.main import load_compression_state from nncf.common.graph.transformations.commands import TargetPoint from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.tensorflow import create_compression_callbacks from nncf.tensorflow import register_default_init_args from nncf.tensorflow.callbacks.checkpoint_callback import CheckpointManagerCallback diff --git a/tests/tensorflow/quantization/test_overflow_issue.py b/tests/tensorflow/quantization/test_overflow_issue.py index e1c1e859803..8058f2fa577 100644 --- a/tests/tensorflow/quantization/test_overflow_issue.py +++ b/tests/tensorflow/quantization/test_overflow_issue.py @@ -13,7 +13,7 @@ import pytest import tensorflow as tf -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.tensorflow.layers.custom_objects import NNCF_QUANTIZATION_OPERATIONS from nncf.tensorflow.layers.wrapper import NNCFWrapper from nncf.tensorflow.quantization.quantizers import Quantizer diff --git a/tests/tensorflow/quantization/test_ptq_params.py b/tests/tensorflow/quantization/test_ptq_params.py index e9da51f7b0c..69f4bf67157 100644 --- a/tests/tensorflow/quantization/test_ptq_params.py +++ b/tests/tensorflow/quantization/test_ptq_params.py @@ -13,14 +13,14 @@ import pytest from nncf import NNCFConfig -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode from nncf.parameters import TargetDevice from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.advanced_parameters import OverflowFix from nncf.quantization.advanced_parameters import QuantizationParameters from nncf.quantization.advanced_parameters import apply_advanced_parameters_to_config from nncf.quantization.range_estimator import RangeEstimatorParametersSet +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.scopes import IgnoredScope from nncf.tensorflow.quantization.quantize_model import _create_nncf_config from nncf.tensorflow.quantization.quantize_model import _get_default_quantization_config diff --git a/tests/tensorflow/quantization/test_range_init.py b/tests/tensorflow/quantization/test_range_init.py index 4828124c729..07f72f767db 100644 --- a/tests/tensorflow/quantization/test_range_init.py +++ b/tests/tensorflow/quantization/test_range_init.py @@ -16,8 +16,8 @@ from nncf.common.quantization.initialization.range import PerLayerRangeInitConfig from nncf.common.quantization.initialization.range import RangeInitConfig -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig from nncf.tensorflow.layers.operation import InputType from nncf.tensorflow.layers.wrapper import NNCFWrapper from nncf.tensorflow.quantization import FakeQuantize diff --git a/tests/tensorflow/test_transformations.py b/tests/tensorflow/test_transformations.py index 69258751f2d..1e759f2de10 100644 --- a/tests/tensorflow/test_transformations.py +++ b/tests/tensorflow/test_transformations.py @@ -20,9 +20,9 @@ from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.commands import TransformationPriority from nncf.common.graph.transformations.commands import TransformationType -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.utils.dot_file_rw import write_dot_graph +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig from nncf.tensorflow import tf_internals from nncf.tensorflow.graph.converter import TFModelConverterFactory from nncf.tensorflow.graph.model_transformer import TFModelTransformer diff --git a/tests/torch/automl/test_quantization_env.py b/tests/torch/automl/test_quantization_env.py index 990ad12e7ee..b47db238320 100644 --- a/tests/torch/automl/test_quantization_env.py +++ b/tests/torch/automl/test_quantization_env.py @@ -19,7 +19,7 @@ from nncf import NNCFConfig from nncf.common.hardware.config import HWConfig from nncf.common.hardware.config import HWConfigType -from nncf.common.quantization.quantizer_setup import MultiConfigQuantizerSetup +from nncf.quantization.quantizer_setup import MultiConfigQuantizerSetup from nncf.torch.automl.environment.quantization_env import ModelSizeCalculator from nncf.torch.automl.environment.quantization_env import QuantizationEnv from nncf.torch.automl.environment.quantization_env import QuantizationEnvParams diff --git a/tests/torch/conftest.py b/tests/torch/conftest.py index 13995cc3e15..ee654ebb555 100644 --- a/tests/torch/conftest.py +++ b/tests/torch/conftest.py @@ -22,7 +22,7 @@ import torch except: # noqa: E722 torch = None -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from tests.cross_fw.shared.case_collection import COMMON_SCOPE_MARKS_VS_OPTIONS from tests.cross_fw.shared.case_collection import skip_marked_cases_if_options_not_specified from tests.cross_fw.shared.install_fixtures import tmp_venv_with_nncf # noqa: F401 diff --git a/tests/torch/fx/test_model_transformer.py b/tests/torch/fx/test_model_transformer.py index 603e5ff389b..4a7debfa31d 100644 --- a/tests/torch/fx/test_model_transformer.py +++ b/tests/torch/fx/test_model_transformer.py @@ -29,7 +29,6 @@ from nncf.common.factory import NNCFGraphFactory from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.layout import TransformationLayout -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode from nncf.experimental.torch.fx.constant_folding import constant_fold from nncf.experimental.torch.fx.model_transformer import FXModelTransformer from nncf.experimental.torch.fx.nncf_graph_builder import GraphConverter @@ -45,6 +44,7 @@ from nncf.experimental.torch.fx.transformations import node_removal_transformation_builder from nncf.experimental.torch.fx.transformations import output_insertion_transformation_builder from nncf.experimental.torch.fx.transformations import qdq_insertion_transformation_builder +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.dynamic_graph.patch_pytorch import disable_patching from nncf.torch.graph.transformations.commands import PTModelExtractionCommand from nncf.torch.graph.transformations.commands import PTTargetPoint diff --git a/tests/torch/ptq/test_calculation_quantizer_params.py b/tests/torch/ptq/test_calculation_quantizer_params.py index 02985f08342..1fb00546da1 100644 --- a/tests/torch/ptq/test_calculation_quantizer_params.py +++ b/tests/torch/ptq/test_calculation_quantizer_params.py @@ -20,15 +20,15 @@ from nncf import Dataset from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.experimental.common.tensor_statistics.statistics import MinMaxTensorStatistic from nncf.quantization.algorithms.min_max.algorithm import MinMaxQuantization from nncf.quantization.algorithms.min_max.torch_backend import PTMinMaxAlgoBackend from nncf.quantization.fake_quantize import FakeQuantizeParameters from nncf.quantization.fake_quantize import calculate_quantizer_parameters +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.tensor import Tensor from nncf.tensor import functions as fns from nncf.torch.model_creation import wrap_model diff --git a/tests/torch/qat/helpers.py b/tests/torch/qat/helpers.py index 7311cb9969b..282be4343c0 100644 --- a/tests/torch/qat/helpers.py +++ b/tests/torch/qat/helpers.py @@ -17,13 +17,13 @@ from examples.torch.common.example_logger import logger from examples.torch.common.execution import start_worker -from nncf.common.quantization.structs import QuantizationPreset -from nncf.common.quantization.structs import QuantizationScheme from nncf.quantization.advanced_parameters import AdvancedQuantizationParameters from nncf.quantization.advanced_parameters import OverflowFix from nncf.quantization.advanced_parameters import QuantizationParameters from nncf.quantization.range_estimator import RangeEstimatorParameters from nncf.quantization.range_estimator import RangeEstimatorParametersSet +from nncf.quantization.structs import QuantizationPreset +from nncf.quantization.structs import QuantizationScheme from nncf.torch.nncf_network import NNCFNetwork from nncf.torch.quantization.layers import BaseQuantizer diff --git a/tests/torch/quantization/test_adjust_padding.py b/tests/torch/quantization/test_adjust_padding.py index 97931adc619..7f64aab573f 100644 --- a/tests/torch/quantization/test_adjust_padding.py +++ b/tests/torch/quantization/test_adjust_padding.py @@ -15,8 +15,8 @@ import pytest import torch -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationRule -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationRule +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver from nncf.torch.hardware.config import PTHWConfig from nncf.torch.layers import NNCFConv2d from nncf.torch.module_operations import UpdatePaddingValue diff --git a/tests/torch/quantization/test_algo_quantization.py b/tests/torch/quantization/test_algo_quantization.py index 85bd0420b43..94c1d0ca82f 100644 --- a/tests/torch/quantization/test_algo_quantization.py +++ b/tests/torch/quantization/test_algo_quantization.py @@ -24,10 +24,10 @@ from nncf import NNCFConfig from nncf.api.compression import CompressionScheduler from nncf.common.hardware.config import HWConfigType -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import WeightQuantizerId from nncf.common.utils.debug import nncf_debug +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import WeightQuantizerId from nncf.torch import create_compressed_model from nncf.torch import register_default_init_args from nncf.torch import register_module diff --git a/tests/torch/quantization/test_autoq_precision_init.py b/tests/torch/quantization/test_autoq_precision_init.py index 44615efa947..594aecc13c1 100644 --- a/tests/torch/quantization/test_autoq_precision_init.py +++ b/tests/torch/quantization/test_autoq_precision_init.py @@ -18,7 +18,7 @@ from torch import nn from torchvision.models import resnet50 -from nncf.common.quantization.structs import QuantizerGroup +from nncf.quantization.structs import QuantizerGroup from nncf.torch import register_default_init_args from nncf.torch.module_operations import UpdatePaddingValue from nncf.torch.utils import get_all_modules_by_type diff --git a/tests/torch/quantization/test_functions.py b/tests/torch/quantization/test_functions.py index 4cafc5fc1d5..1fd32244997 100644 --- a/tests/torch/quantization/test_functions.py +++ b/tests/torch/quantization/test_functions.py @@ -16,7 +16,7 @@ from torch.autograd import Variable from torch.distributions.uniform import Uniform -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.quantization.quantize_functions import asymmetric_quantize from nncf.torch.quantization.quantize_functions import get_scale_zp_from_input_low_input_high from nncf.torch.quantization.quantize_functions import symmetric_quantize diff --git a/tests/torch/quantization/test_hawq_precision_init.py b/tests/torch/quantization/test_hawq_precision_init.py index ef89abc66e2..de22de50f01 100644 --- a/tests/torch/quantization/test_hawq_precision_init.py +++ b/tests/torch/quantization/test_hawq_precision_init.py @@ -33,9 +33,9 @@ from nncf import NNCFConfig from nncf.common.graph import NNCFNodeName from nncf.common.hardware.config import HWConfigType -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.structs import QuantizerGroup from nncf.common.utils.debug import set_debug_log_dir +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.structs import QuantizerGroup from nncf.torch import register_default_init_args from nncf.torch.checkpoint_loading import load_state from nncf.torch.dynamic_graph.io_handling import FillerInputInfo diff --git a/tests/torch/quantization/test_hw_config.py b/tests/torch/quantization/test_hw_config.py index 4488e9bf02b..446a9244ab5 100644 --- a/tests/torch/quantization/test_hw_config.py +++ b/tests/torch/quantization/test_hw_config.py @@ -11,8 +11,8 @@ import torch -from nncf.common.quantization.quantizer_setup import DEFAULT_QUANTIZER_CONFIG -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.quantizer_setup import DEFAULT_QUANTIZER_CONFIG +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.dynamic_graph.io_handling import FillerInputElement from nncf.torch.dynamic_graph.io_handling import FillerInputInfo from nncf.torch.hardware.config import PTHWConfig diff --git a/tests/torch/quantization/test_layers.py b/tests/torch/quantization/test_layers.py index 3b6e34e7f99..8f8f61f19a7 100644 --- a/tests/torch/quantization/test_layers.py +++ b/tests/torch/quantization/test_layers.py @@ -12,7 +12,7 @@ import pytest import torch -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.quantization.layers import QUANTIZATION_MODULES from nncf.torch.quantization.layers import PTQuantizerSpec diff --git a/tests/torch/quantization/test_manual_precision_init.py b/tests/torch/quantization/test_manual_precision_init.py index 3f99ed3fb48..2d6e9a5bbd1 100644 --- a/tests/torch/quantization/test_manual_precision_init.py +++ b/tests/torch/quantization/test_manual_precision_init.py @@ -17,8 +17,8 @@ from examples.torch.common.model_loader import load_model from nncf import NNCFConfig -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import WeightQuantizerId +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import WeightQuantizerId from nncf.torch import register_default_init_args from nncf.torch.quantization.algo import QuantizationController from tests.cross_fw.shared.paths import EXAMPLES_DIR diff --git a/tests/torch/quantization/test_onnx_export.py b/tests/torch/quantization/test_onnx_export.py index 2c0cd2252b9..2f3ed01b0bc 100644 --- a/tests/torch/quantization/test_onnx_export.py +++ b/tests/torch/quantization/test_onnx_export.py @@ -17,7 +17,7 @@ from torch import nn from nncf import NNCFConfig -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.quantization.layers import QUANTIZATION_MODULES from nncf.torch.quantization.layers import AsymmetricQuantizer from nncf.torch.quantization.layers import BaseQuantizer diff --git a/tests/torch/quantization/test_overflow_issue_export.py b/tests/torch/quantization/test_overflow_issue_export.py index 889156214c6..ab3c3598c7a 100644 --- a/tests/torch/quantization/test_overflow_issue_export.py +++ b/tests/torch/quantization/test_overflow_issue_export.py @@ -16,7 +16,7 @@ import torch from torch import nn -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.checkpoint_loading import load_state from nncf.torch.quantization.layers import AsymmetricQuantizer from nncf.torch.quantization.layers import PTQuantizerSpec diff --git a/tests/torch/quantization/test_range_init.py b/tests/torch/quantization/test_range_init.py index 57c5f55ab4a..762c79ad733 100644 --- a/tests/torch/quantization/test_range_init.py +++ b/tests/torch/quantization/test_range_init.py @@ -28,14 +28,14 @@ from nncf.common.graph import NNCFNodeName from nncf.common.quantization.initialization.range import PerLayerRangeInitConfig from nncf.common.quantization.initialization.range import RangeInitConfig -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig -from nncf.common.quantization.structs import QuantizerGroup from nncf.config import NNCFConfig from nncf.config.structures import QuantizationRangeInitArgs +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizationPoint +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerGroup from nncf.tensor import Tensor from nncf.torch import utils from nncf.torch.checkpoint_loading import load_state diff --git a/tests/torch/quantization/test_sanity_sample.py b/tests/torch/quantization/test_sanity_sample.py index 0ff33ddac6a..cddc02576e1 100644 --- a/tests/torch/quantization/test_sanity_sample.py +++ b/tests/torch/quantization/test_sanity_sample.py @@ -18,7 +18,7 @@ from torch import nn from nncf import NNCFConfig -from nncf.common.quantization.structs import QuantizerConfig +from nncf.quantization.structs import QuantizerConfig from nncf.torch.quantization.algo import QuantizationController from tests.cross_fw.shared.paths import TEST_ROOT from tests.torch.sample_test_validator import SampleType diff --git a/tests/torch/quantization/test_serialize_to_json.py b/tests/torch/quantization/test_serialize_to_json.py index d7d1888b557..d64e4e99674 100644 --- a/tests/torch/quantization/test_serialize_to_json.py +++ b/tests/torch/quantization/test_serialize_to_json.py @@ -14,11 +14,11 @@ import torch from nncf.common.graph.transformations.commands import TargetType -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizationPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup -from nncf.common.quantization.quantizer_setup import WeightQuantizationInsertionPoint -from nncf.common.quantization.structs import QuantizerConfig +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizationPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import WeightQuantizationInsertionPoint +from nncf.quantization.structs import QuantizerConfig from nncf.torch.dynamic_graph.context import Scope from nncf.torch.graph.transformations.commands import PTTargetPoint from tests.cross_fw.shared.serialization import check_serialization diff --git a/tests/torch/quantization/test_solver_quantization_traits.py b/tests/torch/quantization/test_solver_quantization_traits.py index 103b2621d2f..b5686a05861 100644 --- a/tests/torch/quantization/test_solver_quantization_traits.py +++ b/tests/torch/quantization/test_solver_quantization_traits.py @@ -13,10 +13,10 @@ from nncf.common.graph.operator_metatypes import INPUT_NOOP_METATYPES from nncf.common.graph.operator_metatypes import OUTPUT_NOOP_METATYPES from nncf.common.graph.operator_metatypes import OperatorMetatype -from nncf.common.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph as QPSG -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver -from nncf.common.quantization.quantizer_propagation.structs import QuantizationTrait -from nncf.common.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType +from nncf.quantization.quantizer_propagation.graph import QuantizerPropagationStateGraph as QPSG +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.quantizer_propagation.structs import QuantizationTrait +from nncf.quantization.quantizer_propagation.structs import QuantizerPropagationStateGraphNodeType from nncf.torch.graph.operator_metatypes import get_operator_metatypes from nncf.torch.quantization.default_quantization import DEFAULT_PT_QUANT_TRAIT_TO_OP_DICT from tests.common.quantization.mock_graphs import get_ip_graph_for_test diff --git a/tests/torch/quantization/test_strip.py b/tests/torch/quantization/test_strip.py index 8344781c3f8..87c2b796fd5 100644 --- a/tests/torch/quantization/test_strip.py +++ b/tests/torch/quantization/test_strip.py @@ -17,11 +17,11 @@ from torch.quantization.fake_quantize import FakeQuantize import nncf -from nncf.common.quantization.quantizers import calculate_asymmetric_level_ranges -from nncf.common.quantization.quantizers import calculate_symmetric_level_ranges -from nncf.common.quantization.quantizers import get_num_levels -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode from nncf.config import NNCFConfig +from nncf.quantization.fake_quantize import calculate_asymmetric_level_ranges +from nncf.quantization.fake_quantize import calculate_symmetric_level_ranges +from nncf.quantization.fake_quantize import get_num_levels +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.graph.transformations.commands import ExtraCompressionModuleType from nncf.torch.quantization.layers import AsymmetricQuantizer from nncf.torch.quantization.layers import PTQuantizerSpec diff --git a/tests/torch/quantization/test_tracing.py b/tests/torch/quantization/test_tracing.py index b4bae8ba95e..42db3318624 100644 --- a/tests/torch/quantization/test_tracing.py +++ b/tests/torch/quantization/test_tracing.py @@ -11,7 +11,7 @@ import torch from torch import nn -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.quantization.layers import AsymmetricQuantizer from nncf.torch.quantization.layers import PTQuantizerSpec from nncf.torch.quantization.layers import SymmetricQuantizer diff --git a/tests/torch/quantization/test_unified_scales.py b/tests/torch/quantization/test_unified_scales.py index 920f1d8605e..7a8c1d70b55 100644 --- a/tests/torch/quantization/test_unified_scales.py +++ b/tests/torch/quantization/test_unified_scales.py @@ -23,8 +23,8 @@ from nncf.common.graph import NNCFNodeName from nncf.common.graph.transformations.commands import TargetType from nncf.common.hardware.config import HWConfigType -from nncf.common.quantization.quantizer_propagation.solver import QuantizerPropagationSolver -from nncf.common.quantization.structs import NonWeightQuantizerId +from nncf.quantization.quantizer_propagation.solver import QuantizerPropagationSolver +from nncf.quantization.structs import NonWeightQuantizerId from nncf.torch.dynamic_graph.operation_address import OperationAddress from nncf.torch.graph.transformations.commands import PTTargetPoint from nncf.torch.model_creation import wrap_model diff --git a/tests/torch/test_api_behavior.py b/tests/torch/test_api_behavior.py index fa16ca85ca9..216a31c4b7e 100644 --- a/tests/torch/test_api_behavior.py +++ b/tests/torch/test_api_behavior.py @@ -15,7 +15,7 @@ import nncf from nncf import NNCFConfig -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.torch import create_compressed_model from nncf.torch import register_default_init_args from nncf.torch.tensor_statistics.algo import TensorStatisticsCollectionBuilder diff --git a/tests/torch/test_compressed_graph.py b/tests/torch/test_compressed_graph.py index 259ce8dea32..f2bd0d7ab63 100644 --- a/tests/torch/test_compressed_graph.py +++ b/tests/torch/test_compressed_graph.py @@ -26,8 +26,8 @@ from nncf import NNCFConfig from nncf.common.graph import NNCFNodeName from nncf.common.hardware.config import HWConfigType -from nncf.common.quantization.quantizer_setup import ActivationQuantizationInsertionPoint -from nncf.common.quantization.quantizer_setup import SingleConfigQuantizerSetup +from nncf.quantization.quantizer_setup import ActivationQuantizationInsertionPoint +from nncf.quantization.quantizer_setup import SingleConfigQuantizerSetup from nncf.torch import nncf_model_input from nncf.torch import nncf_model_output from nncf.torch.dynamic_graph.graph_tracer import create_dummy_forward_fn diff --git a/tests/torch/test_model_transformer.py b/tests/torch/test_model_transformer.py index e07157a6631..d2e636f874b 100644 --- a/tests/torch/test_model_transformer.py +++ b/tests/torch/test_model_transformer.py @@ -33,12 +33,12 @@ from nncf.common.insertion_point_graph import InsertionPointGraphNodeType from nncf.common.insertion_point_graph import PostHookInsertionPoint from nncf.common.insertion_point_graph import PreHookInsertionPoint -from nncf.common.quantization.structs import NonWeightQuantizerId -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode from nncf.common.utils.backend import BackendType from nncf.common.utils.dot_file_rw import get_graph_without_data from nncf.common.utils.dot_file_rw import read_dot_graph from nncf.common.utils.dot_file_rw import write_dot_graph +from nncf.quantization.structs import NonWeightQuantizerId +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch import wrap_model from nncf.torch.dynamic_graph.context import PreHookId from nncf.torch.dynamic_graph.io_handling import FillerInputElement diff --git a/tests/torch/test_serialization.py b/tests/torch/test_serialization.py index 88047e10a17..628d18883f1 100644 --- a/tests/torch/test_serialization.py +++ b/tests/torch/test_serialization.py @@ -17,8 +17,8 @@ import nncf from nncf.common.factory import ModelTransformerFactory -from nncf.common.quantization.structs import QuantizationScheme from nncf.quantization.algorithms.smooth_quant.torch_backend import SQMultiply +from nncf.quantization.structs import QuantizationScheme from nncf.torch import wrap_model from nncf.torch.graph.transformations.commands import PTTransformationCommand from nncf.torch.graph.transformations.commands import TransformationType diff --git a/tests/torch/test_statistics_aggregator.py b/tests/torch/test_statistics_aggregator.py index 15258e4da42..b7ba2f81a56 100644 --- a/tests/torch/test_statistics_aggregator.py +++ b/tests/torch/test_statistics_aggregator.py @@ -21,13 +21,13 @@ from nncf.common.factory import NNCFGraphFactory from nncf.common.graph.transformations.commands import TargetType from nncf.common.graph.transformations.layout import TransformationLayout -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode -from nncf.common.quantization.structs import QuantizerConfig from nncf.common.tensor_statistics.statistic_point import StatisticPointsContainer from nncf.experimental.common.tensor_statistics.collectors import TensorReducerBase from nncf.quantization.algorithms.fast_bias_correction.torch_backend import PTFastBiasCorrectionAlgoBackend from nncf.quantization.algorithms.min_max.torch_backend import PTMinMaxAlgoBackend from nncf.quantization.range_estimator import RangeEstimatorParametersSet +from nncf.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizerConfig from nncf.torch.dynamic_graph.patch_pytorch import register_operator from nncf.torch.graph.graph import PTTargetPoint from nncf.torch.model_transformer import PTInsertionCommand diff --git a/tools/benchmark_quantize_layers.py b/tools/benchmark_quantize_layers.py index b84ab1dab1f..d7b3a889c4e 100644 --- a/tools/benchmark_quantize_layers.py +++ b/tools/benchmark_quantize_layers.py @@ -21,7 +21,7 @@ import torch.multiprocessing as mp from tqdm import tqdm -from nncf.common.quantization.structs import QuantizationScheme as QuantizationMode +from nncf.quantization.structs import QuantizationScheme as QuantizationMode from nncf.torch.quantization.layers import AsymmetricQuantizer from nncf.torch.quantization.layers import BaseQuantizer from nncf.torch.quantization.layers import PTQuantizerSpec