mct-nightly 2.1.0.20240812.432__py3-none-any.whl → 2.1.0.20240813.135859__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. {mct_nightly-2.1.0.20240812.432.dist-info → mct_nightly-2.1.0.20240813.135859.dist-info}/METADATA +1 -1
  2. {mct_nightly-2.1.0.20240812.432.dist-info → mct_nightly-2.1.0.20240813.135859.dist-info}/RECORD +60 -59
  3. model_compression_toolkit/__init__.py +1 -1
  4. model_compression_toolkit/constants.py +0 -7
  5. model_compression_toolkit/core/common/graph/functional_node.py +1 -1
  6. model_compression_toolkit/core/common/quantization/bit_width_config.py +6 -1
  7. model_compression_toolkit/core/common/quantization/quantization_config.py +1 -1
  8. model_compression_toolkit/core/keras/reader/node_builder.py +2 -1
  9. model_compression_toolkit/core/keras/resource_utilization_data_facade.py +4 -3
  10. model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +1 -1
  11. model_compression_toolkit/data_generation/__init__.py +1 -1
  12. model_compression_toolkit/data_generation/keras/keras_data_generation.py +7 -3
  13. model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +1 -1
  14. model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +4 -3
  15. model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +1 -1
  16. model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +1 -1
  17. model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +4 -3
  18. model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +4 -3
  19. model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +1 -1
  20. model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +1 -2
  21. model_compression_toolkit/gptq/keras/quantization_facade.py +8 -5
  22. model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +4 -3
  23. model_compression_toolkit/gptq/pytorch/quantization_facade.py +2 -1
  24. model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +1 -1
  25. model_compression_toolkit/pruning/keras/pruning_facade.py +5 -3
  26. model_compression_toolkit/pruning/pytorch/pruning_facade.py +2 -1
  27. model_compression_toolkit/ptq/keras/quantization_facade.py +5 -3
  28. model_compression_toolkit/ptq/pytorch/quantization_facade.py +2 -1
  29. model_compression_toolkit/qat/keras/quantization_facade.py +7 -5
  30. model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +4 -3
  31. model_compression_toolkit/qat/pytorch/quantization_facade.py +2 -1
  32. model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +1 -1
  33. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +1 -1
  34. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +2 -1
  35. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +1 -1
  36. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +1 -1
  37. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +1 -1
  38. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py +1 -1
  39. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py +1 -1
  40. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py +1 -1
  41. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py +1 -1
  42. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py +1 -0
  43. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py +5 -3
  44. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py +2 -0
  45. model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +1 -1
  46. model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +2 -1
  47. model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +1 -1
  48. model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +2 -1
  49. model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +4 -3
  50. model_compression_toolkit/trainable_infrastructure/keras/load_model.py +4 -3
  51. model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +4 -3
  52. model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +1 -1
  53. model_compression_toolkit/verify_packages.py +33 -0
  54. model_compression_toolkit/xquant/keras/facade_xquant_report.py +4 -3
  55. model_compression_toolkit/xquant/keras/tensorboard_utils.py +2 -1
  56. model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +1 -1
  57. model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +2 -1
  58. {mct_nightly-2.1.0.20240812.432.dist-info → mct_nightly-2.1.0.20240813.135859.dist-info}/LICENSE.md +0 -0
  59. {mct_nightly-2.1.0.20240812.432.dist-info → mct_nightly-2.1.0.20240813.135859.dist-info}/WHEEL +0 -0
  60. {mct_nightly-2.1.0.20240812.432.dist-info → mct_nightly-2.1.0.20240813.135859.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,8 @@ from model_compression_toolkit.core.common.quantization.quantize_graph_weights i
21
21
  from model_compression_toolkit.core.common.visualization.tensorboard_writer import init_tensorboard_writer
22
22
  from model_compression_toolkit.gptq.common.gptq_constants import REG_DEFAULT
23
23
  from model_compression_toolkit.logger import Logger
24
- from model_compression_toolkit.constants import TENSORFLOW, FOUND_TF, ACT_HESSIAN_DEFAULT_BATCH_SIZE
24
+ from model_compression_toolkit.constants import TENSORFLOW, ACT_HESSIAN_DEFAULT_BATCH_SIZE
25
+ from model_compression_toolkit.verify_packages import FOUND_TF
25
26
  from model_compression_toolkit.core.common.user_info import UserInformation
26
27
  from model_compression_toolkit.gptq.common.gptq_config import GradientPTQConfig, GPTQHessianScoresConfig
27
28
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
@@ -251,10 +252,12 @@ else:
251
252
  # If tensorflow is not installed,
252
253
  # we raise an exception when trying to use these functions.
253
254
  def get_keras_gptq_config(*args, **kwargs):
254
- Logger.critical("Tensorflow must be installed to use get_keras_gptq_config. "
255
- "The 'tensorflow' package is missing.") # pragma: no cover
255
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
256
+ "get_keras_gptq_config. The 'tensorflow' package is missing or is "
257
+ "installed with a version higher than 2.15.") # pragma: no cover
256
258
 
