mct-nightly 2.3.0.20250517.552__tar.gz → 2.3.0.20250519.609__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.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/PKG-INFO +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/PKG-INFO +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/__init__.py +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/fusion/fusing_info.py +99 -32
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/fusion/graph_fuser.py +5 -3
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/base_graph.py +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +6 -2
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +10 -3
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +84 -4
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +5 -5
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/runner.py +1 -1
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/LICENSE.md +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/README.md +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/SOURCES.txt +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/requires.txt +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/collectors/weighted_histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/framework_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/edge.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/model_collector.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/model_validation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/user_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/data_util.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/common.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/convtranspose_dynamic_padding.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/pytorch/utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/enums.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/defaultdict.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/logger.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/metadata.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/schema/schema_compatability.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/schema/v2.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/verify_packages.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/setup.cfg +0 -0
- {mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/setup.py +0 -0
@@ -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.3.0.
|
30
|
+
__version__ = "2.3.0.20250519.000609"
|
@@ -36,22 +36,28 @@ class FusingInfo:
|
|
36
36
|
belong to fused operations and validate this info is correct after changes in the graph.
|
37
37
|
|
38
38
|
The core structures maintained are:
|
39
|
+
- 'fusing_patterns': The patterns to generate the fused operators from.
|
40
|
+
- 'manual_fused_ops': List of sequence of node names to handle as fused ops (even if they are not part of the fusing patterns).
|
39
41
|
- `fusing_data`: A dictionary mapping fused operation IDs to lists of nodes that belong to that operation.
|
40
42
|
- `node_to_fused_node_map`: A dictionary mapping each node name to the ID of the fused operation it belongs to.
|
41
43
|
|
42
44
|
"""
|
43
|
-
fusing_patterns: any = None
|
45
|
+
fusing_patterns: List[list[any]] = None
|
46
|
+
manual_fused_ops: List[List[str]] = None
|
44
47
|
fusing_data: Dict[str, Tuple['BaseNode']] = field(default_factory=dict)
|
45
48
|
node_to_fused_node_map: Dict[str, str] = field(init=False, default_factory=dict)
|
46
49
|
fused_op_id_to_quant_config: Dict[str, OpQuantizationConfig] = field(default_factory=dict)
|
47
50
|
|
48
51
|
def __post_init__(self):
|
49
52
|
"""Validates and initializes mappings after dataclass instantiation."""
|
53
|
+
self.fusing_patterns = self.fusing_patterns or []
|
50
54
|
for op_id, op_nodes in self.fusing_data.items():
|
51
55
|
assert isinstance(op_id, str) and op_id.startswith(FUSED_OP_ID_PREFIX), f"Found invalid fused op id: {op_id}"
|
52
56
|
assert isinstance(op_nodes, tuple) and len(op_nodes) > 1, f"Found invalid fused op nodes: {op_nodes}"
|
53
57
|
|
54
58
|
self._init_node_mapping()
|
59
|
+
self._manual_fused_ops = self.manual_fused_ops or []
|
60
|
+
del self.manual_fused_ops
|
55
61
|
self._init_quantization_config_map()
|
56
62
|
|
57
63
|
def _init_node_mapping(self) -> None:
|
@@ -63,6 +69,26 @@ class FusingInfo:
|
|
63
69
|
for node in nodes:
|
64
70
|
self.node_to_fused_node_map[node.name] = op_id
|
65
71
|
|
72
|
+
def get_manual_nodes_to_fuse(self) -> List[List[str]]:
|
73
|
+
"""
|
74
|
+
Get the list of node names to be fused manually.
|
75
|
+
"""
|
76
|
+
return self._manual_fused_ops
|
77
|
+
|
78
|
+
|
79
|
+
def add_manual_nodes_to_fuse(self, node_names: List[str]):
|
80
|
+
"""
|
81
|
+
Add a list of node names to be fused manually.
|
82
|
+
|
83
|
+
Args:
|
84
|
+
node_names: List of nodes to be fused.
|
85
|
+
|
86
|
+
"""
|
87
|
+
assert isinstance(node_names, list)
|
88
|
+
assert all([isinstance(n, str) for n in node_names])
|
89
|
+
assert node_names not in self._manual_fused_ops, f"{node_names} is already in manual fused ops: {self._manual_fused_ops}"
|
90
|
+
self._manual_fused_ops.append(node_names)
|
91
|
+
|
66
92
|
def _init_quantization_config_map(self) -> None:
|
67
93
|
"""
|
68
94
|
Init the mapping between fused operation IDs and their quantization configurations.
|
@@ -121,12 +147,16 @@ class FusingInfo:
|
|
121
147
|
raise ValueError(f"Fused operation {op_id} does not exist.")
|
122
148
|
# Remove nodes from the mapping
|
123
149
|
nodes = self.fusing_data[op_id]
|
150
|
+
node_names = [n.name for n in nodes]
|
151
|
+
if node_names in self._manual_fused_ops:
|
152
|
+
self._manual_fused_ops.remove(node_names)
|
153
|
+
|
124
154
|
for node in nodes:
|
125
155
|
self.node_to_fused_node_map.pop(node.name, None)
|
126
156
|
del self.fusing_data[op_id]
|
127
157
|
self.fused_op_id_to_quant_config.pop(op_id, None)
|
128
158
|
|
129
|
-
def
|
159
|
+
def get_fused_op_id_for_node(self, node_name: str) -> Optional[str]:
|
130
160
|
"""
|
131
161
|
Get the name of the fused node containing the given original node name.
|
132
162
|
|
@@ -168,6 +198,12 @@ class FusingInfo:
|
|
168
198
|
"""
|
169
199
|
return self.fusing_data.get(op_id)
|
170
200
|
|
201
|
+
def get_nodes_to_disable_activation_quantization(self) -> List['BaseNode']:
|
202
|
+
"""
|
203
|
+
Returns a list of the nodes that their activation quantization is disabled due to fusing.
|
204
|
+
"""
|
205
|
+
return [node for nodes in self.get_all_fused_operations().values() for node in nodes[:-1]]
|
206
|
+
|
171
207
|
def get_fused_op_quantization_config(self, op_id: str) -> OpQuantizationConfig:
|
172
208
|
"""
|
173
209
|
Retrieve the quantization configuration for a given fused operation ID.
|
@@ -268,7 +304,7 @@ class FusingInfo:
|
|
268
304
|
|
269
305
|
# Check 4: Ensure the sequence matches a valid fusing pattern
|
270
306
|
valid_fusing_patterns = _get_fusing_layer_patterns(self.fusing_patterns)
|
271
|
-
if not is_valid_fusion(valid_fusing_patterns, nodes):
|
307
|
+
if not is_valid_fusion(valid_fusing_patterns, nodes, self._manual_fused_ops):
|
272
308
|
raise ValueError(
|
273
309
|
f"Fused operation {op_id} does not match any valid fusing pattern "
|
274
310
|
f"from {valid_fusing_patterns}."
|
@@ -311,13 +347,17 @@ class FusingInfo:
|
|
311
347
|
f" Total fused operations: {len(self.fusing_data)}\n"
|
312
348
|
f" Fusing Data:\n{fusing_data_repr}\n"
|
313
349
|
f" Node-to-Fused Mapping:\n {mapping_repr}\n"
|
350
|
+
f" Manual fused ops:\n {self._manual_fused_ops}\n"
|
314
351
|
f")"
|
315
352
|
)
|
316
353
|
|
317
354
|
|
318
355
|
class FusingInfoGenerator:
|
319
|
-
def __init__(self, fusing_patterns):
|
320
|
-
self._fusing_patterns = fusing_patterns
|
356
|
+
def __init__(self, fusing_patterns: List[list] = None, manual_fused_ops: List[List[str]] = None):
|
357
|
+
self._fusing_patterns = fusing_patterns or []
|
358
|
+
assert isinstance(self._fusing_patterns, list)
|
359
|
+
self._manual_fused_ops = manual_fused_ops or []
|
360
|
+
assert isinstance(self._manual_fused_ops, list)
|
321
361
|
|
322
362
|
def generate_fusing_info(self, graph: 'Graph') -> FusingInfo:
|
323
363
|
"""
|
@@ -338,7 +378,7 @@ class FusingInfoGenerator:
|
|
338
378
|
- Each node belongs to at most one fused operation.
|
339
379
|
"""
|
340
380
|
if not self._fusing_patterns:
|
341
|
-
return FusingInfo(fusing_patterns=self._fusing_patterns)
|
381
|
+
return FusingInfo(fusing_patterns=self._fusing_patterns, manual_fused_ops=self._manual_fused_ops)
|
342
382
|
|
343
383
|
# Extract fusing layer patterns
|
344
384
|
fusing_layer_patterns = _get_fusing_layer_patterns(self._fusing_patterns)
|
@@ -352,31 +392,53 @@ class FusingInfoGenerator:
|
|
352
392
|
fusing_info: Dict[str, Tuple['BaseNode']] = {}
|
353
393
|
fused_nodes = [] # nodes that are participating in fusing
|
354
394
|
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
395
|
+
if len(self._fusing_patterns)>0:
|
396
|
+
for node in nodes:
|
397
|
+
# Skip if already in fusing
|
398
|
+
if node in fused_nodes:
|
399
|
+
continue
|
400
|
+
# Start fusing search
|
401
|
+
fusing_nodes = [] # nodes that are candidates for participating in fusing
|
402
|
+
patterns = copy.deepcopy(fusing_layer_patterns)
|
403
|
+
next_nodes = [node]
|
404
|
+
for i in range(max_layer_patterns):
|
405
|
+
patterns = get_valid_fusing_patterns_for_node(patterns, next_nodes[0], i)
|
406
|
+
if len(patterns) == 0: # Give up if no more fusion pattern
|
407
|
+
break
|
408
|
+
fusing_nodes.append(next_nodes[0])
|
409
|
+
next_nodes = graph.get_next_nodes(fusing_nodes[-1])
|
410
|
+
if len(next_nodes) != 1: # Give up if node has more than one connection (not supported for fusion)
|
411
|
+
break
|
412
|
+
|
413
|
+
# New fusion
|
414
|
+
if is_valid_fusion(fusing_layer_patterns, fusing_nodes):
|
415
|
+
fused_op_id = FusingInfo.generate_fused_op_id(fusing_nodes)
|
416
|
+
assert fused_op_id not in fusing_info, f"{fused_op_id} is already in fusing info: {fusing_info}"
|
417
|
+
fusing_info[fused_op_id] = tuple(fusing_nodes)
|
418
|
+
fused_nodes.extend(fusing_nodes)
|
419
|
+
|
420
|
+
for manual_names in self._manual_fused_ops:
|
421
|
+
manual_nodes = [graph.find_node_by_name(n) for n in manual_names]
|
422
|
+
for n in manual_nodes:
|
423
|
+
if len(n) != 1:
|
424
|
+
raise ValueError(f"Expected exactly one node, but got {len(n)}")
|
425
|
+
manual_nodes = [n[0] for n in manual_nodes]
|
426
|
+
|
427
|
+
# Remove any existing fused ops containing any of the manual nodes
|
428
|
+
fused_ids_to_remove = {
|
429
|
+
op_id for op_id, nodes in fusing_info.items()
|
430
|
+
if any(node in nodes for node in manual_nodes)
|
431
|
+
}
|
432
|
+
for op_id in fused_ids_to_remove:
|
433
|
+
del fusing_info[op_id]
|
434
|
+
|
435
|
+
fused_op_id = FusingInfo.generate_fused_op_id(manual_nodes)
|
436
|
+
assert fused_op_id not in fusing_info, f"{fused_op_id} is already in fusing info: {fusing_info}"
|
437
|
+
fusing_info[fused_op_id] = tuple(manual_nodes)
|
438
|
+
|
439
|
+
return FusingInfo(fusing_data=fusing_info,
|
440
|
+
fusing_patterns=self._fusing_patterns,
|
441
|
+
manual_fused_ops=self._manual_fused_ops)
|
380
442
|
|
381
443
|
|
382
444
|
def get_valid_fusing_patterns_for_node(fusing_patterns: List[List[Any]],
|
@@ -404,15 +466,20 @@ def get_valid_fusing_patterns_for_node(fusing_patterns: List[List[Any]],
|
|
404
466
|
return valid_fusing_patterns
|
405
467
|
|
406
468
|
|
407
|
-
def is_valid_fusion(fusing_patterns: List[List[Any]], nodes: List['BaseNode']) -> bool:
|
469
|
+
def is_valid_fusion(fusing_patterns: List[List[Any]], nodes: List['BaseNode'], manual_fused_names: List[List[str]]=None) -> bool:
|
408
470
|
"""
|
409
471
|
Check if the fusion is valid: exist in fusing_patterns
|
410
472
|
Args:
|
411
473
|
fusing_patterns: supported fusing patterns
|
412
474
|
nodes: nodes which are participating in fusion
|
475
|
+
manual_fused_names: list of nodes names to handle as a valid fusing op.
|
413
476
|
Returns:
|
414
477
|
whether the fusion in valid
|
415
478
|
"""
|
479
|
+
node_names = [n.name for n in nodes]
|
480
|
+
if any(manual == node_names for manual in (manual_fused_names or [])):
|
481
|
+
return True
|
482
|
+
|
416
483
|
fusion_depth = len(nodes)
|
417
484
|
if fusion_depth <= 1:
|
418
485
|
return False
|
@@ -46,12 +46,14 @@ class GraphFuser:
|
|
46
46
|
The updated graph with fused nodes replacing the original node groups.
|
47
47
|
"""
|
48
48
|
graph_copy = copy.deepcopy(graph)
|
49
|
-
expected_fusing_info = FusingInfoGenerator(graph_copy.fusing_info.fusing_patterns
|
49
|
+
expected_fusing_info = FusingInfoGenerator(graph_copy.fusing_info.fusing_patterns,
|
50
|
+
graph_copy.fusing_info.get_manual_nodes_to_fuse()).generate_fusing_info(graph_copy)
|
50
51
|
|
51
|
-
|
52
|
+
existing_fusing_info = graph_copy.fusing_info
|
53
|
+
if expected_fusing_info != existing_fusing_info:
|
52
54
|
raise ValueError(
|
53
55
|
f"Mismatch between expected and existing fusing information.\n"
|
54
|
-
f"Expected:\n{expected_fusing_info}\nExisting:\n{
|
56
|
+
f"Expected:\n{expected_fusing_info}\nExisting:\n{existing_fusing_info}"
|
55
57
|
)
|
56
58
|
|
57
59
|
fused_operations = list(graph_copy.fusing_info.get_all_fused_operations().items())
|
@@ -908,7 +908,7 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
908
908
|
Disable activation quantization for all nodes in fused operations,
|
909
909
|
except for the last node in each fused group.
|
910
910
|
"""
|
911
|
-
nodes_to_disable =
|
911
|
+
nodes_to_disable = self.fusing_info.get_nodes_to_disable_activation_quantization()
|
912
912
|
for node in nodes_to_disable:
|
913
913
|
for qc in node.candidates_quantization_cfg:
|
914
914
|
qc.activation_quantization_cfg.quant_mode = ActivationQuantizationMode.FLN_QUANT
|
@@ -51,7 +51,7 @@ class MixedPrecisionRUHelper:
|
|
51
51
|
"""
|
52
52
|
act_qcs, w_qcs = self.get_quantization_candidates(mp_cfg)
|
53
53
|
|
54
|
-
ru, detailed_ru = self.ru_calculator.compute_resource_utilization(TargetInclusionCriterion.
|
54
|
+
ru, detailed_ru = self.ru_calculator.compute_resource_utilization(TargetInclusionCriterion.AnyQuantizedNonFused,
|
55
55
|
BitwidthMode.QCustom,
|
56
56
|
act_qcs=act_qcs,
|
57
57
|
w_qcs=w_qcs,
|
@@ -294,8 +294,12 @@ class MixedPrecisionSearchManager:
|
|
294
294
|
"""
|
295
295
|
act_qcs, w_qcs = self.orig_graph_ru_helper.get_quantization_candidates(config)
|
296
296
|
ru = self.orig_graph_ru_helper.ru_calculator.compute_resource_utilization(
|
297
|
-
target_criterion=TargetInclusionCriterion.
|
298
|
-
|
297
|
+
target_criterion=TargetInclusionCriterion.AnyQuantizedNonFused,
|
298
|
+
bitwidth_mode=BitwidthMode.QCustom,
|
299
|
+
act_qcs=act_qcs,
|
300
|
+
w_qcs=w_qcs,
|
301
|
+
ru_targets=self.ru_targets,
|
302
|
+
allow_unused_qcs=True)
|
299
303
|
return ru
|
300
304
|
|
301
305
|
def _finalize_distance_metric(self, layer_to_metrics_mapping: Dict[BaseNode, List[float]]):
|
@@ -67,11 +67,13 @@ class TargetInclusionCriterion(Enum):
|
|
67
67
|
QNonConfigurable: non-configurable targets (single quantization candidate).
|
68
68
|
AnyQuantized: any quantized targets (configurable and non-configurable).
|
69
69
|
Any: all targets (quantized + float).
|
70
|
+
QuantizedNonFused: any quantized targets that are not inside fused operations.
|
70
71
|
"""
|
71
72
|
QConfigurable = auto()
|
72
73
|
QNonConfigurable = auto()
|
73
74
|
AnyQuantized = auto()
|
74
75
|
Any = auto()
|
76
|
+
AnyQuantizedNonFused = auto()
|
75
77
|
|
76
78
|
|
77
79
|
class Utilization(NamedTuple):
|
@@ -534,8 +536,9 @@ class ResourceUtilizationCalculator:
|
|
534
536
|
assert not isinstance(n, VirtualNode), 'Use original graph to compute BOPS.'
|
535
537
|
if target_criterion is None:
|
536
538
|
target_criterion = TargetInclusionCriterion.Any
|
537
|
-
if target_criterion not in [TargetInclusionCriterion.AnyQuantized, TargetInclusionCriterion.Any]:
|
538
|
-
raise ValueError(
|
539
|
+
if target_criterion not in [TargetInclusionCriterion.AnyQuantized, TargetInclusionCriterion.AnyQuantizedNonFused, TargetInclusionCriterion.Any]:
|
540
|
+
raise ValueError(
|
541
|
+
'BOPS computation is supported only for Any, AnyQuantized and AnyQuantizedNonFused targets.')
|
539
542
|
|
540
543
|
self._validate_custom_qcs(act_qcs, bitwidth_mode)
|
541
544
|
self._validate_custom_qcs(w_qc, bitwidth_mode)
|
@@ -621,7 +624,7 @@ class ResourceUtilizationCalculator:
|
|
621
624
|
weight_attrs = n.get_node_weights_attributes()
|
622
625
|
if target_criterion == TargetInclusionCriterion.QConfigurable:
|
623
626
|
weight_attrs = [attr for attr in weight_attrs if n.is_configurable_weight(attr)]
|
624
|
-
elif target_criterion
|
627
|
+
elif target_criterion in [TargetInclusionCriterion.AnyQuantized, TargetInclusionCriterion.AnyQuantizedNonFused]:
|
625
628
|
weight_attrs = [attr for attr in weight_attrs if n.is_weights_quantization_enabled(attr)]
|
626
629
|
elif target_criterion == TargetInclusionCriterion.QNonConfigurable:
|
627
630
|
quantized = [attr for attr in weight_attrs if n.is_weights_quantization_enabled(attr)]
|
@@ -671,6 +674,10 @@ class ResourceUtilizationCalculator:
|
|
671
674
|
nodes = [n for n in nodes if n.has_configurable_activation()]
|
672
675
|
elif target_criterion == TargetInclusionCriterion.AnyQuantized:
|
673
676
|
nodes = [n for n in nodes if n.is_activation_quantization_enabled() or n.is_quantization_preserving()]
|
677
|
+
elif target_criterion == TargetInclusionCriterion.AnyQuantizedNonFused:
|
678
|
+
nodes = [n for n in nodes if n.is_activation_quantization_enabled() or n.is_quantization_preserving()]
|
679
|
+
# remove fused nodes (due to SNC, where the non-linear is quantized, even though it should not be quantized)
|
680
|
+
nodes = [n for n in nodes if n not in self.graph.fusing_info.get_nodes_to_disable_activation_quantization()]
|
674
681
|
elif target_criterion == TargetInclusionCriterion.QNonConfigurable:
|
675
682
|
nodes = [n for n in nodes if n.is_activation_quantization_enabled() and not n.has_configurable_activation()]
|
676
683
|
elif target_criterion != TargetInclusionCriterion.Any: # pragma: no cover
|
@@ -63,4 +63,4 @@ def compute_resource_utilization_data(in_model: Any,
|
|
63
63
|
running_gptq=False)
|
64
64
|
|
65
65
|
ru_calculator = ResourceUtilizationCalculator(transformed_graph, fw_impl, fw_info)
|
66
|
-
return ru_calculator.compute_resource_utilization(TargetInclusionCriterion.
|
66
|
+
return ru_calculator.compute_resource_utilization(TargetInclusionCriterion.AnyQuantizedNonFused, BitwidthMode.QDefaultSP)
|
@@ -149,7 +149,7 @@ class BatchNormalizationReconstruction(common.BaseSubstitution):
|
|
149
149
|
# the current info, or this creates a new fusion and the old pattern should be
|
150
150
|
# replaced with the new one.
|
151
151
|
fi = graph.fusing_info
|
152
|
-
fused_op = fi.
|
152
|
+
fused_op = fi.get_fused_op_id_for_node(source_node.name)
|
153
153
|
if fused_op:
|
154
154
|
fused_nodes = list(fi.get_fused_nodes(fused_op))
|
155
155
|
assert source_node in fused_nodes
|
@@ -23,8 +23,6 @@ from model_compression_toolkit.logger import Logger
|
|
23
23
|
from model_compression_toolkit.core.common import FrameworkInfo, Graph, BaseNode
|
24
24
|
from model_compression_toolkit.constants import THRESHOLD, SIGNED, SHIFT_NEGATIVE_NON_LINEAR_NUM_BITS
|
25
25
|
from model_compression_toolkit.core.common.graph.graph_matchers import NodeOperationMatcher
|
26
|
-
from mct_quantizers import QuantizationMethod
|
27
|
-
from model_compression_toolkit.target_platform_capabilities.schema.mct_current_schema import AttributeQuantizationConfig
|
28
26
|
from model_compression_toolkit.core.common.quantization.set_node_quantization_config import create_node_activation_qc, \
|
29
27
|
set_quantization_configs_to_node
|
30
28
|
from model_compression_toolkit.core.common.quantization.core_config import CoreConfig
|
@@ -33,6 +31,7 @@ from model_compression_toolkit.core.common.quantization.quantization_params_gene
|
|
33
31
|
from model_compression_toolkit.core.common.quantization.quantization_params_generation.error_functions import \
|
34
32
|
_mse_error_histogram
|
35
33
|
from model_compression_toolkit.core.common.quantization.quantization_params_generation import z_score_filter
|
34
|
+
from model_compression_toolkit.target_platform_capabilities import QuantizationMethod, AttributeQuantizationConfig
|
36
35
|
|
37
36
|
"""
|
38
37
|
This substitution aims to solve an issue of activation with negative outputs where
|
@@ -188,6 +187,65 @@ def remove_node_between_two_nodes(graph: Graph,
|
|
188
187
|
graph.remove_node(node_to_remove)
|
189
188
|
|
190
189
|
|
190
|
+
def fuse_padding_with_op2d(graph: 'BaseGraph', pad_node: 'BaseNode', op2d_node: 'BaseNode') -> None:
|
191
|
+
"""
|
192
|
+
Add a padding node to the fused operation containing op2d_node.
|
193
|
+
If op2d_node is not already in a fused op, create a new fused group with both nodes.
|
194
|
+
|
195
|
+
Args:
|
196
|
+
graph: The computational graph.
|
197
|
+
pad_node: The padding node to be added.
|
198
|
+
op2d_node: The Conv2D or similar op node following the pad.
|
199
|
+
"""
|
200
|
+
fusing_info = graph.fusing_info
|
201
|
+
|
202
|
+
if fusing_info.is_node_in_fused_op(op2d_node):
|
203
|
+
fused_id = fusing_info.get_fused_op_id_for_node(op2d_node.name)
|
204
|
+
fused_nodes = fusing_info.get_fused_nodes(fused_id)
|
205
|
+
fusing_info.remove_fused_operation(fused_id)
|
206
|
+
else:
|
207
|
+
fused_nodes = [op2d_node]
|
208
|
+
|
209
|
+
new_fused_nodes = [pad_node] + list(fused_nodes)
|
210
|
+
fused_op_id = fusing_info.generate_fused_op_id(new_fused_nodes)
|
211
|
+
|
212
|
+
fusing_info.add_fused_operation(fused_op_id, tuple(new_fused_nodes))
|
213
|
+
fusing_info.add_manual_nodes_to_fuse([n.name for n in new_fused_nodes])
|
214
|
+
|
215
|
+
def update_fused_op_with_add(graph: 'BaseGraph', non_linear_node: 'BaseNode', add_node: 'BaseNode') -> None:
|
216
|
+
"""
|
217
|
+
Update the fused operation to include an Add node that follows a non-linear activation node.
|
218
|
+
|
219
|
+
Args:
|
220
|
+
graph: The computational graph.
|
221
|
+
non_linear_node: The non-linear activation node (e.g., ReLU).
|
222
|
+
add_node: The Add node inserted after the non-linear node.
|
223
|
+
"""
|
224
|
+
fusing_info = graph.fusing_info
|
225
|
+
prev_node = graph.get_prev_nodes(non_linear_node)[0]
|
226
|
+
|
227
|
+
# Gather existing fused nodes (if any)
|
228
|
+
fused_candidates = []
|
229
|
+
for node in (prev_node, non_linear_node):
|
230
|
+
if fusing_info.is_node_in_fused_op(node):
|
231
|
+
fused_id = fusing_info.get_fused_op_id_for_node(node.name)
|
232
|
+
fused_candidates.extend(fusing_info.get_fused_nodes(fused_id))
|
233
|
+
fused_candidates.append(add_node)
|
234
|
+
|
235
|
+
# Remove duplicates while preserving order
|
236
|
+
fused_candidates = list(dict.fromkeys(fused_candidates))
|
237
|
+
|
238
|
+
# Remove existing fused ops involving prev_node or non_linear_node
|
239
|
+
for node in (prev_node, non_linear_node):
|
240
|
+
if fusing_info.is_node_in_fused_op(node):
|
241
|
+
fusing_info.remove_fused_operation(fusing_info.get_fused_op_id_for_node(node.name))
|
242
|
+
|
243
|
+
# Register new fused operation
|
244
|
+
fused_op_id = fusing_info.generate_fused_op_id(fused_candidates)
|
245
|
+
fusing_info.add_manual_nodes_to_fuse([n.name for n in fused_candidates])
|
246
|
+
fusing_info.add_fused_operation(fused_op_id, tuple(fused_candidates))
|
247
|
+
|
248
|
+
|
191
249
|
def shift_negative_function(graph: Graph,
|
192
250
|
core_config: CoreConfig,
|
193
251
|
non_linear_node: BaseNode,
|
@@ -232,7 +290,6 @@ def shift_negative_function(graph: Graph,
|
|
232
290
|
Returns:
|
233
291
|
Graph after applying the shifting and correction.
|
234
292
|
"""
|
235
|
-
|
236
293
|
min_to_correct, max_value2compare = graph.get_out_stats_collector(non_linear_node).get_min_max_values()
|
237
294
|
|
238
295
|
if not non_linear_node.is_all_activation_candidates_equal():
|
@@ -242,6 +299,7 @@ def shift_negative_function(graph: Graph,
|
|
242
299
|
# all candidates have same activation config, so taking the first candidate for calculations
|
243
300
|
non_linear_node_cfg_candidate = non_linear_node.candidates_quantization_cfg[0].activation_quantization_cfg
|
244
301
|
|
302
|
+
|
245
303
|
# get the non-linear activation threshold
|
246
304
|
activation_threshold = non_linear_node_cfg_candidate.activation_quantization_params.get(THRESHOLD)
|
247
305
|
|
@@ -350,7 +408,14 @@ def shift_negative_function(graph: Graph,
|
|
350
408
|
fqc=graph.fqc,
|
351
409
|
mixed_precision_enable=core_config.is_mixed_precision_enabled)
|
352
410
|
|
353
|
-
|
411
|
+
update_fused_op_with_add(graph=graph,
|
412
|
+
non_linear_node=non_linear_node,
|
413
|
+
add_node=add_node)
|
414
|
+
|
415
|
+
# If sum([pad_top, pad_btm, pad_left, pad_right])==0 it means we do not pad in any side, thus
|
416
|
+
# we do not add a padding node as this is meaningless
|
417
|
+
pad_node = None
|
418
|
+
if padding is not None and sum([pad_top, pad_btm, pad_left, pad_right])>0:
|
354
419
|
pad_node = create_pad_node(op2d_node.name,
|
355
420
|
add_node.name,
|
356
421
|
shift_value,
|
@@ -394,8 +459,16 @@ def shift_negative_function(graph: Graph,
|
|
394
459
|
graph.shift_stats_collector(bypass_node, np.array(shift_value))
|
395
460
|
|
396
461
|
add_node_qco = add_node.get_qco(graph.fqc).quantization_configurations
|
462
|
+
add_supported_bitwidths = [c.activation_n_bits for c in add_node_qco]
|
463
|
+
if original_non_linear_activation_nbits not in add_supported_bitwidths:
|
464
|
+
raise ValueError(
|
465
|
+
f"Add supported activation bit-widths according to the TPC are: {add_supported_bitwidths}, but non-linear "
|
466
|
+
f"bitwidth is {original_non_linear_activation_nbits}. Consider adapting the TPC so 'Add' will support the "
|
467
|
+
f"same bitwidth as {non_linear_node.type} or disable shift negative correction.")
|
468
|
+
|
397
469
|
for op_qc_idx, candidate_qc in enumerate(add_node.candidates_quantization_cfg):
|
398
470
|
for attr in add_node.get_node_weights_attributes():
|
471
|
+
# TODO: do we not quantize the weights of this 'add' on purpose?
|
399
472
|
candidate_qc.weights_quantization_cfg.get_attr_config(attr).enable_weights_quantization = False
|
400
473
|
|
401
474
|
candidate_qc.activation_quantization_cfg = create_node_activation_qc(core_config.quantization_config,
|
@@ -404,8 +477,15 @@ def shift_negative_function(graph: Graph,
|
|
404
477
|
|
405
478
|
candidate_qc.activation_quantization_cfg.set_activation_quantization_param({THRESHOLD: activation_threshold,
|
406
479
|
SIGNED: False})
|
480
|
+
|
407
481
|
candidate_qc.activation_quantization_cfg.activation_n_bits = original_non_linear_activation_nbits
|
408
482
|
|
483
|
+
# Add the new padding node to a fused op with the op2d.
|
484
|
+
if pad_node:
|
485
|
+
fuse_padding_with_op2d(graph=graph,
|
486
|
+
pad_node=pad_node,
|
487
|
+
op2d_node=op2d_node)
|
488
|
+
|
409
489
|
if non_linear_node_cfg_candidate.shift_negative_threshold_recalculation:
|
410
490
|
activation_param = get_activations_qparams(activation_quant_cfg=non_linear_node_cfg_candidate,
|
411
491
|
nodes_prior_info=non_linear_node.prior_info,
|
@@ -12,6 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
|
+
import copy
|
15
16
|
import operator
|
16
17
|
from typing import Tuple, Any, Callable
|
17
18
|
|
@@ -149,9 +150,9 @@ def create_pad_node(next_node_name: str,
|
|
149
150
|
op_call_kwargs = {PAD: [pad_left, pad_right, pad_top, pad_btm],
|
150
151
|
VALUE: float(value_to_pad)}
|
151
152
|
|
152
|
-
padded_shape = input_shape[0]
|
153
|
-
padded_shape[
|
154
|
-
padded_shape[
|
153
|
+
padded_shape = copy.deepcopy(input_shape[0])
|
154
|
+
padded_shape[2] += pad_top + pad_btm
|
155
|
+
padded_shape[3] += pad_left + pad_right
|
155
156
|
pad_node = common.graph.functional_node.FunctionalNode(pad_node_name,
|
156
157
|
{},
|
157
158
|
input_shape,
|
@@ -241,5 +242,4 @@ def pytorch_apply_shift_negative_correction(graph: Graph,
|
|
241
242
|
PADDING,
|
242
243
|
BIAS,
|
243
244
|
USE_BIAS,
|
244
|
-
params_search_quantization_fn=params_search_quantization_fn
|
245
|
-
)
|
245
|
+
params_search_quantization_fn=params_search_quantization_fn)
|
@@ -220,7 +220,7 @@ def _set_final_resource_utilization(graph: Graph,
|
|
220
220
|
ru_calculator = ResourceUtilizationCalculator(graph, fw_impl, fw_info)
|
221
221
|
w_qcs = {n.name: n.final_weights_quantization_cfg for n in graph.nodes}
|
222
222
|
a_qcs = {n.name: n.final_activation_quantization_cfg for n in graph.nodes}
|
223
|
-
final_ru = ru_calculator.compute_resource_utilization(TargetInclusionCriterion.
|
223
|
+
final_ru = ru_calculator.compute_resource_utilization(TargetInclusionCriterion.AnyQuantizedNonFused,
|
224
224
|
BitwidthMode.QCustom, act_qcs=a_qcs, w_qcs=w_qcs,
|
225
225
|
ru_targets=ru_targets, allow_unused_qcs=True)
|
226
226
|
summary = final_ru.get_summary_str(restricted=True)
|
File without changes
|
File without changes
|
{mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/requires.txt
RENAMED
File without changes
|
{mct_nightly-2.3.0.20250517.552 → mct_nightly-2.3.0.20250519.609}/mct_nightly.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|