mct-nightly 2.3.0.20250323.559__tar.gz → 2.3.0.20250325.524__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.20250323.559 → mct_nightly-2.3.0.20250325.524}/PKG-INFO +1 -1
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/mct_nightly.egg-info/PKG-INFO +1 -1
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/__init__.py +1 -1
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/base_graph.py +14 -4
- mct_nightly-2.3.0.20250325.524/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +93 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +17 -42
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +179 -60
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +22 -10
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +1 -5
- mct_nightly-2.3.0.20250325.524/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +66 -0
- mct_nightly-2.3.0.20250325.524/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +157 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +1 -1
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +2 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/runner.py +2 -12
- mct_nightly-2.3.0.20250323.559/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +0 -157
- mct_nightly-2.3.0.20250323.559/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -146
- mct_nightly-2.3.0.20250323.559/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -337
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/LICENSE.md +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/README.md +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/mct_nightly.egg-info/SOURCES.txt +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/mct_nightly.egg-info/requires.txt +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/collectors/weighted_histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/framework_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/fusion/graph_fuser.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/edge.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/model_collector.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/model_validation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/user_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/data_util.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/common.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/convtranspose_dynamic_padding.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/pytorch/utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/enums.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/defaultdict.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/logger.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/metadata.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/verify_packages.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/setup.cfg +0 -0
- {mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mct-nightly
|
3
|
-
Version: 2.3.0.
|
3
|
+
Version: 2.3.0.20250325.524
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Classifier: License :: OSI Approved :: Apache Software License
|
{mct_nightly-2.3.0.20250323.559 → mct_nightly-2.3.0.20250325.524}/mct_nightly.egg-info/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mct-nightly
|
3
|
-
Version: 2.3.0.
|
3
|
+
Version: 2.3.0.20250325.524
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Classifier: License :: OSI Approved :: Apache Software License
|
@@ -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.20250325.000524"
|
@@ -706,14 +706,24 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
706
706
|
"""
|
707
707
|
self.fused_nodes.append(fusion)
|
708
708
|
|
709
|
-
def
|
709
|
+
def has_any_configurable_activation(self) -> bool:
|
710
710
|
"""
|
711
|
-
Checks whether
|
711
|
+
Checks whether any node in the graph has a configurable activation quantization.
|
712
712
|
|
713
|
-
Returns:
|
713
|
+
Returns:
|
714
|
+
Whether any node in the graph has a configurable activation quantization.
|
715
|
+
"""
|
716
|
+
return any([n.has_configurable_activation() for n in self.nodes])
|
717
|
+
|
718
|
+
def has_any_configurable_weights(self):
|
719
|
+
"""
|
720
|
+
Checks whether any node in the graph has any configurable weights quantization.
|
714
721
|
|
722
|
+
Returns:
|
723
|
+
Whether any node in the graph has any configurable weights quantization.
|
715
724
|
"""
|
716
|
-
|
725
|
+
|
726
|
+
return any([n.has_any_configurable_weight() for n in self.nodes])
|
717
727
|
|
718
728
|
def replace_node(self, node_to_replace: BaseNode, new_node: BaseNode):
|
719
729
|
"""
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# Copyright 2022 Sony Semiconductor Israel, Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
# ==============================================================================
|
15
|
+
from typing import List, Set, Dict, Tuple
|
16
|
+
|
17
|
+
import numpy as np
|
18
|
+
|
19
|
+
from model_compression_toolkit.core import FrameworkInfo
|
20
|
+
from model_compression_toolkit.core.common import Graph
|
21
|
+
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
22
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import \
|
23
|
+
RUTarget
|
24
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization_calculator import \
|
25
|
+
ResourceUtilizationCalculator, BitwidthMode, TargetInclusionCriterion
|
26
|
+
from model_compression_toolkit.core.common.quantization.node_quantization_config import NodeWeightsQuantizationConfig, \
|
27
|
+
NodeActivationQuantizationConfig
|
28
|
+
|
29
|
+
|
30
|
+
class MixedPrecisionRUHelper:
|
31
|
+
""" Helper class for resource utilization computations for mixed precision optimization. """
|
32
|
+
|
33
|
+
def __init__(self, graph: Graph, fw_info: FrameworkInfo, fw_impl: FrameworkImplementation):
|
34
|
+
self.graph = graph
|
35
|
+
self.fw_info = fw_info
|
36
|
+
self.fw_impl = fw_impl
|
37
|
+
self.ru_calculator = ResourceUtilizationCalculator(graph, fw_impl, fw_info)
|
38
|
+
|
39
|
+
def compute_utilization(self, ru_targets: Set[RUTarget], mp_cfg: List[int]) -> Dict[RUTarget, np.ndarray]:
|
40
|
+
"""
|
41
|
+
Compute utilization of requested targets for a specific configuration:
|
42
|
+
for weights and bops - total utilization,
|
43
|
+
for activations and total - utilization per cut.
|
44
|
+
|
45
|
+
Args:
|
46
|
+
ru_targets: resource utilization targets to compute.
|
47
|
+
mp_cfg: a list of candidates indices for configurable layers.
|
48
|
+
|
49
|
+
Returns:
|
50
|
+
Dict of the computed utilization per target, as 1d vector.
|
51
|
+
"""
|
52
|
+
act_qcs, w_qcs = self.get_quantization_candidates(mp_cfg)
|
53
|
+
|
54
|
+
ru, detailed_ru = self.ru_calculator.compute_resource_utilization(TargetInclusionCriterion.AnyQuantized,
|
55
|
+
BitwidthMode.QCustom,
|
56
|
+
act_qcs=act_qcs,
|
57
|
+
w_qcs=w_qcs,
|
58
|
+
ru_targets=ru_targets,
|
59
|
+
allow_unused_qcs=True,
|
60
|
+
return_detailed=True)
|
61
|
+
|
62
|
+
ru_dict = {k: np.array([v]) for k, v in ru.get_resource_utilization_dict(restricted_only=True).items()}
|
63
|
+
# For activation and total we need utilization per cut, as different mp configurations might result in
|
64
|
+
# different cuts to be maximal.
|
65
|
+
for target in [RUTarget.ACTIVATION, RUTarget.TOTAL]:
|
66
|
+
if target in ru_dict:
|
67
|
+
ru_dict[target] = np.array(list(detailed_ru[target].values()))
|
68
|
+
|
69
|
+
assert all(v.ndim == 1 for v in ru_dict.values())
|
70
|
+
if RUTarget.ACTIVATION in ru_targets and RUTarget.TOTAL in ru_targets:
|
71
|
+
assert ru_dict[RUTarget.ACTIVATION].shape == ru_dict[RUTarget.TOTAL].shape
|
72
|
+
|
73
|
+
assert len(ru_dict) == len(ru_targets), (f'Mismatch between the number of computed and requested metrics.'
|
74
|
+
f'Requested {ru_targets}')
|
75
|
+
return ru_dict
|
76
|
+
|
77
|
+
def get_quantization_candidates(self, mp_cfg) \
|
78
|
+
-> Tuple[Dict[str, NodeActivationQuantizationConfig], Dict[str, NodeWeightsQuantizationConfig]]:
|
79
|
+
"""
|
80
|
+
Retrieve quantization candidates objects for weights and activations from the configuration list.
|
81
|
+
|
82
|
+
Args:
|
83
|
+
mp_cfg: a list of candidates indices for configurable layers.
|
84
|
+
|
85
|
+
Returns:
|
86
|
+
A mapping between nodes to weights quantization config, and a mapping between nodes and activation
|
87
|
+
quantization config.
|
88
|
+
"""
|
89
|
+
mp_nodes = self.graph.get_configurable_sorted_nodes(self.fw_info)
|
90
|
+
node_qcs = {n: n.candidates_quantization_cfg[mp_cfg[i]] for i, n in enumerate(mp_nodes)}
|
91
|
+
act_qcs = {n.name: cfg.activation_quantization_cfg for n, cfg in node_qcs.items()}
|
92
|
+
w_qcs = {n.name: cfg.weights_quantization_cfg for n, cfg in node_qcs.items()}
|
93
|
+
return act_qcs, w_qcs
|
@@ -13,37 +13,27 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
15
|
|
16
|
-
import copy
|
17
16
|
from enum import Enum
|
18
|
-
import
|
19
|
-
from typing import List, Callable, Dict
|
17
|
+
from typing import List, Callable
|
20
18
|
|
21
19
|
from model_compression_toolkit.core import MixedPrecisionQuantizationConfig
|
22
20
|
from model_compression_toolkit.core.common import Graph
|
23
|
-
from model_compression_toolkit.core.common.hessian import HessianInfoService
|
24
|
-
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization, RUTarget
|
25
21
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
26
|
-
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_search_manager import MixedPrecisionSearchManager
|
27
|
-
from model_compression_toolkit.core.common.mixed_precision.search_methods.linear_programming import \
|
28
|
-
mp_integer_programming_search
|
29
22
|
from model_compression_toolkit.core.common.framework_info import FrameworkInfo
|
23
|
+
from model_compression_toolkit.core.common.hessian import HessianInfoService
|
24
|
+
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_search_manager import \
|
25
|
+
MixedPrecisionSearchManager
|
26
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import \
|
27
|
+
ResourceUtilization
|
30
28
|
from model_compression_toolkit.core.common.mixed_precision.solution_refinement_procedure import \
|
31
29
|
greedy_solution_refinement_procedure
|
32
|
-
from model_compression_toolkit.core.common.substitutions.apply_substitutions import substitute
|
33
|
-
from model_compression_toolkit.logger import Logger
|
34
30
|
|
35
31
|
|
36
32
|
class BitWidthSearchMethod(Enum):
|
37
|
-
# When adding a new search_methods MP configuration method, these enum and factory dictionary
|
38
|
-
# should be updated with it's kind and a search_method implementation.
|
39
33
|
INTEGER_PROGRAMMING = 0
|
40
34
|
|
41
35
|
|
42
|
-
|
43
|
-
BitWidthSearchMethod.INTEGER_PROGRAMMING: mp_integer_programming_search}
|
44
|
-
|
45
|
-
|
46
|
-
def search_bit_width(graph_to_search_cfg: Graph,
|
36
|
+
def search_bit_width(graph: Graph,
|
47
37
|
fw_info: FrameworkInfo,
|
48
38
|
fw_impl: FrameworkImplementation,
|
49
39
|
target_resource_utilization: ResourceUtilization,
|
@@ -60,7 +50,7 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
60
50
|
target_resource_utilization have to be passed. If it was not passed, the facade is not supposed to get here by now.
|
61
51
|
|
62
52
|
Args:
|
63
|
-
|
53
|
+
graph: Graph to search a MP configuration for.
|
64
54
|
fw_info: FrameworkInfo object about the specific framework (e.g., attributes of different layers' weights to quantize).
|
65
55
|
fw_impl: FrameworkImplementation object with specific framework methods implementation.
|
66
56
|
target_resource_utilization: Target Resource Utilization to bound our feasible solution space s.t the configuration does not violate it.
|
@@ -75,17 +65,7 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
75
65
|
bit-width index on the node).
|
76
66
|
|
77
67
|
"""
|
78
|
-
|
79
|
-
# target_resource_utilization have to be passed. If it was not passed, the facade is not supposed to get here by now.
|
80
|
-
if target_resource_utilization is None:
|
81
|
-
Logger.critical("Target ResourceUtilization is required for the bit-width search method's configuration.") # pragma: no cover
|
82
|
-
|
83
|
-
# Set graph for MP search
|
84
|
-
graph = copy.deepcopy(graph_to_search_cfg) # Copy graph before searching
|
85
|
-
if target_resource_utilization.bops_restricted():
|
86
|
-
# TODO: we only need the virtual graph is both activations and weights are configurable
|
87
|
-
# Since Bit-operations count target resource utilization is set, we need to reconstruct the graph for the MP search
|
88
|
-
graph = substitute(graph, fw_impl.get_substitutions_virtual_weights_activation_coupling())
|
68
|
+
assert target_resource_utilization.is_any_restricted()
|
89
69
|
|
90
70
|
# If we only run weights compression with MP than no need to consider activation quantization when computing the
|
91
71
|
# MP metric (it adds noise to the computation)
|
@@ -93,33 +73,28 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
93
73
|
weight_only_restricted = tru.weight_restricted() and not (tru.activation_restricted() or
|
94
74
|
tru.total_mem_restricted() or
|
95
75
|
tru.bops_restricted())
|
96
|
-
disable_activation_for_metric = weight_only_restricted or
|
76
|
+
disable_activation_for_metric = weight_only_restricted or not graph.has_any_configurable_activation()
|
97
77
|
|
98
78
|
# Set Sensitivity Evaluator for MP search. It should always work with the original MP graph,
|
99
79
|
# even if a virtual graph was created (and is used only for BOPS utilization computation purposes)
|
100
80
|
se = fw_impl.get_sensitivity_evaluator(
|
101
|
-
|
81
|
+
graph,
|
102
82
|
mp_config,
|
103
83
|
representative_data_gen=representative_data_gen,
|
104
84
|
fw_info=fw_info,
|
105
85
|
disable_activation_for_metric=disable_activation_for_metric,
|
106
86
|
hessian_info_service=hessian_info_service)
|
107
87
|
|
108
|
-
|
88
|
+
if search_method != BitWidthSearchMethod.INTEGER_PROGRAMMING:
|
89
|
+
raise NotImplementedError()
|
90
|
+
|
91
|
+
# Search manager and LP are highly coupled, so LP search method was moved inside search manager.
|
109
92
|
search_manager = MixedPrecisionSearchManager(graph,
|
110
93
|
fw_info,
|
111
94
|
fw_impl,
|
112
95
|
se,
|
113
|
-
target_resource_utilization
|
114
|
-
|
115
|
-
|
116
|
-
if search_method not in search_methods:
|
117
|
-
raise NotImplementedError() # pragma: no cover
|
118
|
-
|
119
|
-
search_method_fn = search_methods[search_method]
|
120
|
-
# Search for the desired mixed-precision configuration
|
121
|
-
result_bit_cfg = search_method_fn(search_manager,
|
122
|
-
target_resource_utilization)
|
96
|
+
target_resource_utilization)
|
97
|
+
result_bit_cfg = search_manager.search()
|
123
98
|
|
124
99
|
if mp_config.refine_mp_solution:
|
125
100
|
result_bit_cfg = greedy_solution_refinement_procedure(result_bit_cfg, search_manager, target_resource_utilization)
|
@@ -12,11 +12,16 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
|
+
import copy
|
16
|
+
from collections import defaultdict
|
15
17
|
|
16
|
-
from
|
18
|
+
from tqdm import tqdm
|
19
|
+
|
20
|
+
from typing import Dict, List, Tuple
|
17
21
|
|
18
22
|
import numpy as np
|
19
23
|
|
24
|
+
from model_compression_toolkit.constants import EPS
|
20
25
|
from model_compression_toolkit.core.common import BaseNode
|
21
26
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
22
27
|
from model_compression_toolkit.core.common.framework_info import FrameworkInfo
|
@@ -29,7 +34,10 @@ from model_compression_toolkit.core.common.mixed_precision.resource_utilization_
|
|
29
34
|
TargetInclusionCriterion, BitwidthMode
|
30
35
|
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_ru_helper import \
|
31
36
|
MixedPrecisionRUHelper
|
37
|
+
from model_compression_toolkit.core.common.mixed_precision.search_methods.linear_programming import \
|
38
|
+
MixedPrecisionIntegerLPSolver
|
32
39
|
from model_compression_toolkit.core.common.mixed_precision.sensitivity_evaluation import SensitivityEvaluation
|
40
|
+
from model_compression_toolkit.core.common.substitutions.apply_substitutions import substitute
|
33
41
|
from model_compression_toolkit.logger import Logger
|
34
42
|
|
35
43
|
|
@@ -43,8 +51,7 @@ class MixedPrecisionSearchManager:
|
|
43
51
|
fw_info: FrameworkInfo,
|
44
52
|
fw_impl: FrameworkImplementation,
|
45
53
|
sensitivity_evaluator: SensitivityEvaluation,
|
46
|
-
target_resource_utilization: ResourceUtilization
|
47
|
-
original_graph: Graph = None):
|
54
|
+
target_resource_utilization: ResourceUtilization):
|
48
55
|
"""
|
49
56
|
|
50
57
|
Args:
|
@@ -54,96 +61,208 @@ class MixedPrecisionSearchManager:
|
|
54
61
|
sensitivity_evaluator: A SensitivityEvaluation which provides a function that evaluates the sensitivity of
|
55
62
|
a bit-width configuration for the MP model.
|
56
63
|
target_resource_utilization: Target Resource Utilization to bound our feasible solution space s.t the configuration does not violate it.
|
57
|
-
original_graph: In case we have a search over a virtual graph (if we have BOPS utilization target), then this argument
|
58
|
-
will contain the original graph (for config reconstruction purposes).
|
59
64
|
"""
|
60
65
|
|
61
|
-
self.graph = graph
|
62
|
-
self.original_graph = graph if original_graph is None else original_graph
|
63
66
|
self.fw_info = fw_info
|
64
67
|
self.fw_impl = fw_impl
|
68
|
+
|
69
|
+
self.original_graph = graph
|
70
|
+
# graph for mp search
|
71
|
+
self.mp_graph, self.using_virtual_graph = self._get_mp_graph(graph, target_resource_utilization)
|
72
|
+
del graph # so that it's not used by mistake
|
73
|
+
|
65
74
|
self.sensitivity_evaluator = sensitivity_evaluator
|
75
|
+
self.target_resource_utilization = target_resource_utilization
|
76
|
+
|
77
|
+
self.mp_topo_configurable_nodes = self.mp_graph.get_configurable_sorted_nodes(fw_info)
|
66
78
|
self.layer_to_bitwidth_mapping = self.get_search_space()
|
67
|
-
self.compute_metric_fn = self.get_sensitivity_metric()
|
68
|
-
self._cuts = None
|
69
79
|
|
70
|
-
|
71
|
-
|
72
|
-
targets = target_resource_utilization.get_restricted_targets()
|
73
|
-
if RUTarget.TOTAL in targets:
|
74
|
-
targets = targets.union({RUTarget.ACTIVATION, RUTarget.WEIGHTS}) - {RUTarget.TOTAL}
|
75
|
-
self.ru_targets_to_compute = targets
|
80
|
+
self.ru_targets = target_resource_utilization.get_restricted_targets()
|
81
|
+
self.ru_helper = MixedPrecisionRUHelper(self.mp_graph, fw_info, fw_impl)
|
76
82
|
|
77
|
-
self.
|
78
|
-
self.
|
79
|
-
self.
|
80
|
-
self.max_ru_config = self.graph.get_max_candidates_config(fw_info)
|
81
|
-
self.min_ru = self.ru_helper.compute_utilization(self.ru_targets_to_compute, self.min_ru_config)
|
82
|
-
self.non_conf_ru_dict = self.ru_helper.compute_utilization(self.ru_targets_to_compute, None)
|
83
|
+
self.min_ru_config = self.mp_graph.get_min_candidates_config(fw_info)
|
84
|
+
self.max_ru_config = self.mp_graph.get_max_candidates_config(fw_info)
|
85
|
+
self.min_ru = self.ru_helper.compute_utilization(self.ru_targets, self.min_ru_config)
|
83
86
|
|
84
|
-
self.config_reconstruction_helper = ConfigReconstructionHelper(virtual_graph=self.
|
87
|
+
self.config_reconstruction_helper = ConfigReconstructionHelper(virtual_graph=self.mp_graph,
|
85
88
|
original_graph=self.original_graph)
|
86
89
|
|
87
|
-
def
|
90
|
+
def search(self) -> List[int]:
|
88
91
|
"""
|
89
|
-
|
90
|
-
for the node).
|
92
|
+
Run mixed precision search.
|
91
93
|
|
92
94
|
Returns:
|
93
|
-
|
95
|
+
Indices of the selected bit-widths candidates.
|
94
96
|
"""
|
97
|
+
candidates_sensitivity = self._build_sensitivity_mapping()
|
98
|
+
candidates_ru = self._compute_relative_ru_matrices()
|
99
|
+
rel_target_ru = self._get_relative_ru_constraint_per_mem_element()
|
100
|
+
solver = MixedPrecisionIntegerLPSolver(candidates_sensitivity, candidates_ru, rel_target_ru)
|
101
|
+
config = solver.run()
|
95
102
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
# For each node, get all possible bitwidth indices for it
|
100
|
-
# (which is a list from 0 to the length of the candidates mp_config list of the node).
|
101
|
-
indices_mapping[idx] = list(range(len(n.candidates_quantization_cfg))) # all search_methods space
|
102
|
-
return indices_mapping
|
103
|
+
if self.using_virtual_graph:
|
104
|
+
config = self.config_reconstruction_helper.reconstruct_config_from_virtual_graph(config)
|
105
|
+
return config
|
103
106
|
|
104
|
-
def
|
107
|
+
def _get_relative_ru_constraint_per_mem_element(self) -> Dict[RUTarget, np.ndarray]:
|
105
108
|
"""
|
109
|
+
Computes resource utilization constraint with respect to the minimal bit configuration, i.e. corresponding
|
110
|
+
constraint for each memory element is the relative utilization between the target utilization and
|
111
|
+
element's utilization for min-bit configuration.
|
112
|
+
|
113
|
+
Returns:
|
114
|
+
A dictionary of relative resource utilization constraints per ru target.
|
115
|
+
|
116
|
+
Raises:
|
117
|
+
ValueError: if target resource utilization cannot be satisfied (utilization for the minimal bit
|
118
|
+
configuration exceeds the requested target utilization for any target).
|
119
|
+
"""
|
120
|
+
target_ru = self.target_resource_utilization.get_resource_utilization_dict(restricted_only=True)
|
121
|
+
rel_target_ru = {
|
122
|
+
ru_target: ru - self.min_ru[ru_target] for ru_target, ru in target_ru.items()
|
123
|
+
}
|
124
|
+
unsatisfiable_targets = {
|
125
|
+
ru_target.value: target_ru[ru_target] for ru_target, ru in rel_target_ru.items() if any(ru < 0)
|
126
|
+
}
|
127
|
+
if unsatisfiable_targets:
|
128
|
+
raise ValueError(f"The model cannot be quantized to meet the specified resource utilization for the "
|
129
|
+
f"following targets: {unsatisfiable_targets}")
|
130
|
+
return rel_target_ru
|
131
|
+
|
132
|
+
def _build_sensitivity_mapping(self, eps: float = EPS) -> Dict[int, Dict[int, float]]:
|
133
|
+
"""
|
134
|
+
This function measures the sensitivity of a change in a bitwidth of a layer on the entire model.
|
135
|
+
It builds a mapping from a node's index, to its bitwidht's effect on the model sensitivity.
|
136
|
+
For each node and some possible node's bitwidth (according to the given search space), we use
|
137
|
+
the framework function compute_metric_fn in order to infer
|
138
|
+
a batch of images, and compute (using the inference results) the sensitivity metric of
|
139
|
+
the configured mixed-precision model.
|
140
|
+
|
141
|
+
Args:
|
142
|
+
eps: Epsilon value to manually increase metric value (if necessary) for numerical stability
|
106
143
|
|
107
|
-
Returns:
|
108
|
-
|
109
|
-
|
144
|
+
Returns:
|
145
|
+
Mapping from each node's index in a graph, to a dictionary from the bitwidth index (of this node) to
|
146
|
+
the sensitivity of the model.
|
110
147
|
|
111
148
|
"""
|
112
|
-
# Get from the framework an evaluation function on how a MP configuration,
|
113
|
-
# affects the expected loss.
|
114
149
|
|
115
|
-
|
150
|
+
Logger.info('Starting to evaluate metrics')
|
151
|
+
layer_to_metrics_mapping = {}
|
152
|
+
|
153
|
+
compute_metric = self.sensitivity_evaluator.compute_metric
|
154
|
+
if self.using_virtual_graph:
|
155
|
+
origin_max_config = self.config_reconstruction_helper.reconstruct_config_from_virtual_graph(
|
156
|
+
self.max_ru_config)
|
157
|
+
max_config_value = compute_metric(origin_max_config)
|
158
|
+
else:
|
159
|
+
max_config_value = compute_metric(self.max_ru_config)
|
160
|
+
|
161
|
+
for node_idx, layer_possible_bitwidths_indices in tqdm(self.layer_to_bitwidth_mapping.items(),
|
162
|
+
total=len(self.layer_to_bitwidth_mapping)):
|
163
|
+
layer_to_metrics_mapping[node_idx] = {}
|
164
|
+
|
165
|
+
for bitwidth_idx in layer_possible_bitwidths_indices:
|
166
|
+
if self.max_ru_config[node_idx] == bitwidth_idx:
|
167
|
+
# This is a computation of the metric for the max configuration, assign pre-calculated value
|
168
|
+
layer_to_metrics_mapping[node_idx][bitwidth_idx] = max_config_value
|
169
|
+
continue
|
170
|
+
|
171
|
+
# Create a configuration that differs at one layer only from the baseline model
|
172
|
+
mp_model_configuration = self.max_ru_config.copy()
|
173
|
+
mp_model_configuration[node_idx] = bitwidth_idx
|
174
|
+
|
175
|
+
# Build a distance matrix using the function we got from the framework implementation.
|
176
|
+
if self.using_virtual_graph:
|
177
|
+
# Reconstructing original graph's configuration from virtual graph's configuration
|
178
|
+
origin_mp_model_configuration = \
|
179
|
+
self.config_reconstruction_helper.reconstruct_config_from_virtual_graph(
|
180
|
+
mp_model_configuration,
|
181
|
+
changed_virtual_nodes_idx=[node_idx],
|
182
|
+
original_base_config=origin_max_config)
|
183
|
+
origin_changed_nodes_indices = [i for i, c in enumerate(origin_max_config) if
|
184
|
+
c != origin_mp_model_configuration[i]]
|
185
|
+
metric_value = compute_metric(
|
186
|
+
origin_mp_model_configuration,
|
187
|
+
origin_changed_nodes_indices,
|
188
|
+
origin_max_config)
|
189
|
+
else:
|
190
|
+
metric_value = compute_metric(
|
191
|
+
mp_model_configuration,
|
192
|
+
[node_idx],
|
193
|
+
self.max_ru_config)
|
194
|
+
|
195
|
+
layer_to_metrics_mapping[node_idx][bitwidth_idx] = max(metric_value, max_config_value + eps)
|
116
196
|
|
117
|
-
|
197
|
+
# Finalize distance metric mapping
|
198
|
+
self.finalize_distance_metric(layer_to_metrics_mapping)
|
199
|
+
|
200
|
+
return layer_to_metrics_mapping
|
201
|
+
|
202
|
+
def _get_mp_graph(self, graph: Graph, target_resource_utilization: ResourceUtilization) -> Tuple[Graph, bool]:
|
118
203
|
"""
|
119
|
-
|
120
|
-
|
204
|
+
Get graph for mixed precision search. Virtual graph is built if bops is restricted and both activation and
|
205
|
+
weights are configurable.
|
121
206
|
|
122
207
|
Args:
|
123
|
-
|
208
|
+
graph: input graph.
|
209
|
+
target_resource_utilization: target resource utilization.
|
210
|
+
|
211
|
+
Returns:
|
212
|
+
Graph for mixed precision search (virtual or original), and a boolean flag whether a virtual graph has been
|
213
|
+
constructed.
|
214
|
+
"""
|
215
|
+
if (target_resource_utilization.bops_restricted() and
|
216
|
+
graph.has_any_configurable_activation() and
|
217
|
+
graph.has_any_configurable_weights()):
|
218
|
+
mp_graph = substitute(copy.deepcopy(graph),
|
219
|
+
self.fw_impl.get_substitutions_virtual_weights_activation_coupling())
|
220
|
+
return mp_graph, True
|
221
|
+
|
222
|
+
return graph, False
|
223
|
+
|
224
|
+
def get_search_space(self) -> Dict[int, List[int]]:
|
225
|
+
"""
|
226
|
+
The search space is a mapping from a node's index to a list of integers (possible bitwidths candidates indeces
|
227
|
+
for the node).
|
124
228
|
|
125
229
|
Returns:
|
126
|
-
|
127
|
-
depends on the target, e.g. num nodes or num cuts, for which utilization is computed.
|
230
|
+
The entire search space of the graph.
|
128
231
|
"""
|
129
|
-
assert isinstance(target, RUTarget), f"{target} is not a valid resource target"
|
130
232
|
|
131
|
-
|
233
|
+
indices_mapping = {}
|
234
|
+
for idx, n in enumerate(self.mp_topo_configurable_nodes):
|
235
|
+
# For each node, get all possible bitwidth indices for it
|
236
|
+
# (which is a list from 0 to the length of the candidates mp_config list of the node).
|
237
|
+
indices_mapping[idx] = list(range(len(n.candidates_quantization_cfg))) # all search_methods space
|
238
|
+
return indices_mapping
|
239
|
+
|
240
|
+
def _compute_relative_ru_matrices(self) -> Dict[RUTarget, np.ndarray]:
|
241
|
+
"""
|
242
|
+
Computes and builds a resource utilization matrix for all restricted targets, to be used for the
|
243
|
+
mixed-precision search problem formalization.
|
244
|
+
Utilization is computed relative to the minimal configuration, i.e. utilization for it will be 0.
|
132
245
|
|
133
|
-
|
134
|
-
|
246
|
+
Returns:
|
247
|
+
A dictionary containing resource utilization matrix of shape (num configurations, num memory elements)
|
248
|
+
per ru target. Num memory elements depends on the target, e.g. num cuts or 1 for cumulative metrics.
|
249
|
+
"""
|
250
|
+
rus_per_candidate = defaultdict(list)
|
251
|
+
for c, c_n in enumerate(self.mp_topo_configurable_nodes):
|
135
252
|
for candidate_idx in range(len(c_n.candidates_quantization_cfg)):
|
136
253
|
if candidate_idx == self.min_ru_config[c]:
|
137
|
-
candidate_rus = self.min_ru
|
254
|
+
candidate_rus = self.min_ru
|
138
255
|
else:
|
139
|
-
candidate_rus = self.
|
256
|
+
candidate_rus = self.compute_ru_for_candidate(c, candidate_idx)
|
140
257
|
|
141
|
-
|
258
|
+
for target, ru in candidate_rus.items():
|
259
|
+
rus_per_candidate[target].append(ru)
|
142
260
|
|
143
|
-
|
144
|
-
|
261
|
+
# Each target contains a matrix of num configurations X num elements
|
262
|
+
relative_rus = {target: np.array(ru) - self.min_ru[target] for target, ru in rus_per_candidate.items()}
|
263
|
+
return relative_rus
|
145
264
|
|
146
|
-
def
|
265
|
+
def compute_ru_for_candidate(self, conf_node_idx: int, candidate_idx: int) -> Dict[RUTarget, np.ndarray]:
|
147
266
|
"""
|
148
267
|
Computes a resource utilization vector after replacing the given node's configuration candidate in the minimal
|
149
268
|
target configuration with the given candidate index.
|
@@ -151,13 +270,13 @@ class MixedPrecisionSearchManager:
|
|
151
270
|
Args:
|
152
271
|
conf_node_idx: The index of a node in a sorted configurable nodes list.
|
153
272
|
candidate_idx: Quantization config candidate to be used for the node's resource utilization computation.
|
154
|
-
target: The target for which the resource utilization is calculated (a RUTarget value).
|
155
273
|
|
156
|
-
Returns:
|
274
|
+
Returns:
|
275
|
+
Node's resource utilization vector.
|
157
276
|
|
158
277
|
"""
|
159
278
|
cfg = self.replace_config_in_index(self.min_ru_config, conf_node_idx, candidate_idx)
|
160
|
-
return self.ru_helper.compute_utilization(
|
279
|
+
return self.ru_helper.compute_utilization(self.ru_targets, cfg)
|
161
280
|
|
162
281
|
@staticmethod
|
163
282
|
def replace_config_in_index(mp_cfg: List[int], idx: int, value: int) -> List[int]:
|
@@ -191,7 +310,7 @@ class MixedPrecisionSearchManager:
|
|
191
310
|
act_qcs, w_qcs = self.ru_helper.get_quantization_candidates(config)
|
192
311
|
ru = self.ru_helper.ru_calculator.compute_resource_utilization(
|
193
312
|
target_criterion=TargetInclusionCriterion.AnyQuantized, bitwidth_mode=BitwidthMode.QCustom, act_qcs=act_qcs,
|
194
|
-
w_qcs=w_qcs, ru_targets=self.
|
313
|
+
w_qcs=w_qcs, ru_targets=self.ru_targets, allow_unused_qcs=True)
|
195
314
|
return ru
|
196
315
|
|
197
316
|
def finalize_distance_metric(self, layer_to_metrics_mapping: Dict[int, Dict[int, float]]):
|
@@ -51,25 +51,34 @@ class ResourceUtilization:
|
|
51
51
|
bops: float = np.inf
|
52
52
|
|
53
53
|
def weight_restricted(self):
|
54
|
-
return self.weights_memory
|
54
|
+
return self._is_restricted(self.weights_memory)
|
55
55
|
|
56
56
|
def activation_restricted(self):
|
57
|
-
return self.activation_memory
|
57
|
+
return self._is_restricted(self.activation_memory)
|
58
58
|
|
59
59
|
def total_mem_restricted(self):
|
60
|
-
return self.total_memory
|
60
|
+
return self._is_restricted(self.total_memory)
|
61
61
|
|
62
62
|
def bops_restricted(self):
|
63
|
-
return self.bops
|
63
|
+
return self._is_restricted(self.bops)
|
64
64
|
|
65
|
-
def get_resource_utilization_dict(self) -> Dict[RUTarget, float]:
|
65
|
+
def get_resource_utilization_dict(self, restricted_only: bool = False) -> Dict[RUTarget, float]:
|
66
66
|
"""
|
67
|
-
|
67
|
+
Get resource utilization as a dictionary.
|
68
|
+
|
69
|
+
Args:
|
70
|
+
restricted_only: whether to include only targets with restricted utilization.
|
71
|
+
|
72
|
+
Returns:
|
73
|
+
A dictionary containing the resource utilization with targets as keys.
|
68
74
|
"""
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
75
|
+
ru_dict = {RUTarget.WEIGHTS: self.weights_memory,
|
76
|
+
RUTarget.ACTIVATION: self.activation_memory,
|
77
|
+
RUTarget.TOTAL: self.total_memory,
|
78
|
+
RUTarget.BOPS: self.bops}
|
79
|
+
if restricted_only:
|
80
|
+
ru_dict = {k: v for k, v in ru_dict.items() if self._is_restricted(v)}
|
81
|
+
return ru_dict
|
73
82
|
|
74
83
|
def is_satisfied_by(self, ru: 'ResourceUtilization') -> bool:
|
75
84
|
"""
|
@@ -114,3 +123,6 @@ class ResourceUtilization:
|
|
114
123
|
if RUTarget.BOPS in targets:
|
115
124
|
summary.append(f"BOPS: {self.bops}")
|
116
125
|
return ', '.join(summary)
|
126
|
+
|
127
|
+
def _is_restricted(self, v):
|
128
|
+
return v < np.inf
|