257
259
 
258
260
  def keras_gradient_post_training_quantization(*args, **kwargs):
259
- Logger.critical("Tensorflow must be installed to use keras_gradient_post_training_quantization. "
260
- "The 'tensorflow' package is missing.") # pragma: no cover
261
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
262
+ "keras_gradient_post_training_quantization. The 'tensorflow' package is missing or is "
263
+ "installed with a version higher than 2.15.") # pragma: no cover
@@ -16,7 +16,7 @@ from abc import abstractmethod
16
16
  from typing import Union, Dict, List
17
17
 
18
18
  from model_compression_toolkit.logger import Logger
19
- from model_compression_toolkit.constants import FOUND_TF
19
+ from model_compression_toolkit.verify_packages import FOUND_TF
20
20
  from model_compression_toolkit.gptq.common.gptq_constants import WEIGHTS_QUANTIZATION_PARAMS
21
21
 
22
22
  from model_compression_toolkit.trainable_infrastructure import TrainableQuantizerWeightsConfig, TrainableQuantizerActivationConfig
@@ -105,5 +105,6 @@ if FOUND_TF:
105
105
  else:
106
106
  class BaseKerasGPTQTrainableQuantizer: # pragma: no cover
107
107
  def __init__(self, *args, **kwargs):
108
- Logger.critical("Tensorflow must be installed to use BaseKerasGPTQTrainableQuantizer. "
109
- "The 'tensorflow' package is missing.") # pragma: no cover
108
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
109
+ "BaseKerasGPTQTrainableQuantizer. The 'tensorflow' package is missing or is "
110
+ "installed with a version higher than 2.15.") # pragma: no cover
@@ -16,7 +16,8 @@ import copy
16
16
 
17
17
  from typing import Callable
18
18
  from model_compression_toolkit.core import common
19
- from model_compression_toolkit.constants import FOUND_TORCH, ACT_HESSIAN_DEFAULT_BATCH_SIZE
19
+ from model_compression_toolkit.constants import ACT_HESSIAN_DEFAULT_BATCH_SIZE
20
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
20
21
  from model_compression_toolkit.core.common.visualization.tensorboard_writer import init_tensorboard_writer
21
22
  from model_compression_toolkit.gptq.common.gptq_constants import REG_DEFAULT
22
23
  from model_compression_toolkit.logger import Logger
@@ -16,7 +16,7 @@ from abc import abstractmethod
16
16
  from typing import Union, Dict
17
17
 
18
18
  from model_compression_toolkit.logger import Logger
19
- from model_compression_toolkit.constants import FOUND_TORCH
19
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
20
20
  from model_compression_toolkit.gptq.common.gptq_constants import WEIGHTS_QUANTIZATION_PARAMS
21
21
 
22
22
  from model_compression_toolkit.trainable_infrastructure import TrainableQuantizerWeightsConfig, \
@@ -16,7 +16,8 @@
16
16
  from typing import Callable, Tuple
17
17
 
18
18
  from model_compression_toolkit import get_target_platform_capabilities
19
- from model_compression_toolkit.constants import TENSORFLOW, FOUND_TF
19
+ from model_compression_toolkit.constants import TENSORFLOW
20
+ from model_compression_toolkit.verify_packages import FOUND_TF
20
21
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
21
22
  from model_compression_toolkit.core.common.pruning.pruner import Pruner
