mct-nightly 2.4.0.20250706.701__tar.gz → 2.4.0.20250708.612__tar.gz
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.
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/PKG-INFO +1 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/mct_nightly.egg-info/PKG-INFO +1 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/mct_nightly.egg-info/SOURCES.txt +0 -2
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/__init__.py +1 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/base_collector.py +4 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/mean_collector.py +7 -4
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +7 -4
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/model_collector.py +17 -3
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/memory_calculator.py +1 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +25 -87
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +26 -17
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +27 -49
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +12 -7
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +4 -14
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +2 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +4 -13
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +3 -3
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +5 -7
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +7 -5
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/graph_prep_runner.py +1 -11
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/default_framework_info.py +1 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +21 -11
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/keras_implementation.py +2 -2
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +8 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/default_framework_info.py +1 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +9 -1
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/quantization_prep_runner.py +2 -2
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -3
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -3
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -3
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -2
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -6
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +2 -4
- mct_nightly-2.4.0.20250706.701/model_compression_toolkit/core/common/model_validation.py +0 -41
- mct_nightly-2.4.0.20250706.701/model_compression_toolkit/core/keras/keras_model_validation.py +0 -37
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/LICENSE.md +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/README.md +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/mct_nightly.egg-info/requires.txt +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/collectors/weighted_histogram_collector.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/framework_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/fusion/fusing_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/fusion/graph_fuser.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/edge.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/sensitivity_eval/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/sensitivity_eval/metric_calculators.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/sensitivity_eval/sensitivity_evaluation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/sensitivity_eval/set_layer_to_bitwidth.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/user_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/data_util.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/quantization/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/quantization/activation_quantization_fn_factory.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/quantization/fake_quant_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/quantization/lut_fake_quant.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/common.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/convtranspose_dynamic_padding.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/quantization/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/quantization/activation_quantization_fn_factory.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/quantization/fake_quant_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/quantization/lut_fake_quant.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/pytorch/utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/core/runner.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/enums.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/defaultdict.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/logger.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/metadata.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/pruning/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/quantization_preparation/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/quantization_preparation/load_fqc.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/schema/schema_compatability.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/schema/v2.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/verify_packages.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/constants.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/setup.cfg +0 -0
- {mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/setup.py +0 -0
{mct_nightly-2.4.0.20250706.701 → mct_nightly-2.4.0.20250708.612}/mct_nightly.egg-info/SOURCES.txt
RENAMED
|
@@ -25,7 +25,6 @@ model_compression_toolkit/core/common/framework_info.py
|
|
|
25
25
|
model_compression_toolkit/core/common/memory_computation.py
|
|
26
26
|
model_compression_toolkit/core/common/model_builder_mode.py
|
|
27
27
|
model_compression_toolkit/core/common/model_collector.py
|
|
28
|
-
model_compression_toolkit/core/common/model_validation.py
|
|
29
28
|
model_compression_toolkit/core/common/node_prior_info.py
|
|
30
29
|
model_compression_toolkit/core/common/similarity_analyzer.py
|
|
31
30
|
model_compression_toolkit/core/common/user_info.py
|
|
@@ -167,7 +166,6 @@ model_compression_toolkit/core/keras/custom_layer_validation.py
|
|
|
167
166
|
model_compression_toolkit/core/keras/data_util.py
|
|
168
167
|
model_compression_toolkit/core/keras/default_framework_info.py
|
|
169
168
|
model_compression_toolkit/core/keras/keras_implementation.py
|
|
170
|
-
model_compression_toolkit/core/keras/keras_model_validation.py
|
|
171
169
|
model_compression_toolkit/core/keras/keras_node_prior_info.py
|
|
172
170
|
model_compression_toolkit/core/keras/resource_utilization_data_facade.py
|
|
173
171
|
model_compression_toolkit/core/keras/tf_tensor_numpy.py
|
|
@@ -27,4 +27,4 @@ from model_compression_toolkit import data_generation
|
|
|
27
27
|
from model_compression_toolkit import pruning
|
|
28
28
|
from model_compression_toolkit.trainable_infrastructure.keras.load_model import keras_load_quantized_model
|
|
29
29
|
|
|
30
|
-
__version__ = "2.4.0.
|
|
30
|
+
__version__ = "2.4.0.20250708.000612"
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ==============================================================================
|
|
15
15
|
|
|
16
|
+
from abc import ABC, abstractmethod
|
|
16
17
|
import numpy as np
|
|
17
18
|
from model_compression_toolkit.logger import Logger
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
class BaseCollector(
|
|
21
|
+
class BaseCollector(ABC):
|
|
21
22
|
"""
|
|
22
23
|
Base class for statistics collection object.
|
|
23
24
|
"""
|
|
@@ -26,6 +27,7 @@ class BaseCollector(object):
|
|
|
26
27
|
# When manipulation statistics in a granularity they were not collected by, the data is invalid.
|
|
27
28
|
self.is_legal = True
|
|
28
29
|
|
|
30
|
+
@abstractmethod
|
|
29
31
|
def scale(self, scale_factor: np.ndarray):
|
|
30
32
|
"""
|
|
31
33
|
Scale all statistics in collector by some factor.
|
|
@@ -37,6 +39,7 @@ class BaseCollector(object):
|
|
|
37
39
|
raise NotImplemented(
|
|
38
40
|
f'{self.__class__.__name__} needs to implement scale operation for its state.') # pragma: no cover
|
|
39
41
|
|
|
42
|
+
@abstractmethod
|
|
40
43
|
def shift(self, shift_value: np.ndarray):
|
|
41
44
|
"""
|
|
42
45
|
Shift all statistics in collector by some value.
|
|
@@ -87,10 +87,13 @@ class MeanCollector(BaseCollector):
|
|
|
87
87
|
x: Tensor that goes through the mean collector and needs to be considered in the mean computation.
|
|
88
88
|
"""
|
|
89
89
|
self.i += 1 # Update the iteration index
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
if self.axis is None:
|
|
91
|
+
mu = np.mean(np.reshape(x, [1, -1]), axis=-1) # mean per channel for a batch
|
|
92
|
+
else:
|
|
93
|
+
axis = (len(x.shape) - 1) if self.axis == LAST_AXIS else self.axis
|
|
94
|
+
n = x.shape[axis]
|
|
95
|
+
transpose_index = [axis, *[i for i in range(len(x.shape)) if i != axis]]
|
|
96
|
+
mu = np.mean(np.reshape(np.transpose(x, transpose_index), [n, -1]), axis=-1) # mean per channel for a batch
|
|
94
97
|
self.current_sum += mu # sum of all batches
|
|
95
98
|
self.current_mean = self.current_sum / self.i # mean of all batches
|
|
96
99
|
|
|
@@ -130,10 +130,13 @@ class MinMaxPerChannelCollector(BaseCollector):
|
|
|
130
130
|
x: Tensor that goes through the collector and needs to be considered in the min/max computation.
|
|
131
131
|
"""
|
|
132
132
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
133
|
+
if self.axis is None:
|
|
134
|
+
x_reshape = np.reshape(x, [1, -1])
|
|
135
|
+
else:
|
|
136
|
+
axis = (len(x.shape) - 1) if self.axis == LAST_AXIS else self.axis
|
|
137
|
+
n = x.shape[axis]
|
|
138
|
+
transpose_index = [axis, *[i for i in range(len(x.shape)) if i != axis]]
|
|
139
|
+
x_reshape = np.reshape(np.transpose(x, transpose_index), [n, -1])
|
|
137
140
|
if self.state is None:
|
|
138
141
|
x_max = np.max(x_reshape, axis=-1)
|
|
139
142
|
x_min = np.min(x_reshape, axis=-1)
|
|
@@ -57,19 +57,21 @@ def create_stats_collector_for_node(node: common.BaseNode,
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
def create_tensor2node(graph: common.Graph,
|
|
60
|
-
node: common.BaseNode
|
|
60
|
+
node: common.BaseNode,
|
|
61
|
+
next_node_output_channel_axis: int):
|
|
61
62
|
"""
|
|
62
63
|
Force statistic collector creation and assignment for a node.
|
|
63
64
|
Args:
|
|
64
65
|
graph: Graph of the node (for retrieving the current tensor).
|
|
65
66
|
node: Node to create a tensor for.
|
|
67
|
+
next_node_output_channel_axis: channel output axis of next node.
|
|
66
68
|
|
|
67
69
|
"""
|
|
68
70
|
current_sc = graph.get_out_stats_collector(node)
|
|
69
71
|
is_list_nostat_collectors = isinstance(current_sc, list) and len(
|
|
70
72
|
[sc for sc in current_sc if not isinstance(sc, common.NoStatsCollector)]) == 0
|
|
71
73
|
if isinstance(current_sc, common.NoStatsCollector) or current_sc is None or is_list_nostat_collectors:
|
|
72
|
-
stats_collector = common.StatsCollector(node.out_channel_axis)
|
|
74
|
+
stats_collector = common.StatsCollector(next_node_output_channel_axis if node.out_channel_axis is None else node.out_channel_axis)
|
|
73
75
|
graph.set_out_stats_collector_to_node(node, stats_collector)
|
|
74
76
|
|
|
75
77
|
|
|
@@ -157,6 +159,17 @@ class ModelCollector:
|
|
|
157
159
|
for n in graph.get_topo_sorted_nodes():
|
|
158
160
|
quant_node_in_fln = n.is_fln_quantization() and graph.fusing_info.is_quantized_node_in_fln(n)
|
|
159
161
|
sc = create_stats_collector_for_node(n, quant_node_in_fln=quant_node_in_fln) # Get static collector for the node
|
|
162
|
+
if isinstance(sc, common.StatsCollector) and (sc.mc.axis is None or sc.mpcc.axis is None):
|
|
163
|
+
# Missing output channel axis info, so try to extract it from previous and next nodes output channel axis.
|
|
164
|
+
possible_output_channel_axis_set = {nn.out_channel_axis for nn in graph.get_next_nodes(n) + graph.get_prev_nodes(n)}
|
|
165
|
+
# Filter out None values.
|
|
166
|
+
possible_output_channel_axis_list = list(filter(lambda x: x is not None, possible_output_channel_axis_set))
|
|
167
|
+
if len(possible_output_channel_axis_list) > 0:
|
|
168
|
+
if len(possible_output_channel_axis_list) > 1:
|
|
169
|
+
Logger.warning(f'Ambiguous input channel data from next nodes for {n.name}.')
|
|
170
|
+
sc.mc.axis = possible_output_channel_axis_list[0]
|
|
171
|
+
sc.mpcc.axis = possible_output_channel_axis_list[0]
|
|
172
|
+
|
|
160
173
|
# If we use bias correction, and the node has kernel weights to quantize, we need to make sure
|
|
161
174
|
# its previous nodes' tensors are consistent with this node.
|
|
162
175
|
if qc.weights_bias_correction and n.kernel_attr is not None and n.is_weights_quantization_enabled(
|
|
@@ -164,7 +177,8 @@ class ModelCollector:
|
|
|
164
177
|
for ie in graph.incoming_edges(n):
|
|
165
178
|
input_node = ie.source_node
|
|
166
179
|
create_tensor2node(graph,
|
|
167
|
-
input_node
|
|
180
|
+
input_node,
|
|
181
|
+
n.out_channel_axis)
|
|
168
182
|
if sc is not None:
|
|
169
183
|
graph.set_out_stats_collector_to_node(n, sc)
|
|
170
184
|
|
|
@@ -303,7 +303,7 @@ class MemoryCalculator:
|
|
|
303
303
|
num_oc = np.sum(output_mask)
|
|
304
304
|
else:
|
|
305
305
|
# Get the node channel axis from framework info
|
|
306
|
-
channel_axis = node.out_channel_axis
|
|
306
|
+
channel_axis = self.fw_impl.default_output_channel_axis if node.out_channel_axis is None else node.out_channel_axis
|
|
307
307
|
if channel_axis is None:
|
|
308
308
|
Logger.critical(f"The channel axis is undefined. Please ensure the channel axis is explicitly defined for node {node.type} in the framework info.")
|
|
309
309
|
|
|
@@ -18,7 +18,6 @@ from enum import Enum, auto
|
|
|
18
18
|
from model_compression_toolkit.core.common.framework_info import ChannelAxisMapping
|
|
19
19
|
from model_compression_toolkit.logger import Logger
|
|
20
20
|
|
|
21
|
-
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationConfig
|
|
22
21
|
from model_compression_toolkit.target_platform_capabilities.constants import POSITIONAL_ATTR
|
|
23
22
|
from model_compression_toolkit.target_platform_capabilities.schema.mct_current_schema import \
|
|
24
23
|
AttributeQuantizationConfig, OpQuantizationConfig
|
|
@@ -41,6 +40,7 @@ class ActivationQuantizationMode(Enum):
|
|
|
41
40
|
NO_QUANT = auto()
|
|
42
41
|
FLN_NO_QUANT = auto()
|
|
43
42
|
|
|
43
|
+
|
|
44
44
|
class BaseNodeQuantizationConfig(object):
|
|
45
45
|
"""
|
|
46
46
|
Base class for node quantization configuration
|
|
@@ -59,12 +59,11 @@ class BaseNodeQuantizationConfig(object):
|
|
|
59
59
|
kwargs: A dictionary with additional key arguments.
|
|
60
60
|
|
|
61
61
|
"""
|
|
62
|
-
|
|
63
62
|
if hasattr(self, config_parameter_name):
|
|
64
63
|
setattr(self, config_parameter_name, config_parameter_value)
|
|
65
64
|
else:
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
raise AttributeError(
|
|
66
|
+
f"Parameter {config_parameter_name} could not be found in the node quantization config.")
|
|
68
67
|
|
|
69
68
|
def __repr__(self) -> str:
|
|
70
69
|
"""
|
|
@@ -97,36 +96,11 @@ class NodeActivationQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
97
96
|
self.signedness = op_cfg.signedness
|
|
98
97
|
|
|
99
98
|
self.activation_quantization_params = {}
|
|
100
|
-
# TODO
|
|
99
|
+
# TODO: computed by compute_activation_bias_correction. Probably shouldnt be here.
|
|
101
100
|
self.activation_bias_correction_term = None
|
|
102
|
-
|
|
103
|
-
#
|
|
104
|
-
self.activation_error_method = None
|
|
105
|
-
self.relu_bound_to_power_of_2 = None
|
|
106
|
-
self.activation_channel_equalization = None
|
|
107
|
-
self.input_scaling = None
|
|
108
|
-
self.min_threshold = None
|
|
109
|
-
self.l_p_value = None
|
|
110
|
-
self.shift_negative_activation_correction = None
|
|
101
|
+
# Z-threshold is a global param from QuantizationConfig, however it can be overridden per node by NetworkEditor.
|
|
102
|
+
# Since activation qparams are re-computed in several places, it's easier to keep it here and update it once.
|
|
111
103
|
self.z_threshold = None
|
|
112
|
-
self.shift_negative_ratio = None
|
|
113
|
-
self.shift_negative_threshold_recalculation = None
|
|
114
|
-
self.concat_threshold_update = None
|
|
115
|
-
|
|
116
|
-
def set_qc(self, qc: QuantizationConfig):
|
|
117
|
-
""" TODO irena: temporary keep all the attributes as before not to break all code at once.
|
|
118
|
-
Eventually all of them should be removed from here. """
|
|
119
|
-
self.activation_error_method = qc.activation_error_method
|
|
120
|
-
self.relu_bound_to_power_of_2 = qc.relu_bound_to_power_of_2
|
|
121
|
-
self.activation_channel_equalization = qc.activation_channel_equalization
|
|
122
|
-
self.input_scaling = qc.input_scaling
|
|
123
|
-
self.min_threshold = qc.min_threshold
|
|
124
|
-
self.l_p_value = qc.l_p_value
|
|
125
|
-
self.shift_negative_activation_correction = qc.shift_negative_activation_correction
|
|
126
|
-
self.z_threshold = qc.z_threshold
|
|
127
|
-
self.shift_negative_ratio = qc.shift_negative_ratio
|
|
128
|
-
self.shift_negative_threshold_recalculation = qc.shift_negative_threshold_recalculation
|
|
129
|
-
self.concat_threshold_update = qc.concat_threshold_update
|
|
130
104
|
|
|
131
105
|
@property
|
|
132
106
|
def enable_activation_quantization(self):
|
|
@@ -148,7 +122,7 @@ class NodeActivationQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
148
122
|
activation_params: Dictionary that contains weight quantization params.
|
|
149
123
|
|
|
150
124
|
"""
|
|
151
|
-
assert self.quant_mode == ActivationQuantizationMode.QUANT
|
|
125
|
+
assert self.quant_mode == ActivationQuantizationMode.QUANT or self.quant_mode == ActivationQuantizationMode.FLN_QUANT
|
|
152
126
|
for param_name, param_value in activation_params.items():
|
|
153
127
|
self.activation_quantization_params[param_name] = param_value
|
|
154
128
|
|
|
@@ -165,32 +139,16 @@ class NodeActivationQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
165
139
|
if not isinstance(other, NodeActivationQuantizationConfig):
|
|
166
140
|
return False # pragma: no cover
|
|
167
141
|
|
|
168
|
-
return self.
|
|
169
|
-
self.activation_quantization_method == other.activation_quantization_method and \
|
|
142
|
+
return self.activation_quantization_method == other.activation_quantization_method and \
|
|
170
143
|
self.activation_n_bits == other.activation_n_bits and \
|
|
171
144
|
self.quant_mode == other.quant_mode and \
|
|
172
|
-
self.
|
|
173
|
-
self.input_scaling == other.input_scaling and \
|
|
174
|
-
self.min_threshold == other.min_threshold and \
|
|
175
|
-
self.l_p_value == other.l_p_value and \
|
|
176
|
-
self.shift_negative_activation_correction == other.shift_negative_activation_correction and \
|
|
177
|
-
self.z_threshold == other.z_threshold and \
|
|
178
|
-
self.shift_negative_ratio == other.shift_negative_ratio and \
|
|
179
|
-
self.shift_negative_threshold_recalculation == other.shift_negative_threshold_recalculation
|
|
145
|
+
self.signedness == other.signedness
|
|
180
146
|
|
|
181
147
|
def __hash__(self):
|
|
182
|
-
return hash((self.
|
|
183
|
-
self.activation_quantization_method,
|
|
148
|
+
return hash((self.activation_quantization_method,
|
|
184
149
|
self.activation_n_bits,
|
|
185
150
|
self.quant_mode,
|
|
186
|
-
self.
|
|
187
|
-
self.input_scaling,
|
|
188
|
-
self.min_threshold,
|
|
189
|
-
self.l_p_value,
|
|
190
|
-
self.shift_negative_activation_correction,
|
|
191
|
-
self.z_threshold,
|
|
192
|
-
self.shift_negative_ratio,
|
|
193
|
-
self.shift_negative_threshold_recalculation))
|
|
151
|
+
self.signedness))
|
|
194
152
|
|
|
195
153
|
|
|
196
154
|
class WeightsAttrQuantizationConfig:
|
|
@@ -211,16 +169,8 @@ class WeightsAttrQuantizationConfig:
|
|
|
211
169
|
self.weights_n_bits = weights_attr_cfg.weights_n_bits
|
|
212
170
|
self.weights_per_channel_threshold = weights_attr_cfg.weights_per_channel_threshold
|
|
213
171
|
self.enable_weights_quantization = weights_attr_cfg.enable_weights_quantization
|
|
214
|
-
self.weights_quantization_params = {}
|
|
215
172
|
|
|
216
|
-
|
|
217
|
-
self.weights_error_method = None
|
|
218
|
-
self.l_p_value = None
|
|
219
|
-
|
|
220
|
-
def set_qc(self, qc: QuantizationConfig):
|
|
221
|
-
# TODO irena: temporary keep the fields to not break everything at once.
|
|
222
|
-
self.weights_error_method = qc.weights_error_method
|
|
223
|
-
self.l_p_value = qc.l_p_value
|
|
173
|
+
self.weights_quantization_params = {}
|
|
224
174
|
|
|
225
175
|
def set_weights_quantization_param(self,
|
|
226
176
|
weights_params: dict):
|
|
@@ -252,18 +202,14 @@ class WeightsAttrQuantizationConfig:
|
|
|
252
202
|
self.weights_quantization_method == other.weights_quantization_method and \
|
|
253
203
|
self.weights_n_bits == other.weights_n_bits and \
|
|
254
204
|
self.weights_per_channel_threshold == other.weights_per_channel_threshold and \
|
|
255
|
-
self.enable_weights_quantization == other.enable_weights_quantization
|
|
256
|
-
self.weights_error_method == other.weights_error_method and \
|
|
257
|
-
self.l_p_value == other.l_p_value
|
|
205
|
+
self.enable_weights_quantization == other.enable_weights_quantization
|
|
258
206
|
|
|
259
207
|
def __hash__(self):
|
|
260
208
|
return hash((self.weights_channels_axis,
|
|
261
|
-
self.weights_error_method,
|
|
262
209
|
self.weights_quantization_method,
|
|
263
210
|
self.weights_n_bits,
|
|
264
211
|
self.weights_per_channel_threshold,
|
|
265
|
-
self.enable_weights_quantization
|
|
266
|
-
self.l_p_value))
|
|
212
|
+
self.enable_weights_quantization))
|
|
267
213
|
|
|
268
214
|
|
|
269
215
|
class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
|
|
@@ -330,16 +276,14 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
330
276
|
|
|
331
277
|
self.attributes_config_mapping[attr] = WeightsAttrQuantizationConfig(weights_attr_cfg=attr_cfg,
|
|
332
278
|
weights_channels_axis=weights_channels_axis)
|
|
333
|
-
# TODO
|
|
334
|
-
|
|
279
|
+
# TODO this is set by batch norm reconstruction substitution when folded batch norms are added back, to mark
|
|
280
|
+
# the nodes that the correction should be applied to (for some nodes it gets disabled) and BNs removed.
|
|
281
|
+
# The actual correction is only computed when it's applied in ptq, so it seems that both substitutions could
|
|
282
|
+
# be unified, and no info need to pass between.
|
|
335
283
|
self.weights_second_moment_correction = None
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
# TODO irena: temporary keep the fields to not break everything at once.
|
|
340
|
-
self.min_threshold = qc.min_threshold
|
|
341
|
-
self.weights_second_moment_correction = qc.weights_second_moment_correction
|
|
342
|
-
self.weights_bias_correction = qc.weights_bias_correction
|
|
284
|
+
# TODO: computed corrected bias is injected to the node config. Probably shouldn't be here. Also it can be
|
|
285
|
+
# computed on the final config, instead of all candidates and then there is no need to save it at all.
|
|
286
|
+
self.bias_corrected = None
|
|
343
287
|
|
|
344
288
|
def get_attr_config(self, attr_name: 'WeightAttrT') -> WeightsAttrQuantizationConfig:
|
|
345
289
|
"""
|
|
@@ -476,8 +420,8 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
476
420
|
if hasattr(attr_cfg, config_parameter_name):
|
|
477
421
|
setattr(attr_cfg, config_parameter_name, config_parameter_value)
|
|
478
422
|
else:
|
|
479
|
-
|
|
480
|
-
|
|
423
|
+
raise AttributeError(f"Parameter {config_parameter_name} could not be found in the node quantization config of "
|
|
424
|
+
f"weights attribute {attr_name}.")
|
|
481
425
|
else: # pragma: no cover
|
|
482
426
|
Logger.critical(f"Weights attribute {attr_name} could not be found to set parameter {config_parameter_name}.")
|
|
483
427
|
|
|
@@ -494,10 +438,7 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
494
438
|
if not isinstance(other, NodeWeightsQuantizationConfig):
|
|
495
439
|
return False # pragma: no cover
|
|
496
440
|
|
|
497
|
-
return self.
|
|
498
|
-
self.simd_size == other.simd_size and \
|
|
499
|
-
self.weights_second_moment_correction == other.weights_second_moment_correction and \
|
|
500
|
-
self.weights_bias_correction == other.weights_bias_correction and \
|
|
441
|
+
return self.simd_size == other.simd_size and \
|
|
501
442
|
self.attributes_config_mapping.keys() == other.attributes_config_mapping.keys() and \
|
|
502
443
|
all([self.attributes_config_mapping[k] == other.attributes_config_mapping[k]
|
|
503
444
|
for k in self.attributes_config_mapping.keys()]) and \
|
|
@@ -506,9 +447,6 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
|
|
|
506
447
|
for k in self.pos_attributes_config_mapping.keys()])
|
|
507
448
|
|
|
508
449
|
def __hash__(self):
|
|
509
|
-
return hash((self.
|
|
510
|
-
self.simd_size,
|
|
511
|
-
self.weights_second_moment_correction,
|
|
512
|
-
self.weights_bias_correction,
|
|
450
|
+
return hash((self.simd_size,
|
|
513
451
|
frozenset(self.attributes_config_mapping),
|
|
514
452
|
frozenset(self.pos_attributes_config_mapping)))
|
|
@@ -90,7 +90,6 @@ class QuantizationConfig:
|
|
|
90
90
|
shift_negative_activation_correction: bool = True
|
|
91
91
|
activation_channel_equalization: bool = False
|
|
92
92
|
z_threshold: float = math.inf
|
|
93
|
-
min_threshold: float = MIN_THRESHOLD
|
|
94
93
|
l_p_value: int = 2
|
|
95
94
|
linear_collapsing: bool = True
|
|
96
95
|
residual_collapsing: bool = True
|
|
@@ -18,21 +18,25 @@ from typing import Dict, Union, Optional, Tuple, Callable
|
|
|
18
18
|
from mct_quantizers import QuantizationMethod
|
|
19
19
|
|
|
20
20
|
import model_compression_toolkit.core.common.quantization.quantization_params_generation as qpg
|
|
21
|
+
from model_compression_toolkit.constants import MIN_THRESHOLD
|
|
21
22
|
from model_compression_toolkit.target_platform_capabilities.schema.mct_current_schema import Signedness
|
|
22
23
|
from model_compression_toolkit.core.common.collectors.statistics_collector import BaseStatsCollector
|
|
23
24
|
from model_compression_toolkit.core.common.node_prior_info import NodePriorInfo
|
|
24
25
|
from model_compression_toolkit.core.common.quantization.node_quantization_config import NodeActivationQuantizationConfig
|
|
25
|
-
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationErrorMethod
|
|
26
|
+
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationErrorMethod, \
|
|
27
|
+
QuantizationConfig
|
|
26
28
|
|
|
27
29
|
|
|
28
|
-
def compute_activation_qparams(
|
|
30
|
+
def compute_activation_qparams(quant_cfg: QuantizationConfig,
|
|
31
|
+
node_activation_quant_cfg: NodeActivationQuantizationConfig,
|
|
29
32
|
node_prior_info: NodePriorInfo,
|
|
30
33
|
out_stats_container: BaseStatsCollector) -> Dict[str, Union[np.ndarray, float, bool]]:
|
|
31
34
|
"""
|
|
32
35
|
Compute the activations params for a given node in a graph according to a params function.
|
|
33
36
|
|
|
34
37
|
Args:
|
|
35
|
-
|
|
38
|
+
quant_cfg: quantization config.
|
|
39
|
+
node_activation_quant_cfg: node's activation quantization configuration.
|
|
36
40
|
node_prior_info: Prior info collected for the node that is being quantized.
|
|
37
41
|
out_stats_container: Tensor containing output statistics of the node.
|
|
38
42
|
|
|
@@ -40,41 +44,46 @@ def compute_activation_qparams(activation_quant_cfg: NodeActivationQuantizationC
|
|
|
40
44
|
The computed activation quantization params.
|
|
41
45
|
"""
|
|
42
46
|
activation_quantization_params_fn = _get_activation_quantization_params_fn(
|
|
43
|
-
|
|
47
|
+
node_activation_quant_cfg.activation_quantization_method, no_clipping=node_prior_info.is_output_bounded())
|
|
44
48
|
|
|
45
49
|
# Extract and filter histogram data from the statistics container.
|
|
46
|
-
|
|
50
|
+
z_threshold = quant_cfg.z_threshold
|
|
51
|
+
if node_activation_quant_cfg.z_threshold is not None:
|
|
52
|
+
z_threshold = node_activation_quant_cfg.z_threshold
|
|
53
|
+
bins_values, bins_counts = _get_histogram_data(out_stats_container,
|
|
54
|
+
activation_error_method=quant_cfg.activation_error_method,
|
|
55
|
+
z_threshold=z_threshold)
|
|
47
56
|
|
|
48
57
|
# Retrieve the minimum and maximum values from the statistics container.
|
|
49
58
|
min_value, max_value = out_stats_container.get_min_max_values()
|
|
50
59
|
|
|
51
60
|
# Determine if the activations should be considered signed.
|
|
52
|
-
signed = _determine_signedness(
|
|
61
|
+
signed = _determine_signedness(node_activation_quant_cfg, node_prior_info, min_value, bins_values, bins_counts)
|
|
53
62
|
|
|
54
63
|
# Compute and return the activation quantization parameters.
|
|
55
64
|
return activation_quantization_params_fn(
|
|
56
65
|
bins_values,
|
|
57
66
|
bins_counts,
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
quant_cfg.l_p_value,
|
|
68
|
+
node_activation_quant_cfg.activation_n_bits,
|
|
60
69
|
min_value,
|
|
61
70
|
max_value,
|
|
62
|
-
min_threshold=
|
|
63
|
-
quant_error_method=
|
|
71
|
+
min_threshold=MIN_THRESHOLD,
|
|
72
|
+
quant_error_method=quant_cfg.activation_error_method,
|
|
64
73
|
is_signed=signed
|
|
65
74
|
)
|
|
66
75
|
|
|
67
76
|
|
|
68
|
-
def _get_histogram_data(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
) -> Tuple[Optional[np.ndarray], Optional[np.ndarray]]:
|
|
77
|
+
def _get_histogram_data(out_stats_container: BaseStatsCollector,
|
|
78
|
+
activation_error_method: QuantizationErrorMethod,
|
|
79
|
+
z_threshold: float) -> Tuple[Optional[np.ndarray], Optional[np.ndarray]]:
|
|
72
80
|
"""
|
|
73
81
|
Extract and filter the histogram data from the statistics container.
|
|
74
82
|
|
|
75
83
|
Args:
|
|
76
|
-
activation_quant_cfg: Node's activation quantization configuration.
|
|
77
84
|
out_stats_container: Statistics container with histogram data.
|
|
85
|
+
activation_error_method: activation quantization error method.
|
|
86
|
+
z_threshold: z threshold for z-score filtering.
|
|
78
87
|
|
|
79
88
|
Returns:
|
|
80
89
|
A tuple containing the filtered bins_values and bins_counts.
|
|
@@ -83,12 +92,12 @@ def _get_histogram_data(
|
|
|
83
92
|
# If the statistics container collected the histogram, we start by filtering outliers using z threshold
|
|
84
93
|
# filtering, and then computing the threshold based on the filtered histogram.
|
|
85
94
|
if out_stats_container.require_collection():
|
|
86
|
-
if
|
|
95
|
+
if activation_error_method == QuantizationErrorMethod.HMSE:
|
|
87
96
|
bins_values, bins_counts = out_stats_container.weighted_hc.get_histogram()
|
|
88
97
|
else:
|
|
89
98
|
bins_values, bins_counts = out_stats_container.hc.get_histogram()
|
|
90
99
|
bins_counts = qpg.z_score_filter(
|
|
91
|
-
|
|
100
|
+
z_threshold,
|
|
92
101
|
bins_values,
|
|
93
102
|
bins_counts
|
|
94
103
|
)
|
|
@@ -18,7 +18,7 @@ from tqdm import tqdm
|
|
|
18
18
|
from typing import List, Callable, Generator
|
|
19
19
|
|
|
20
20
|
from model_compression_toolkit.constants import NUM_QPARAM_HESSIAN_SAMPLES
|
|
21
|
-
from model_compression_toolkit.core import QuantizationErrorMethod
|
|
21
|
+
from model_compression_toolkit.core import QuantizationErrorMethod, QuantizationConfig
|
|
22
22
|
from model_compression_toolkit.core.common import Graph, BaseNode
|
|
23
23
|
from model_compression_toolkit.core.common.framework_info import ChannelAxisMapping
|
|
24
24
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
|
@@ -31,29 +31,8 @@ from model_compression_toolkit.core.common.quantization.quantization_params_gene
|
|
|
31
31
|
from model_compression_toolkit.logger import Logger
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
def _collect_nodes_for_hmse(nodes_list: List[BaseNode], graph: Graph) -> List[BaseNode]:
|
|
35
|
-
"""
|
|
36
|
-
Collects nodes that are compatiable for parameters selection search using HMSE,
|
|
37
|
-
that is, have a kernel attribute that is configured for HMSE error method.
|
|
38
|
-
|
|
39
|
-
Args:
|
|
40
|
-
nodes_list: A list of nodes to search quantization parameters for.
|
|
41
|
-
graph: Graph to compute its nodes' quantization parameters..
|
|
42
|
-
|
|
43
|
-
Returns: A (possibly empty) list of nodes.
|
|
44
|
-
|
|
45
|
-
"""
|
|
46
|
-
hmse_nodes = []
|
|
47
|
-
for n in nodes_list:
|
|
48
|
-
if n.kernel_attr is not None and n.is_weights_quantization_enabled(n.kernel_attr) and \
|
|
49
|
-
all([c.weights_quantization_cfg.get_attr_config(n.kernel_attr).weights_error_method ==
|
|
50
|
-
QuantizationErrorMethod.HMSE for c in n.candidates_quantization_cfg]):
|
|
51
|
-
hmse_nodes.append(n)
|
|
52
|
-
|
|
53
|
-
return hmse_nodes
|
|
54
|
-
|
|
55
|
-
|
|
56
34
|
def calculate_quantization_params(graph: Graph,
|
|
35
|
+
quant_cfg: QuantizationConfig,
|
|
57
36
|
fw_impl: FrameworkImplementation,
|
|
58
37
|
repr_data_gen_fn: Callable[[], Generator],
|
|
59
38
|
nodes: List[BaseNode] = None,
|
|
@@ -68,6 +47,7 @@ def calculate_quantization_params(graph: Graph,
|
|
|
68
47
|
|
|
69
48
|
Args:
|
|
70
49
|
graph: Graph to compute its nodes' thresholds.
|
|
50
|
+
quant_cfg: quantization config.
|
|
71
51
|
fw_impl: FrameworkImplementation object.
|
|
72
52
|
repr_data_gen_fn: callable returning representative dataset generator.
|
|
73
53
|
nodes: List of nodes to compute their thresholds instead of computing it for all nodes in the graph.
|
|
@@ -85,15 +65,16 @@ def calculate_quantization_params(graph: Graph,
|
|
|
85
65
|
# Collecting nodes that are configured to search weights quantization parameters using HMSE optimization
|
|
86
66
|
# and computing required Hessian information to be used for HMSE parameters selection.
|
|
87
67
|
# The Hessian scores are computed and stored in the hessian_info_service object.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
68
|
+
if quant_cfg.weights_error_method == QuantizationErrorMethod.HMSE:
|
|
69
|
+
nodes_for_hmse = [n for n in nodes_list if n.kernel_attr and n.is_weights_quantization_enabled(n.kernel_attr)]
|
|
70
|
+
if nodes_for_hmse:
|
|
71
|
+
dataloader = fw_impl.convert_data_gen_to_dataloader(repr_data_gen_fn, batch_size=1)
|
|
72
|
+
request = HessianScoresRequest(mode=HessianMode.WEIGHTS,
|
|
73
|
+
granularity=HessianScoresGranularity.PER_ELEMENT,
|
|
74
|
+
data_loader=dataloader,
|
|
75
|
+
n_samples=num_hessian_samples,
|
|
76
|
+
target_nodes=nodes_for_hmse)
|
|
77
|
+
hessian_info_service.fetch_hessian(request)
|
|
97
78
|
|
|
98
79
|
for n in tqdm(nodes_list, "Calculating quantization parameters"): # iterate only nodes that we should compute their thresholds
|
|
99
80
|
for candidate_qc in n.candidates_quantization_cfg:
|
|
@@ -101,37 +82,34 @@ def calculate_quantization_params(graph: Graph,
|
|
|
101
82
|
if n.is_weights_quantization_enabled(attr):
|
|
102
83
|
# If the node's weights attribute should be quantized, we compute its quantization parameters
|
|
103
84
|
attr_cfg = candidate_qc.weights_quantization_cfg.get_attr_config(attr)
|
|
104
|
-
|
|
105
|
-
if channels_axis is not None:
|
|
106
|
-
output_channels_axis = channels_axis[0]
|
|
107
|
-
else:
|
|
108
|
-
output_channels_axis = None
|
|
109
|
-
|
|
110
|
-
mod_attr_cfg = attr_cfg
|
|
85
|
+
output_channels_axis = attr_cfg.weights_channels_axis.output
|
|
111
86
|
|
|
112
|
-
|
|
87
|
+
weights_error_method = quant_cfg.weights_error_method
|
|
88
|
+
if weights_error_method == QuantizationErrorMethod.HMSE:
|
|
113
89
|
# Although we collected nodes for HMSE before running the loop, we keep this verification to
|
|
114
90
|
# notify the user in case of HMSE configured for node that is not compatible for this method
|
|
115
91
|
if n.kernel_attr is None or n.kernel_attr not in attr:
|
|
116
92
|
Logger.warning(f"The HMSE error method for parameters selection is only supported for "
|
|
117
93
|
f"kernel weights attributes. Running parameters selection for attribute "
|
|
118
94
|
f"'{attr}' in node '{n.name}' with the default MSE error method instead.")
|
|
119
|
-
|
|
120
|
-
mod_attr_cfg.weights_error_method = QuantizationErrorMethod.MSE
|
|
95
|
+
weights_error_method = QuantizationErrorMethod.MSE
|
|
121
96
|
|
|
122
|
-
min_threshold = candidate_qc.weights_quantization_cfg.min_threshold
|
|
123
97
|
weights_params, output_channels_axis = compute_weights_qparams(n.get_weights_by_keys(attr),
|
|
124
|
-
|
|
125
|
-
|
|
98
|
+
attr_cfg,
|
|
99
|
+
weights_error_method,
|
|
100
|
+
quant_cfg.l_p_value,
|
|
101
|
+
output_channels_axis,
|
|
102
|
+
node=n,
|
|
126
103
|
hessian_info_service=hessian_info_service,
|
|
127
104
|
num_hessian_samples=num_hessian_samples)
|
|
128
105
|
attr_cfg.weights_channels_axis = ChannelAxisMapping(output_channels_axis, attr_cfg.weights_channels_axis.input)
|
|
129
106
|
attr_cfg.set_weights_quantization_param(weights_params)
|
|
130
107
|
|
|
131
|
-
if n.is_activation_quantization_enabled():
|
|
108
|
+
if n.is_activation_quantization_enabled() or n.is_fln_quantization():
|
|
132
109
|
# If node's activations should be quantized as well, we compute its activation quantization parameters
|
|
133
|
-
activation_params = compute_activation_qparams(
|
|
134
|
-
|
|
135
|
-
|
|
110
|
+
activation_params = compute_activation_qparams(quant_cfg=quant_cfg,
|
|
111
|
+
node_activation_quant_cfg=candidate_qc.activation_quantization_cfg,
|
|
112
|
+
node_prior_info=n.prior_info,
|
|
113
|
+
out_stats_container=graph.get_out_stats_collector(n))
|
|
136
114
|
# Create a NodeQuantizationConfig containing all quantization params and attach it to the node
|
|
137
115
|
candidate_qc.activation_quantization_cfg.set_activation_quantization_param(activation_params)
|