mct-nightly 2.3.0.20250415.557__tar.gz → 2.3.0.20250417.547__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.20250415.557 → mct_nightly-2.3.0.20250417.547}/PKG-INFO +1 -1
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/mct_nightly.egg-info/PKG-INFO +1 -1
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/__init__.py +1 -1
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/framework_info.py +6 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/base_graph.py +9 -19
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/base_node.py +25 -39
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +5 -6
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +7 -5
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +82 -100
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +32 -41
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +13 -11
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +12 -4
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +2 -10
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/default_framework_info.py +2 -2
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +2 -9
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/default_framework_info.py +2 -2
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/schema/v2.py +67 -3
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/LICENSE.md +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/README.md +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/mct_nightly.egg-info/SOURCES.txt +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/mct_nightly.egg-info/requires.txt +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/collectors/weighted_histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/fusion/fusing_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/fusion/graph_fuser.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/edge.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/model_collector.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/model_validation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/user_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/data_util.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/common.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/convtranspose_dynamic_padding.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/pytorch/utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/core/runner.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/enums.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/defaultdict.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/logger.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/metadata.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/schema/schema_compatability.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/verify_packages.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/setup.cfg +0 -0
- {mct_nightly-2.3.0.20250415.557 → mct_nightly-2.3.0.20250417.547}/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.20250417.547
|
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.20250415.557 → mct_nightly-2.3.0.20250417.547}/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.20250417.547
|
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.20250417.000547"
|
@@ -22,6 +22,12 @@ from mct_quantizers import QuantizationMethod
|
|
22
22
|
from model_compression_toolkit.defaultdict import DefaultDict
|
23
23
|
|
24
24
|
|
25
|
+
# Default value to use for ops without kernel.
|
26
|
+
# This is a weird default, but it's used all over the place, so for now only extract it to const so that it can be
|
27
|
+
# referenced by variable instead of hard-coded.
|
28
|
+
DEFAULT_KERNEL_ATTRIBUTES = [None]
|
29
|
+
|
30
|
+
|
25
31
|
class ChannelAxis(Enum):
|
26
32
|
"""
|
27
33
|
|
@@ -16,7 +16,7 @@ from collections import namedtuple
|
|
16
16
|
|
17
17
|
from copy import copy, deepcopy
|
18
18
|
from functools import wraps
|
19
|
-
from typing import List, Tuple, Any, Callable
|
19
|
+
from typing import List, Tuple, Any, Callable, Dict
|
20
20
|
|
21
21
|
import networkx as nx
|
22
22
|
import numpy as np
|
@@ -684,7 +684,7 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
684
684
|
sorted_configurable_nodes.append(n)
|
685
685
|
return sorted_configurable_nodes
|
686
686
|
|
687
|
-
def get_min_candidates_config(self, fw_info: FrameworkInfo) ->
|
687
|
+
def get_min_candidates_config(self, fw_info: FrameworkInfo) -> Dict[BaseNode, int]:
|
688
688
|
"""
|
689
689
|
Builds a minimal configuration.
|
690
690
|
Note: we assume that a minimal configuration exists, i.e., each configurable node has exactly one candidate
|
@@ -694,18 +694,13 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
694
694
|
Args:
|
695
695
|
fw_info: fw_info: FrameworkInfo object with information about the specific framework's model.
|
696
696
|
|
697
|
-
Returns:
|
697
|
+
Returns:
|
698
|
+
A dict from layer to an index of its minimal candidate.
|
698
699
|
"""
|
699
|
-
|
700
700
|
conf_sorted_nodes = self.get_configurable_sorted_nodes(fw_info)
|
701
|
-
|
702
|
-
|
703
|
-
assert all([len(lst) == 1 for lst in min_cfg_candidates]), \
|
704
|
-
f"A minimal config candidate must be defined, but some node have multiple potential minimal candidates"
|
705
|
-
|
706
|
-
return [lst[0] for lst in min_cfg_candidates]
|
701
|
+
return {n: n.find_min_candidate_index() for n in conf_sorted_nodes}
|
707
702
|
|
708
|
-
def get_max_candidates_config(self, fw_info: FrameworkInfo) ->
|
703
|
+
def get_max_candidates_config(self, fw_info: FrameworkInfo) -> Dict[BaseNode, int]:
|
709
704
|
"""
|
710
705
|
Builds a maximal configuration.
|
711
706
|
Note: we assume that a maximal configuration exists, i.e., each configurable node has exactly one candidate
|
@@ -715,16 +710,11 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
715
710
|
Args:
|
716
711
|
fw_info: fw_info: FrameworkInfo object with information about the specific framework's model.
|
717
712
|
|
718
|
-
Returns:
|
713
|
+
Returns:
|
714
|
+
A dict from layer to an index of its maximal candidate.
|
719
715
|
"""
|
720
|
-
|
721
716
|
conf_sorted_nodes = self.get_configurable_sorted_nodes(fw_info)
|
722
|
-
|
723
|
-
|
724
|
-
assert all([len(lst) == 1 for lst in max_cfg_candidates]), \
|
725
|
-
f"A maximal config candidate must be defined, but some node have multiple potential maximal candidates"
|
726
|
-
|
727
|
-
return [lst[0] for lst in max_cfg_candidates]
|
717
|
+
return {n: n.find_max_candidate_index() for n in conf_sorted_nodes}
|
728
718
|
|
729
719
|
def get_final_weights_config(self, fw_info: FrameworkInfo) -> List[Tuple[BaseNode, int]]:
|
730
720
|
"""
|
@@ -484,49 +484,35 @@ class BaseNode:
|
|
484
484
|
# for scalar shape (None,) prod returns 1
|
485
485
|
return sum([np.prod([x for x in output_shape if x is not None]) for output_shape in output_shapes])
|
486
486
|
|
487
|
-
def
|
487
|
+
def find_min_candidate_index(self) -> int:
|
488
488
|
"""
|
489
|
-
Returns
|
490
|
-
|
491
|
-
on the Pareto Front, i.e., there is no other candidate that its n_bits pair exceeds in both entries.
|
492
|
-
|
493
|
-
Returns: A list of indices of potential minimal candidates.
|
494
|
-
|
495
|
-
"""
|
496
|
-
|
497
|
-
# We assume that the candidates are sorted according to weights_n_bits first and activation_n_bits second
|
498
|
-
# First, we add the last candidate to the set of minimal candidates (candidate, index)
|
499
|
-
first_min = (len(self.candidates_quantization_cfg) - 1,
|
500
|
-
self.candidates_quantization_cfg[-1].activation_quantization_cfg.activation_n_bits)
|
501
|
-
min_candidates = [first_min]
|
502
|
-
|
503
|
-
# Iterate over all other candidates, and add ones with higher weights_n_bits but smaller activation_n_bits
|
504
|
-
for i, c in reversed(list(enumerate(self.candidates_quantization_cfg))):
|
505
|
-
if c.activation_quantization_cfg.activation_n_bits < first_min[1]:
|
506
|
-
min_candidates.append((i, c))
|
507
|
-
|
508
|
-
return [i for i, a_n_bits in min_candidates]
|
509
|
-
|
510
|
-
def find_max_candidates_indices(self) -> List[int]:
|
489
|
+
Returns:
|
490
|
+
The index of the minimal bit-width candidate.
|
511
491
|
"""
|
512
|
-
|
513
|
-
|
514
|
-
|
492
|
+
aw_nbits = [(c.activation_quantization_cfg.activation_n_bits,
|
493
|
+
*[v.weights_n_bits for v in c.weights_quantization_cfg.get_all_weight_attrs_configs().values()])
|
494
|
+
for c in self.candidates_quantization_cfg]
|
495
|
+
min_nbits = min(aw_nbits)
|
496
|
+
min_ind = [i for i, nb in enumerate(aw_nbits) if min_nbits == nb]
|
497
|
+
# check that no other candidate has a lower nbit for any weight
|
498
|
+
if len(min_ind) > 1 or any(nb[i] < min_nbits[i] for i in range(len(min_nbits)) for nb in aw_nbits):
|
499
|
+
raise ValueError('Expected exactly one candidate with min activation and min weights.')
|
500
|
+
return min_ind[0]
|
515
501
|
|
516
|
-
|
502
|
+
def find_max_candidate_index(self) -> int:
|
517
503
|
"""
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
for i,
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
return [
|
504
|
+
Returns:
|
505
|
+
The index of the maximal bit-width candidate.
|
506
|
+
"""
|
507
|
+
aw_nbits = [(c.activation_quantization_cfg.activation_n_bits,
|
508
|
+
*[v.weights_n_bits for v in c.weights_quantization_cfg.get_all_weight_attrs_configs().values()])
|
509
|
+
for c in self.candidates_quantization_cfg]
|
510
|
+
max_nbits = max(aw_nbits)
|
511
|
+
max_ind = [i for i, nb in enumerate(aw_nbits) if max_nbits == nb]
|
512
|
+
# check that no other candidate has a higher nbit for any weight
|
513
|
+
if len(max_ind) > 1 or any(nb[i] > max_nbits[i] for i in range(len(max_nbits)) for nb in aw_nbits):
|
514
|
+
raise ValueError('Expected exactly one candidate with max activation and max weights.')
|
515
|
+
return max_ind[0]
|
530
516
|
|
531
517
|
def get_unique_weights_candidates(self, attr: str) -> List[Any]:
|
532
518
|
"""
|
@@ -12,12 +12,12 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
|
-
from typing import
|
15
|
+
from typing import Set, Dict, Tuple
|
16
16
|
|
17
17
|
import numpy as np
|
18
18
|
|
19
19
|
from model_compression_toolkit.core import FrameworkInfo
|
20
|
-
from model_compression_toolkit.core.common import Graph
|
20
|
+
from model_compression_toolkit.core.common import Graph, BaseNode
|
21
21
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
22
22
|
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import \
|
23
23
|
RUTarget
|
@@ -36,7 +36,7 @@ class MixedPrecisionRUHelper:
|
|
36
36
|
self.fw_impl = fw_impl
|
37
37
|
self.ru_calculator = ResourceUtilizationCalculator(graph, fw_impl, fw_info)
|
38
38
|
|
39
|
-
def compute_utilization(self, ru_targets: Set[RUTarget], mp_cfg:
|
39
|
+
def compute_utilization(self, ru_targets: Set[RUTarget], mp_cfg: Dict[BaseNode, int]) -> Dict[RUTarget, np.ndarray]:
|
40
40
|
"""
|
41
41
|
Compute utilization of requested targets for a specific configuration:
|
42
42
|
for weights and bops - total utilization,
|
@@ -74,7 +74,7 @@ class MixedPrecisionRUHelper:
|
|
74
74
|
f'Requested {ru_targets}')
|
75
75
|
return ru_dict
|
76
76
|
|
77
|
-
def get_quantization_candidates(self, mp_cfg) \
|
77
|
+
def get_quantization_candidates(self, mp_cfg: Dict[BaseNode, int]) \
|
78
78
|
-> Tuple[Dict[str, NodeActivationQuantizationConfig], Dict[str, NodeWeightsQuantizationConfig]]:
|
79
79
|
"""
|
80
80
|
Retrieve quantization candidates objects for weights and activations from the configuration list.
|
@@ -86,8 +86,7 @@ class MixedPrecisionRUHelper:
|
|
86
86
|
A mapping between nodes to weights quantization config, and a mapping between nodes and activation
|
87
87
|
quantization config.
|
88
88
|
"""
|
89
|
-
|
90
|
-
node_qcs = {n: n.candidates_quantization_cfg[mp_cfg[i]] for i, n in enumerate(mp_nodes)}
|
89
|
+
node_qcs = {n: n.candidates_quantization_cfg[candidate_idx] for n, candidate_idx in mp_cfg.items()}
|
91
90
|
act_qcs = {n.name: cfg.activation_quantization_cfg for n, cfg in node_qcs.items()}
|
92
91
|
w_qcs = {n.name: cfg.weights_quantization_cfg for n, cfg in node_qcs.items()}
|
93
92
|
return act_qcs, w_qcs
|
@@ -14,10 +14,10 @@
|
|
14
14
|
# ==============================================================================
|
15
15
|
|
16
16
|
from enum import Enum
|
17
|
-
from typing import List, Callable
|
17
|
+
from typing import List, Callable, Dict
|
18
18
|
|
19
19
|
from model_compression_toolkit.core import MixedPrecisionQuantizationConfig
|
20
|
-
from model_compression_toolkit.core.common import Graph
|
20
|
+
from model_compression_toolkit.core.common import Graph, BaseNode
|
21
21
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
22
22
|
from model_compression_toolkit.core.common.framework_info import FrameworkInfo
|
23
23
|
from model_compression_toolkit.core.common.hessian import HessianInfoService
|
@@ -100,11 +100,13 @@ def search_bit_width(graph: Graph,
|
|
100
100
|
fw_impl,
|
101
101
|
se,
|
102
102
|
target_resource_utilization)
|
103
|
-
|
103
|
+
nodes_bit_cfg = search_manager.search()
|
104
104
|
|
105
105
|
graph.skip_validation_check = False
|
106
106
|
|
107
107
|
if mp_config.refine_mp_solution:
|
108
|
-
|
108
|
+
nodes_bit_cfg = greedy_solution_refinement_procedure(nodes_bit_cfg, search_manager, target_resource_utilization)
|
109
109
|
|
110
|
-
|
110
|
+
topo_bit_cfg = [nodes_bit_cfg[n] for n in graph.get_configurable_sorted_nodes(fw_info)]
|
111
|
+
assert len(topo_bit_cfg) == len(nodes_bit_cfg)
|
112
|
+
return topo_bit_cfg
|
@@ -12,6 +12,8 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
|
+
import itertools
|
16
|
+
|
15
17
|
import copy
|
16
18
|
from collections import defaultdict
|
17
19
|
|
@@ -21,7 +23,6 @@ from typing import Dict, List, Tuple
|
|
21
23
|
|
22
24
|
import numpy as np
|
23
25
|
|
24
|
-
from model_compression_toolkit.constants import EPS
|
25
26
|
from model_compression_toolkit.core.common import BaseNode
|
26
27
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
27
28
|
from model_compression_toolkit.core.common.framework_info import FrameworkInfo
|
@@ -75,34 +76,44 @@ class MixedPrecisionSearchManager:
|
|
75
76
|
self.target_resource_utilization = target_resource_utilization
|
76
77
|
|
77
78
|
self.mp_topo_configurable_nodes = self.mp_graph.get_configurable_sorted_nodes(fw_info)
|
78
|
-
self.layer_to_bitwidth_mapping = self.get_search_space()
|
79
79
|
|
80
80
|
self.ru_targets = target_resource_utilization.get_restricted_targets()
|
81
81
|
self.ru_helper = MixedPrecisionRUHelper(self.mp_graph, fw_info, fw_impl)
|
82
82
|
|
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)
|
83
|
+
self.min_ru_config: Dict[BaseNode, int] = self.mp_graph.get_min_candidates_config(fw_info)
|
84
|
+
self.max_ru_config: Dict[BaseNode, int] = self.mp_graph.get_max_candidates_config(fw_info)
|
85
85
|
self.min_ru = self.ru_helper.compute_utilization(self.ru_targets, self.min_ru_config)
|
86
86
|
|
87
87
|
self.config_reconstruction_helper = ConfigReconstructionHelper(virtual_graph=self.mp_graph,
|
88
88
|
original_graph=self.original_graph)
|
89
89
|
|
90
|
-
def search(self) ->
|
90
|
+
def search(self) -> Dict[BaseNode, int]:
|
91
91
|
"""
|
92
92
|
Run mixed precision search.
|
93
93
|
|
94
94
|
Returns:
|
95
|
-
|
95
|
+
Mapping from nodes to indices of the selected bit-widths candidate.
|
96
96
|
"""
|
97
|
-
|
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()
|
97
|
+
mp_config = self._prepare_and_run_solver()
|
102
98
|
|
103
99
|
if self.using_virtual_graph:
|
104
|
-
|
105
|
-
|
100
|
+
mp_config = self.config_reconstruction_helper.reconstruct_config_from_virtual_graph(mp_config)
|
101
|
+
|
102
|
+
return mp_config
|
103
|
+
|
104
|
+
def _prepare_and_run_solver(self) -> Dict[BaseNode, int]:
|
105
|
+
"""
|
106
|
+
Prepare sensitivity and ru data for LP solver and run the solver.
|
107
|
+
|
108
|
+
Returns:
|
109
|
+
Mapping from nodes to indices of the selected bit-widths candidate.
|
110
|
+
"""
|
111
|
+
layers_candidates_sensitivity: Dict[BaseNode, List[float]] = self._build_sensitivity_mapping()
|
112
|
+
candidates_ru = self._compute_relative_ru_matrices()
|
113
|
+
rel_target_ru = self._get_relative_ru_constraint_per_mem_element()
|
114
|
+
solver = MixedPrecisionIntegerLPSolver(layers_candidates_sensitivity, candidates_ru, rel_target_ru)
|
115
|
+
mp_config = solver.run()
|
116
|
+
return mp_config
|
106
117
|
|
107
118
|
def _get_relative_ru_constraint_per_mem_element(self) -> Dict[RUTarget, np.ndarray]:
|
108
119
|
"""
|
@@ -119,7 +130,7 @@ class MixedPrecisionSearchManager:
|
|
119
130
|
"""
|
120
131
|
target_ru = self.target_resource_utilization.get_resource_utilization_dict(restricted_only=True)
|
121
132
|
rel_target_ru = {
|
122
|
-
ru_target: ru - self.min_ru[ru_target] for ru_target, ru in target_ru.items()
|
133
|
+
ru_target: (ru - self.min_ru[ru_target]) for ru_target, ru in target_ru.items()
|
123
134
|
}
|
124
135
|
unsatisfiable_targets = {
|
125
136
|
ru_target.value: target_ru[ru_target] for ru_target, ru in rel_target_ru.items() if any(ru < 0)
|
@@ -129,28 +140,31 @@ class MixedPrecisionSearchManager:
|
|
129
140
|
f"following targets: {unsatisfiable_targets}")
|
130
141
|
return rel_target_ru
|
131
142
|
|
132
|
-
def _build_sensitivity_mapping(self, eps: float =
|
143
|
+
def _build_sensitivity_mapping(self, eps: float = 1e-6) -> Dict[BaseNode, List[float]]:
|
133
144
|
"""
|
134
145
|
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
146
|
|
141
147
|
Args:
|
142
|
-
eps:
|
148
|
+
eps: if sensitivity for a non-max candidate is lower than for a max candidate, we set it to
|
149
|
+
sensitivity of a max candidate + epsilon.
|
143
150
|
|
144
151
|
Returns:
|
145
|
-
Mapping from
|
146
|
-
the sensitivity of the model.
|
147
|
-
|
152
|
+
Mapping from nodes to their bitwidth candidates sensitivity.
|
148
153
|
"""
|
149
154
|
|
150
155
|
Logger.info('Starting to evaluate metrics')
|
151
|
-
layer_to_metrics_mapping = {}
|
152
156
|
|
153
|
-
|
157
|
+
orig_sorted_nodes = self.original_graph.get_configurable_sorted_nodes(self.fw_info)
|
158
|
+
|
159
|
+
def topo_cfg(cfg: dict) -> list:
|
160
|
+
topo_cfg = [cfg[n] for n in orig_sorted_nodes]
|
161
|
+
assert len(topo_cfg) == len(cfg)
|
162
|
+
return topo_cfg
|
163
|
+
|
164
|
+
def compute_metric(cfg, node_idx=None, baseline_cfg=None):
|
165
|
+
return self.sensitivity_evaluator.compute_metric(topo_cfg(cfg),
|
166
|
+
node_idx,
|
167
|
+
topo_cfg(baseline_cfg) if baseline_cfg else None)
|
154
168
|
if self.using_virtual_graph:
|
155
169
|
origin_max_config = self.config_reconstruction_helper.reconstruct_config_from_virtual_graph(
|
156
170
|
self.max_ru_config)
|
@@ -158,19 +172,17 @@ class MixedPrecisionSearchManager:
|
|
158
172
|
else:
|
159
173
|
max_config_value = compute_metric(self.max_ru_config)
|
160
174
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
for bitwidth_idx in layer_possible_bitwidths_indices:
|
166
|
-
if self.max_ru_config[node_idx] == bitwidth_idx:
|
175
|
+
layer_to_metrics_mapping = defaultdict(list)
|
176
|
+
for node_idx, node in tqdm(enumerate(self.mp_topo_configurable_nodes)):
|
177
|
+
for bitwidth_idx, _ in enumerate(node.candidates_quantization_cfg):
|
178
|
+
if self.max_ru_config[node] == bitwidth_idx:
|
167
179
|
# This is a computation of the metric for the max configuration, assign pre-calculated value
|
168
|
-
layer_to_metrics_mapping[
|
180
|
+
layer_to_metrics_mapping[node].append(max_config_value)
|
169
181
|
continue
|
170
182
|
|
171
183
|
# Create a configuration that differs at one layer only from the baseline model
|
172
184
|
mp_model_configuration = self.max_ru_config.copy()
|
173
|
-
mp_model_configuration[
|
185
|
+
mp_model_configuration[node] = bitwidth_idx
|
174
186
|
|
175
187
|
# Build a distance matrix using the function we got from the framework implementation.
|
176
188
|
if self.using_virtual_graph:
|
@@ -180,8 +192,8 @@ class MixedPrecisionSearchManager:
|
|
180
192
|
mp_model_configuration,
|
181
193
|
changed_virtual_nodes_idx=[node_idx],
|
182
194
|
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[
|
195
|
+
origin_changed_nodes_indices = [i for i, (n, c) in enumerate(origin_max_config.items()) if
|
196
|
+
c != origin_mp_model_configuration[n]]
|
185
197
|
metric_value = compute_metric(
|
186
198
|
origin_mp_model_configuration,
|
187
199
|
origin_changed_nodes_indices,
|
@@ -191,11 +203,11 @@ class MixedPrecisionSearchManager:
|
|
191
203
|
mp_model_configuration,
|
192
204
|
[node_idx],
|
193
205
|
self.max_ru_config)
|
194
|
-
|
195
|
-
layer_to_metrics_mapping[
|
206
|
+
metric_value = max(metric_value, max_config_value + eps)
|
207
|
+
layer_to_metrics_mapping[node].append(metric_value)
|
196
208
|
|
197
209
|
# Finalize distance metric mapping
|
198
|
-
self.
|
210
|
+
self._finalize_distance_metric(layer_to_metrics_mapping)
|
199
211
|
|
200
212
|
return layer_to_metrics_mapping
|
201
213
|
|
@@ -221,22 +233,6 @@ class MixedPrecisionSearchManager:
|
|
221
233
|
|
222
234
|
return graph, False
|
223
235
|
|
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).
|
228
|
-
|
229
|
-
Returns:
|
230
|
-
The entire search space of the graph.
|
231
|
-
"""
|
232
|
-
|
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
236
|
def _compute_relative_ru_matrices(self) -> Dict[RUTarget, np.ndarray]:
|
241
237
|
"""
|
242
238
|
Computes and builds a resource utilization matrix for all restricted targets, to be used for the
|
@@ -248,55 +244,41 @@ class MixedPrecisionSearchManager:
|
|
248
244
|
per ru target. Num memory elements depends on the target, e.g. num cuts or 1 for cumulative metrics.
|
249
245
|
"""
|
250
246
|
rus_per_candidate = defaultdict(list)
|
251
|
-
for
|
252
|
-
for candidate_idx in
|
253
|
-
if candidate_idx == self.min_ru_config[
|
247
|
+
for node in self.mp_topo_configurable_nodes:
|
248
|
+
for candidate_idx, _ in enumerate(node.candidates_quantization_cfg):
|
249
|
+
if candidate_idx == self.min_ru_config[node]:
|
254
250
|
candidate_rus = self.min_ru
|
255
251
|
else:
|
256
|
-
|
252
|
+
cfg = self.min_ru_config.copy()
|
253
|
+
cfg[node] = candidate_idx
|
254
|
+
candidate_rus = self.ru_helper.compute_utilization(self.ru_targets, cfg)
|
257
255
|
|
258
256
|
for target, ru in candidate_rus.items():
|
259
257
|
rus_per_candidate[target].append(ru)
|
260
258
|
|
261
259
|
# 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()}
|
260
|
+
relative_rus = {target: (np.array(ru) - self.min_ru[target]) for target, ru in rus_per_candidate.items()}
|
263
261
|
return relative_rus
|
264
262
|
|
265
|
-
def compute_ru_for_candidate(self, conf_node_idx: int, candidate_idx: int) -> Dict[RUTarget, np.ndarray]:
|
266
|
-
"""
|
267
|
-
Computes a resource utilization vector after replacing the given node's configuration candidate in the minimal
|
268
|
-
target configuration with the given candidate index.
|
269
|
-
|
270
|
-
Args:
|
271
|
-
conf_node_idx: The index of a node in a sorted configurable nodes list.
|
272
|
-
candidate_idx: Quantization config candidate to be used for the node's resource utilization computation.
|
273
|
-
|
274
|
-
Returns:
|
275
|
-
Node's resource utilization vector.
|
276
|
-
|
277
|
-
"""
|
278
|
-
cfg = self.replace_config_in_index(self.min_ru_config, conf_node_idx, candidate_idx)
|
279
|
-
return self.ru_helper.compute_utilization(self.ru_targets, cfg)
|
280
|
-
|
281
263
|
@staticmethod
|
282
|
-
def
|
264
|
+
def copy_config_with_replacement(mp_cfg: Dict[BaseNode, int], node: BaseNode, candidate_idx: int) -> Dict[BaseNode, int]:
|
283
265
|
"""
|
284
|
-
|
285
|
-
index (node's index) with the given value (candidate index).
|
266
|
+
Create a copy of the given mixed-precision configuration and update the candidate index for a specific node.
|
286
267
|
|
287
268
|
Args:
|
288
|
-
mp_cfg: Mixed-precision configuration
|
289
|
-
|
290
|
-
|
269
|
+
mp_cfg: Mixed-precision configuration.
|
270
|
+
node: Node to update the config for.
|
271
|
+
candidate_idx: A new candidate index to configure.
|
291
272
|
|
292
|
-
Returns:
|
273
|
+
Returns:
|
274
|
+
A new mixed-precision configuration.
|
293
275
|
|
294
276
|
"""
|
295
277
|
updated_cfg = mp_cfg.copy()
|
296
|
-
updated_cfg[
|
278
|
+
updated_cfg[node] = candidate_idx
|
297
279
|
return updated_cfg
|
298
280
|
|
299
|
-
def compute_resource_utilization_for_config(self, config:
|
281
|
+
def compute_resource_utilization_for_config(self, config: Dict[BaseNode, int]) -> ResourceUtilization:
|
300
282
|
"""
|
301
283
|
Computes the resource utilization values for a given mixed-precision configuration.
|
302
284
|
|
@@ -313,7 +295,7 @@ class MixedPrecisionSearchManager:
|
|
313
295
|
w_qcs=w_qcs, ru_targets=self.ru_targets, allow_unused_qcs=True)
|
314
296
|
return ru
|
315
297
|
|
316
|
-
def
|
298
|
+
def _finalize_distance_metric(self, layer_to_metrics_mapping: Dict[BaseNode, List[float]]):
|
317
299
|
"""
|
318
300
|
Finalizing the distance metric building.
|
319
301
|
The method checks to see if the maximal distance value is larger than a given threshold, and if so,
|
@@ -321,21 +303,20 @@ class MixedPrecisionSearchManager:
|
|
321
303
|
Modification to the dictionary is done inplace.
|
322
304
|
|
323
305
|
Args:
|
324
|
-
layer_to_metrics_mapping: A mapping between a node
|
325
|
-
a bitwidth index to a distance value.
|
306
|
+
layer_to_metrics_mapping: A mapping between a node to a list of distance values per bitwidth candidate.
|
326
307
|
|
327
308
|
"""
|
328
309
|
# normalize metric for numerical stability
|
310
|
+
max_dist = max(itertools.chain.from_iterable(layer_to_metrics_mapping.values()))
|
329
311
|
|
330
|
-
max_dist = max([max([d for b, d in dists.items()]) for layer, dists in layer_to_metrics_mapping.items()])
|
331
312
|
if max_dist >= self.sensitivity_evaluator.quant_config.metric_normalization_threshold:
|
332
313
|
Logger.warning(f"The mixed precision distance metric values indicate a large error in the quantized model."
|
333
314
|
f"this can cause numerical issues."
|
334
315
|
f"The program will proceed with mixed precision search after scaling the metric values,"
|
335
316
|
f"which can lead to unstable results.")
|
336
317
|
for layer, dists in layer_to_metrics_mapping.items():
|
337
|
-
for
|
338
|
-
layer_to_metrics_mapping[layer][
|
318
|
+
for i, _ in enumerate(dists):
|
319
|
+
layer_to_metrics_mapping[layer][i] /= max_dist
|
339
320
|
|
340
321
|
|
341
322
|
class ConfigReconstructionHelper:
|
@@ -363,7 +344,8 @@ class ConfigReconstructionHelper:
|
|
363
344
|
self.fw_info = original_graph.fw_info
|
364
345
|
|
365
346
|
self.virtual_sorted_nodes_names = self.virtual_graph.get_configurable_sorted_nodes_names(self.fw_info)
|
366
|
-
self.
|
347
|
+
self.origin_sorted_conf_nodes = self.original_graph.get_configurable_sorted_nodes(self.fw_info)
|
348
|
+
self.origin_sorted_conf_nodes_names = [n.name for n in self.origin_sorted_conf_nodes]
|
367
349
|
|
368
350
|
self.origin_node_idx_to_cfg = {}
|
369
351
|
|
@@ -375,9 +357,9 @@ class ConfigReconstructionHelper:
|
|
375
357
|
self.origin_node_idx_to_cfg = {}
|
376
358
|
|
377
359
|
def reconstruct_config_from_virtual_graph(self,
|
378
|
-
virtual_mp_cfg:
|
360
|
+
virtual_mp_cfg: Dict[BaseNode, int],
|
379
361
|
changed_virtual_nodes_idx: List[int] = None,
|
380
|
-
original_base_config:
|
362
|
+
original_base_config: Dict[BaseNode, int] = None) -> Dict[BaseNode, int]:
|
381
363
|
"""
|
382
364
|
Reconstructs the original config for a given virtual graph mixed-precision config.
|
383
365
|
It iterates over all virtual configurable node (that has some chosen bit-width virtual candidate)
|
@@ -405,21 +387,21 @@ class ConfigReconstructionHelper:
|
|
405
387
|
[(idx, self.virtual_graph.get_configurable_sorted_nodes(self.fw_info)[idx]) for idx in changed_virtual_nodes_idx]
|
406
388
|
# Iterating only over the virtual nodes that have updated config
|
407
389
|
for virtual_node_idx, n in updated_virtual_nodes:
|
408
|
-
self.reconstruct_node_config(n, virtual_mp_cfg, virtual_node_idx)
|
390
|
+
self.reconstruct_node_config(n, list(virtual_mp_cfg.values()), virtual_node_idx)
|
409
391
|
# Updating reconstructed config for all other nodes based on provided base_config
|
410
392
|
original_sorted_conf_nodes = self.original_graph.get_configurable_sorted_nodes(self.fw_info)
|
411
|
-
for i in
|
393
|
+
for i, (n, qc_ind) in enumerate(original_base_config.items()):
|
412
394
|
if i not in list(self.origin_node_idx_to_cfg.keys()):
|
413
|
-
self.update_config_at_original_idx(n=
|
414
|
-
origin_cfg_idx=original_base_config[i])
|
395
|
+
self.update_config_at_original_idx(n=n, origin_cfg_idx=qc_ind)
|
415
396
|
else:
|
416
397
|
# Reconstruct entire config
|
417
398
|
for virtual_node_idx, n in enumerate(self.virtual_graph.get_configurable_sorted_nodes(self.fw_info)):
|
418
|
-
self.reconstruct_node_config(n, virtual_mp_cfg, virtual_node_idx)
|
399
|
+
self.reconstruct_node_config(n, list(virtual_mp_cfg.values()), virtual_node_idx)
|
419
400
|
|
420
401
|
res_config = [self.origin_node_idx_to_cfg[key] for key in sorted(self.origin_node_idx_to_cfg.keys())]
|
421
402
|
self._clear_reconstruction_dict()
|
422
|
-
|
403
|
+
assert len(res_config) == len(self.origin_sorted_conf_nodes)
|
404
|
+
return {n: candidate_idx for n, candidate_idx in zip(self.origin_sorted_conf_nodes, res_config)}
|
423
405
|
|
424
406
|
def reconstruct_node_config(self,
|
425
407
|
n: BaseNode,
|