22
23
  from model_compression_toolkit.core.common.pruning.pruning_config import PruningConfig
@@ -149,5 +150,6 @@ else:
149
150
  # If tensorflow is not installed,
150
151
  # we raise an exception when trying to use these functions.
151
152
  def keras_pruning_experimental(*args, **kwargs):
152
- Logger.critical("Tensorflow must be installed to use keras_pruning_experimental. "
153
- "The 'tensorflow' package is missing.") # pragma: no cover
153
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
154
+ "keras_pruning_experimental. The 'tensorflow' package is missing or is "
155
+ "installed with a version higher than 2.15.") # pragma: no cover
@@ -15,7 +15,8 @@
15
15
 
16
16
  from typing import Callable, Tuple
17
17
  from model_compression_toolkit import get_target_platform_capabilities
18
- from model_compression_toolkit.constants import FOUND_TORCH, PYTORCH
18
+ from model_compression_toolkit.constants import PYTORCH
19
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
19
20
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
20
21
  from model_compression_toolkit.core.common.pruning.pruner import Pruner
21
22
  from model_compression_toolkit.core.common.pruning.pruning_config import PruningConfig
@@ -21,7 +21,8 @@ from model_compression_toolkit.core.analyzer import analyzer_model_quantization
21
21
  from model_compression_toolkit.core.common.quantization.quantize_graph_weights import quantize_graph_weights
22
22
  from model_compression_toolkit.core.common.visualization.tensorboard_writer import init_tensorboard_writer
23
23
  from model_compression_toolkit.logger import Logger
24
- from model_compression_toolkit.constants import TENSORFLOW, FOUND_TF
24
+ from model_compression_toolkit.constants import TENSORFLOW
25
+ from model_compression_toolkit.verify_packages import FOUND_TF
25
26
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
26
27
  from model_compression_toolkit.core.common.mixed_precision.mixed_precision_quantization_config import \
27
28
  MixedPrecisionQuantizationConfig
@@ -178,5 +179,6 @@ else:
178
179
  # If tensorflow is not installed,
179
180
  # we raise an exception when trying to use these functions.
180
181
  def keras_post_training_quantization(*args, **kwargs):
181
- Logger.critical("Tensorflow must be installed to use keras_post_training_quantization. "
182
- "The 'tensorflow' package is missing.") # pragma: no cover
182
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
183
+ "keras_post_training_quantization. The 'tensorflow' package is missing or is "
184
+ "installed with a version higher than 2.15.") # pragma: no cover
@@ -18,7 +18,8 @@ from typing import Callable
18
18
 
19
19
  from model_compression_toolkit.core.common.visualization.tensorboard_writer import init_tensorboard_writer
20
20
  from model_compression_toolkit.logger import Logger
21
- from model_compression_toolkit.constants import PYTORCH, FOUND_TORCH
21
+ from model_compression_toolkit.constants import PYTORCH
22
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
22
23
  from model_compression_toolkit.target_platform_capabilities.target_platform import TargetPlatformCapabilities
23
24
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
24
25
  from model_compression_toolkit.core import CoreConfig
@@ -19,7 +19,7 @@ from functools import partial
19
19
  from model_compression_toolkit.core import CoreConfig
20
20
  from model_compression_toolkit.core.common.visualization.tensorboard_writer import init_tensorboard_writer
21
21
  from model_compression_toolkit.logger import Logger
22
- from model_compression_toolkit.constants import FOUND_TF
22
+ from model_compression_toolkit.verify_packages import FOUND_TF
23
23
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
24
24
  from model_compression_toolkit.core.common.mixed_precision.mixed_precision_quantization_config import \
25
25
  MixedPrecisionQuantizationConfig
@@ -291,10 +291,12 @@ else:
291
291
  # If tensorflow is not installed,
292
292
  # we raise an exception when trying to use these functions.
293
293
  def keras_quantization_aware_training_init_experimental(*args, **kwargs):
294
- Logger.critical("Tensorflow must be installed to use keras_quantization_aware_training_init_experimental. "
295
- "The 'tensorflow' package is missing.") # pragma: no cover
294
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
295
+ "keras_quantization_aware_training_init_experimental. The 'tensorflow' package is missing "
296
+ "or is installed with a version higher than 2.15.") # pragma: no cover
296
297
 
297
298
 
298
299
  def keras_quantization_aware_training_finalize_experimental(*args, **kwargs):
299
- Logger.critical("Tensorflow must be installed to use keras_quantization_aware_training_finalize_experimental. "
300
- "The 'tensorflow' package is missing.") # pragma: no cover
300
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
301
+ "keras_quantization_aware_training_finalize_experimental. The 'tensorflow' package is missing "
302
+ "or is installed with a version higher than 2.15.") # pragma: no cover
@@ -15,7 +15,7 @@
15
15
  from typing import Union
16
16
 
17
17
  from model_compression_toolkit.logger import Logger
18
- from model_compression_toolkit.constants import FOUND_TF
18
+ from model_compression_toolkit.verify_packages import FOUND_TF
19
19
 
20
20
  from model_compression_toolkit.trainable_infrastructure import TrainableQuantizerWeightsConfig, \
21
21
  TrainableQuantizerActivationConfig, BaseKerasTrainableQuantizer
@@ -44,5 +44,6 @@ else: # pragma: no cover
44
44
  quantization_config: Union[TrainableQuantizerWeightsConfig, TrainableQuantizerActivationConfig]):
45
45
 
46
46
  super().__init__(quantization_config)
47
- Logger.critical("Tensorflow must be installed to use BaseKerasQATTrainableQuantizer. "
48
- "The 'tensorflow' package is missing.") # pragma: no cover
47
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
48
+ "BaseKerasQATTrainableQuantizer. The 'tensorflow' package is missing "
49
+ "or is installed with a version higher than 2.15.") # pragma: no cover
@@ -16,7 +16,8 @@ import copy
16
16
  from typing import Callable
17
17
  from functools import partial
18
18
 
19
- from model_compression_toolkit.constants import FOUND_TORCH, PYTORCH
19
+ from model_compression_toolkit.constants import PYTORCH
20
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
20
21
 
21
22
  from model_compression_toolkit.core import CoreConfig
22
23
  from model_compression_toolkit.core import common
@@ -15,7 +15,7 @@
15
15
  from typing import Union
16
16
 
17
17
  from model_compression_toolkit.logger import Logger
18
- from model_compression_toolkit.constants import FOUND_TORCH
18
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
19
19
 
20
20
  from model_compression_toolkit.trainable_infrastructure import TrainableQuantizerWeightsConfig, \
21
21
  TrainableQuantizerActivationConfig
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- from model_compression_toolkit.constants import FOUND_TF, FOUND_TORCH
15
+ from model_compression_toolkit.verify_packages import FOUND_TORCH, FOUND_TF
16
16
  from model_compression_toolkit.target_platform_capabilities.tpc_models.imx500_tpc.v1.tp_model import get_tp_model, generate_tp_model, \
17
17
  get_op_quantization_configs
18
18
  if FOUND_TF:
@@ -14,7 +14,8 @@
14
14
  # ==============================================================================
15
15
  from model_compression_toolkit.logger import Logger
16
16
 
17
- from model_compression_toolkit.constants import FOUND_TF, FOUND_TORCH, TENSORFLOW, PYTORCH
17
+ from model_compression_toolkit.constants import TENSORFLOW, PYTORCH
18
+ from model_compression_toolkit.verify_packages import FOUND_TORCH, FOUND_TF
18
19
  from model_compression_toolkit.target_platform_capabilities.constants import LATEST
19
20
 
20
21
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_DEPTHWISE_KERNEL, \
21
21
  KERAS_KERNEL, BIAS_ATTR, BIAS
22
22
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_KERNEL, BIAS_ATTR, \
21
21
  KERAS_DEPTHWISE_KERNEL, BIAS
22
22
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_DEPTHWISE_KERNEL, \
21
21
  KERAS_KERNEL, BIAS_ATTR, BIAS
22
22
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_DEPTHWISE_KERNEL, \
21
21
  KERAS_KERNEL, BIAS_ATTR, BIAS
22
22
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_KERNEL, BIAS_ATTR, \
21
21
  KERAS_DEPTHWISE_KERNEL, BIAS
22
22
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_DEPTHWISE_KERNEL, \
21
21
  KERAS_KERNEL, BIAS_ATTR, BIAS
22
22
 
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_KERNEL, BIAS_ATTR, \
21
21
  KERAS_DEPTHWISE_KERNEL, BIAS
22
22
 
@@ -199,6 +199,7 @@ def generate_tp_model(default_config: OpQuantizationConfig,
199
199
  default_qco.clone_and_edit(enable_activation_quantization=False,
200
200
  supported_input_activation_n_bits=(8, 16))
201
201
  .clone_and_edit_weight_attribute(enable_weights_quantization=False))
202
+ tp.OperatorsSet("Default16BitInout", const_configuration_options_inout16)
202
203
 
203
204
  # Create Mixed-Precision quantization configuration options from the given list of OpQuantizationConfig objects
204
205
  mixed_precision_configuration_options = tp.QuantizationConfigOptions(mixed_precision_cfg_list,
@@ -16,7 +16,7 @@ import tensorflow as tf
16
16
  from packaging import version
17
17
 
18
18
  from model_compression_toolkit.defaultdict import DefaultDict
19
- from model_compression_toolkit.constants import FOUND_SONY_CUSTOM_LAYERS
19
+ from model_compression_toolkit.verify_packages import FOUND_SONY_CUSTOM_LAYERS
20
20
  from model_compression_toolkit.target_platform_capabilities.constants import KERNEL_ATTR, KERAS_DEPTHWISE_KERNEL, \
21
21
  KERAS_KERNEL, BIAS_ATTR, BIAS
22
22
 
@@ -26,11 +26,11 @@ if FOUND_SONY_CUSTOM_LAYERS:
26
26
  if version.parse(tf.__version__) >= version.parse("2.13"):
27
27
  from keras.src.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \
28
28
  MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \
29
- Conv2DTranspose, Identity
29
+ Conv2DTranspose, Identity, Concatenate
30
30
  else:
31
31
  from keras.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \
32
32
  MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \
33
- Conv2DTranspose, Identity
33
+ Conv2DTranspose, Identity, Concatenate
34
34
 
35
35
  from model_compression_toolkit.target_platform_capabilities.tpc_models.imx500_tpc.v4.tp_model import get_tp_model
36
36
  import model_compression_toolkit as mct
@@ -93,6 +93,8 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel):
93
93
 
94
94
  with keras_tpc:
95
95
  tp.OperationsSetToLayers("NoQuantization", no_quant_list)
96
+ tp.OperationsSetToLayers("Default16BitInout", [tf.stack,
97
+ tf.concat, Concatenate])
96
98
  tp.OperationsSetToLayers("Conv",
97
99
  [Conv2D,
98
100
  DepthwiseConv2D,
@@ -85,6 +85,8 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel):
85
85
  topk,
86
86
  squeeze,
87
87
  MaxPool2d])
88
+ tp.OperationsSetToLayers("Default16BitInout",
89
+ [torch.stack, torch.cat, torch.concat, torch.concatenate])
88
90
 
89
91
  tp.OperationsSetToLayers("Conv", [Conv2d, ConvTranspose2d],
90
92
  attr_mapping=pytorch_linear_attr_mapping)
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- from model_compression_toolkit.constants import FOUND_TF, FOUND_TORCH
15
+ from model_compression_toolkit.verify_packages import FOUND_TORCH, FOUND_TF
16
16
  from model_compression_toolkit.target_platform_capabilities.tpc_models.qnnpack_tpc.v1.tp_model import get_tp_model, generate_tp_model, get_op_quantization_configs
17
17
  if FOUND_TF:
18
18
  from model_compression_toolkit.target_platform_capabilities.tpc_models.qnnpack_tpc.v1.tpc_keras import get_keras_tpc as get_keras_tpc_latest
@@ -13,7 +13,8 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
 
16
- from model_compression_toolkit.constants import FOUND_TF, FOUND_TORCH, TENSORFLOW, PYTORCH
16
+ from model_compression_toolkit.constants import TENSORFLOW, PYTORCH
17
+ from model_compression_toolkit.verify_packages import FOUND_TORCH, FOUND_TF
17
18
  from model_compression_toolkit.logger import Logger
18
19
  from model_compression_toolkit.target_platform_capabilities.constants import LATEST
19
20
 
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- from model_compression_toolkit.constants import FOUND_TF, FOUND_TORCH
15
+ from model_compression_toolkit.verify_packages import FOUND_TORCH, FOUND_TF
16
16
  from model_compression_toolkit.target_platform_capabilities.tpc_models.tflite_tpc.v1.tp_model import get_tp_model, generate_tp_model, get_op_quantization_configs
17
17
  if FOUND_TF:
18
18
  from model_compression_toolkit.target_platform_capabilities.tpc_models.tflite_tpc.v1.tpc_keras import get_keras_tpc as get_keras_tpc_latest
@@ -13,7 +13,8 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
 
16
- from model_compression_toolkit.constants import FOUND_TF, FOUND_TORCH, TENSORFLOW, PYTORCH
16
+ from model_compression_toolkit.constants import TENSORFLOW, PYTORCH
17
+ from model_compression_toolkit.verify_packages import FOUND_TORCH, FOUND_TF
17
18
  from model_compression_toolkit.logger import Logger
18
19
  from model_compression_toolkit.target_platform_capabilities.constants import LATEST
19
20
 
@@ -15,7 +15,7 @@
15
15
  from typing import Dict, Any, Union, List
16
16
 
17
17
  from model_compression_toolkit.logger import Logger
18
- from model_compression_toolkit.constants import FOUND_TF
18
+ from model_compression_toolkit.verify_packages import FOUND_TF
19
19
  from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import VariableGroup
20
20
  from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import BaseTrainableQuantizer, VAR, GROUP
21
21
  from model_compression_toolkit.trainable_infrastructure import TrainableQuantizerWeightsConfig, \
@@ -83,5 +83,6 @@ if FOUND_TF:
83
83
  else:
84
84
  class BaseKerasTrainableQuantizer(BaseTrainableQuantizer):
85
85
  def __init__(self, *args, **kwargs):
86
- Logger.critical("Tensorflow must be installed to use BaseKerasTrainableQuantizer. "
87
- "The 'tensorflow' package is missing.") # pragma: no cover
86
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
87
+ "BaseKerasTrainableQuantizer. The 'tensorflow' package is missing "
88
+ "or is installed with a version higher than 2.15.") # pragma: no cover
@@ -17,7 +17,7 @@ from typing import Any
17
17
  import mct_quantizers
18
18
  from mct_quantizers.common.get_all_subclasses import get_all_subclasses
19
19
 
20
- from model_compression_toolkit.constants import FOUND_TF
20
+ from model_compression_toolkit.verify_packages import FOUND_TF
21
21
  from model_compression_toolkit.logger import Logger
22
22
 
23
23
  if FOUND_TF:
@@ -72,5 +72,6 @@ else:
72
72
  Returns: A keras Model
73
73
 
74
74
  """
75
- Logger.critical("Tensorflow must be installed to use keras_load_quantized_model. "
76
- "The 'tensorflow' package is missing.") # pragma: no cover
75
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
76
+ "keras_load_quantized_model. The 'tensorflow' package is missing "
77
+ "or is installed with a version higher than 2.15.") # pragma: no cover
@@ -14,7 +14,7 @@
14
14
  # ==============================================================================
15
15
  from typing import Dict
16
16
 
17
- from model_compression_toolkit.constants import FOUND_TF
17
+ from model_compression_toolkit.verify_packages import FOUND_TF
18
18
  from model_compression_toolkit.logger import Logger
19
19
  from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import BaseTrainableQuantizer
20
20
 
@@ -110,5 +110,6 @@ else:
110
110
  layer: A keras layer.
111
111
  weights_quantizers: A dictionary between a weight's name to its quantizer.
112
112
  """
113
- Logger.critical("Tensorflow must be installed to use KerasTrainableQuantizationWrapper. "
114
- "The 'tensorflow' package is missing.") # pragma: no cover
113
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
114
+ "KerasTrainableQuantizationWrapper. The 'tensorflow' package is missing "
115
+ "or is installed with a version higher than 2.15.") # pragma: no cover
@@ -15,7 +15,7 @@
15
15
  from typing import Union, List
16
16
 
17
17
  from model_compression_toolkit.logger import Logger
18
- from model_compression_toolkit.constants import FOUND_TORCH
18
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
19
19
  from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import VariableGroup
20
20
  from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import BaseTrainableQuantizer, VAR, GROUP
21
21
  from model_compression_toolkit.trainable_infrastructure import TrainableQuantizerWeightsConfig, \
@@ -0,0 +1,33 @@
1
+ # Copyright 2024 Sony Semiconductor Israel, Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+
16
+ import importlib
17
+ from packaging import version
18
+
19
+ from model_compression_toolkit.constants import TENSORFLOW
20
+
21
+ FOUND_TF = importlib.util.find_spec(TENSORFLOW) is not None
22
+
23
+ if FOUND_TF:
24
+ import tensorflow as tf
25
+ # MCT doesn't support TensorFlow version 2.16 or higher
26
+ if version.parse(tf.__version__) >= version.parse("2.16"):
27
+ FOUND_TF = False
28
+
29
+ FOUND_TORCH = importlib.util.find_spec("torch") is not None
30
+ FOUND_TORCHVISION = importlib.util.find_spec("torchvision") is not None
31
+ FOUND_ONNX = importlib.util.find_spec("onnx") is not None
32
+ FOUND_ONNXRUNTIME = importlib.util.find_spec("onnxruntime") is not None
33
+ FOUND_SONY_CUSTOM_LAYERS = importlib.util.find_spec('sony_custom_layers') is not None
@@ -15,7 +15,7 @@
15
15
 
16
16
  from typing import Callable, Dict, Any
17
17
 
18
- from model_compression_toolkit.constants import FOUND_TF
18
+ from model_compression_toolkit.verify_packages import FOUND_TF
19
19
  from model_compression_toolkit.xquant.common.core_report_generator import core_report_generator
20
20
  from model_compression_toolkit.xquant import XQuantConfig
21
21
  from model_compression_toolkit.logger import Logger
@@ -61,5 +61,6 @@ if FOUND_TF:
61
61
  return _collected_data
62
62
  else:
63
63
  def xquant_report_keras_experimental(*args, **kwargs):
64
- Logger.critical("Tensorflow must be installed to use xquant_report_keras_experimental. "
65
- "The 'tensorflow' package is missing.") # pragma: no cover
64
+ Logger.critical("Tensorflow must be installed with a version of 2.15 or lower to use "
65
+ "xquant_report_keras_experimental. The 'tensorflow' package is missing "
66
+ "or is installed with a version higher than 2.15.") # pragma: no cover
@@ -76,7 +76,8 @@ class KerasTensorboardUtils(TensorboardUtils):
76
76
  # Read the quantized model into a graph structure.
77
77
  quant_graph = model_reader(quantized_model)
78
78
 
79
- insert_cut_info_into_graph(quant_graph, quantized_model_metadata)
79
+ if 'scheduling_info' in quantized_model_metadata:
80
+ insert_cut_info_into_graph(quant_graph, quantized_model_metadata)
80
81
 
81
82
  # Iterate over each node in the graph.
82
83
  for node in quant_graph.nodes:
@@ -15,7 +15,7 @@
15
15
 
16
16
  from typing import Callable
17
17
 
18
- from model_compression_toolkit.constants import FOUND_TORCH
18
+ from model_compression_toolkit.verify_packages import FOUND_TORCH
19
19
  from model_compression_toolkit.xquant.common.core_report_generator import core_report_generator
20
20
  from model_compression_toolkit.xquant import XQuantConfig
21
21
  from model_compression_toolkit.logger import Logger
@@ -79,7 +79,8 @@ class PytorchTensorboardUtils(TensorboardUtils):
79
79
  to_tensor=self.fw_impl.to_tensor,
80
80
  to_numpy=self.fw_impl.to_numpy)
81
81
 
82
- insert_cut_info_into_graph(quant_graph, quantized_model_metadata, quantized_model)
82
+ if 'scheduling_info' in quantized_model_metadata:
83
+ insert_cut_info_into_graph(quant_graph, quantized_model_metadata, quantized_model)
83
84
 
84
85
  # Iterate through each node in the graph
85
86
  for node in quant_graph.nodes: