mct-nightly 2.3.0.20250505.616__tar.gz → 2.3.0.20250507.555__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.20250505.616 → mct_nightly-2.3.0.20250507.555}/PKG-INFO +4 -2
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/README.md +1 -1
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/mct_nightly.egg-info/PKG-INFO +4 -2
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/__init__.py +1 -1
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +16 -16
- mct_nightly-2.3.0.20250507.555/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +505 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +6 -27
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/setup.py +1 -0
- mct_nightly-2.3.0.20250505.616/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -678
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/LICENSE.md +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/mct_nightly.egg-info/SOURCES.txt +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/mct_nightly.egg-info/requires.txt +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/collectors/weighted_histogram_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/framework_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/fusion/fusing_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/fusion/graph_fuser.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/edge.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/model_collector.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/model_validation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/user_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/data_util.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/common.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/convtranspose_dynamic_padding.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/pytorch/utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/core/runner.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/enums.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/defaultdict.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/logger.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/metadata.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/pruning/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/schema/schema_compatability.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/schema/v2.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/verify_packages.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/constants.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
- {mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/setup.cfg +0 -0
@@ -1,7 +1,8 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mct-nightly
|
3
|
-
Version: 2.3.0.
|
3
|
+
Version: 2.3.0.20250507.555
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
5
|
+
Author-email: ssi-dnn-dev@sony.com
|
5
6
|
Classifier: Programming Language :: Python :: 3
|
6
7
|
Classifier: License :: OSI Approved :: Apache Software License
|
7
8
|
Classifier: Operating System :: OS Independent
|
@@ -23,6 +24,7 @@ Requires-Dist: protobuf
|
|
23
24
|
Requires-Dist: mct-quantizers-nightly
|
24
25
|
Requires-Dist: pydantic>=2.0
|
25
26
|
Requires-Dist: sony-custom-layers-dev==0.4.0.dev6
|
27
|
+
Dynamic: author-email
|
26
28
|
Dynamic: classifier
|
27
29
|
Dynamic: description
|
28
30
|
Dynamic: description-content-type
|
@@ -51,7 +53,7 @@ ______________________________________________________________________
|
|
51
53
|
</p>
|
52
54
|
<p align="center">
|
53
55
|
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/pytorch-2.2%20%7C%202.3%20%7C%202.4%20%7C%202.5-blue" /></a>
|
54
|
-
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/tensorflow-
|
56
|
+
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/tensorflow-2.14%20%7C%202.15-blue" /></a>
|
55
57
|
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue" /></a>
|
56
58
|
<a href="https://github.com/sony/model_optimization/releases"><img src="https://img.shields.io/github/v/release/sony/model_optimization" /></a>
|
57
59
|
<a href="https://github.com/sony/model_optimization/blob/main/LICENSE.md"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" /></a>
|
@@ -18,7 +18,7 @@ ______________________________________________________________________
|
|
18
18
|
</p>
|
19
19
|
<p align="center">
|
20
20
|
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/pytorch-2.2%20%7C%202.3%20%7C%202.4%20%7C%202.5-blue" /></a>
|
21
|
-
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/tensorflow-
|
21
|
+
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/tensorflow-2.14%20%7C%202.15-blue" /></a>
|
22
22
|
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue" /></a>
|
23
23
|
<a href="https://github.com/sony/model_optimization/releases"><img src="https://img.shields.io/github/v/release/sony/model_optimization" /></a>
|
24
24
|
<a href="https://github.com/sony/model_optimization/blob/main/LICENSE.md"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" /></a>
|
{mct_nightly-2.3.0.20250505.616 → mct_nightly-2.3.0.20250507.555}/mct_nightly.egg-info/PKG-INFO
RENAMED
@@ -1,7 +1,8 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mct-nightly
|
3
|
-
Version: 2.3.0.
|
3
|
+
Version: 2.3.0.20250507.555
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
5
|
+
Author-email: ssi-dnn-dev@sony.com
|
5
6
|
Classifier: Programming Language :: Python :: 3
|
6
7
|
Classifier: License :: OSI Approved :: Apache Software License
|
7
8
|
Classifier: Operating System :: OS Independent
|
@@ -23,6 +24,7 @@ Requires-Dist: protobuf
|
|
23
24
|
Requires-Dist: mct-quantizers-nightly
|
24
25
|
Requires-Dist: pydantic>=2.0
|
25
26
|
Requires-Dist: sony-custom-layers-dev==0.4.0.dev6
|
27
|
+
Dynamic: author-email
|
26
28
|
Dynamic: classifier
|
27
29
|
Dynamic: description
|
28
30
|
Dynamic: description-content-type
|
@@ -51,7 +53,7 @@ ______________________________________________________________________
|
|
51
53
|
</p>
|
52
54
|
<p align="center">
|
53
55
|
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/pytorch-2.2%20%7C%202.3%20%7C%202.4%20%7C%202.5-blue" /></a>
|
54
|
-
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/tensorflow-
|
56
|
+
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/tensorflow-2.14%20%7C%202.15-blue" /></a>
|
55
57
|
<a href="https://sony.github.io/model_optimization#prerequisites"><img src="https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue" /></a>
|
56
58
|
<a href="https://github.com/sony/model_optimization/releases"><img src="https://img.shields.io/github/v/release/sony/model_optimization" /></a>
|
57
59
|
<a href="https://github.com/sony/model_optimization/blob/main/LICENSE.md"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" /></a>
|
@@ -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.20250507.000555"
|
@@ -12,22 +12,25 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
|
+
import abc
|
15
16
|
import uuid
|
16
17
|
|
17
|
-
from typing import Dict, Any, Tuple
|
18
|
-
|
19
18
|
from model_compression_toolkit.core import FrameworkInfo
|
20
19
|
from model_compression_toolkit.constants import VIRTUAL_ACTIVATION_WEIGHTS_NODE_PREFIX, \
|
21
20
|
VIRTUAL_WEIGHTS_SUFFIX, VIRTUAL_ACTIVATION_SUFFIX, FLOAT_BITWIDTH
|
22
|
-
|
21
|
+
from model_compression_toolkit.core.common.framework_info import DEFAULT_KERNEL_ATTRIBUTES
|
23
22
|
from model_compression_toolkit.core.common.graph.base_node import BaseNode
|
24
|
-
import numpy as np
|
25
|
-
|
26
23
|
from model_compression_toolkit.core.common.quantization.candidate_node_quantization_config import \
|
27
24
|
CandidateNodeQuantizationConfig
|
25
|
+
from model_compression_toolkit.core.common.quantization.node_quantization_config import ActivationQuantizationMode
|
26
|
+
|
28
27
|
|
28
|
+
class VirtualNode(BaseNode, abc.ABC):
|
29
|
+
""" Base class for all virtual nodes. """
|
30
|
+
pass
|
29
31
|
|
30
|
-
|
32
|
+
|
33
|
+
class VirtualSplitNode(VirtualNode, abc.ABC):
|
31
34
|
"""
|
32
35
|
A class that represents a node that was split from a kernel node (node with weights).
|
33
36
|
"""
|
@@ -73,14 +76,11 @@ class VirtualSplitWeightsNode(VirtualSplitNode):
|
|
73
76
|
super().__init__(origin_node)
|
74
77
|
|
75
78
|
self.name = origin_node.name + VIRTUAL_WEIGHTS_SUFFIX
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
# from the original graph, so in the worst case the utilization will be higher in virtual graph.
|
82
|
-
# This should guarantee that the utilization of the original graph does not exceed the requested target.
|
83
|
-
self.candidates_quantization_cfg = origin_node.candidates_quantization_cfg
|
79
|
+
|
80
|
+
self.candidates_quantization_cfg = origin_node.get_unique_weights_candidates(kernel_attr)
|
81
|
+
for c in self.candidates_quantization_cfg:
|
82
|
+
c.activation_quantization_cfg.quant_mode = ActivationQuantizationMode.NO_QUANT
|
83
|
+
c.activation_quantization_cfg.activation_n_bits = FLOAT_BITWIDTH
|
84
84
|
|
85
85
|
|
86
86
|
class VirtualSplitActivationNode(VirtualSplitNode):
|
@@ -113,7 +113,7 @@ class VirtualSplitActivationNode(VirtualSplitNode):
|
|
113
113
|
c.weights_quantization_cfg.weights_n_bits = FLOAT_BITWIDTH
|
114
114
|
|
115
115
|
|
116
|
-
class VirtualActivationWeightsNode(
|
116
|
+
class VirtualActivationWeightsNode(VirtualNode):
|
117
117
|
"""
|
118
118
|
A node that represents a composition of pair of sequential activation node and weights (kernel) node.
|
119
119
|
This structure is used for mixed-precision search with bit-operation constraint.
|
@@ -149,7 +149,7 @@ class VirtualActivationWeightsNode(BaseNode):
|
|
149
149
|
weights = weights_node.weights.copy()
|
150
150
|
act_node_w_rename = {}
|
151
151
|
if act_node.weights:
|
152
|
-
if
|
152
|
+
if fw_info.get_kernel_op_attributes(act_node) != DEFAULT_KERNEL_ATTRIBUTES:
|
153
153
|
raise NotImplementedError(f'Node {act_node} with kernel cannot be used as activation for '
|
154
154
|
f'VirtualActivationWeightsNode.')
|
155
155
|
if act_node.has_any_configurable_weight():
|
@@ -0,0 +1,505 @@
|
|
1
|
+
# Copyright 2021 Sony Semiconductor Israel, Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
# ==============================================================================
|
15
|
+
import itertools
|
16
|
+
|
17
|
+
import copy
|
18
|
+
from collections import defaultdict
|
19
|
+
|
20
|
+
from tqdm import tqdm
|
21
|
+
|
22
|
+
from typing import Dict, List, Tuple, Optional
|
23
|
+
|
24
|
+
import numpy as np
|
25
|
+
|
26
|
+
from model_compression_toolkit.core.common import BaseNode
|
27
|
+
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
28
|
+
from model_compression_toolkit.core.common.framework_info import FrameworkInfo
|
29
|
+
from model_compression_toolkit.core.common.graph.base_graph import Graph
|
30
|
+
from model_compression_toolkit.core.common.graph.virtual_activation_weights_node import VirtualActivationWeightsNode, \
|
31
|
+
VirtualSplitWeightsNode, VirtualSplitActivationNode, VirtualNode
|
32
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import \
|
33
|
+
RUTarget, ResourceUtilization
|
34
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization_calculator import \
|
35
|
+
TargetInclusionCriterion, BitwidthMode
|
36
|
+
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_ru_helper import \
|
37
|
+
MixedPrecisionRUHelper
|
38
|
+
from model_compression_toolkit.core.common.mixed_precision.search_methods.linear_programming import \
|
39
|
+
MixedPrecisionIntegerLPSolver
|
40
|
+
from model_compression_toolkit.core.common.mixed_precision.sensitivity_evaluation import SensitivityEvaluation
|
41
|
+
from model_compression_toolkit.core.common.substitutions.apply_substitutions import substitute
|
42
|
+
from model_compression_toolkit.logger import Logger
|
43
|
+
|
44
|
+
|
45
|
+
class MixedPrecisionSearchManager:
|
46
|
+
"""
|
47
|
+
Class to wrap and manage the search process of a mixed-precision configuration.
|
48
|
+
"""
|
49
|
+
|
50
|
+
def __init__(self,
|
51
|
+
graph: Graph,
|
52
|
+
fw_info: FrameworkInfo,
|
53
|
+
fw_impl: FrameworkImplementation,
|
54
|
+
sensitivity_evaluator: SensitivityEvaluation,
|
55
|
+
target_resource_utilization: ResourceUtilization):
|
56
|
+
"""
|
57
|
+
|
58
|
+
Args:
|
59
|
+
graph: Graph to search for its MP configuration.
|
60
|
+
fw_info: FrameworkInfo object about the specific framework (e.g., attributes of different layers' weights to quantize).
|
61
|
+
fw_impl: FrameworkImplementation object with specific framework methods implementation.
|
62
|
+
sensitivity_evaluator: A SensitivityEvaluation which provides a function that evaluates the sensitivity of
|
63
|
+
a bit-width configuration for the MP model.
|
64
|
+
target_resource_utilization: Target Resource Utilization to bound our feasible solution space s.t the configuration does not violate it.
|
65
|
+
"""
|
66
|
+
|
67
|
+
self.fw_info = fw_info
|
68
|
+
self.fw_impl = fw_impl
|
69
|
+
|
70
|
+
self.original_graph = graph
|
71
|
+
# graph for mp search
|
72
|
+
self.mp_graph, self.using_virtual_graph = self._get_mp_graph(graph, target_resource_utilization)
|
73
|
+
del graph # so that it's not used by mistake
|
74
|
+
|
75
|
+
self.sensitivity_evaluator = sensitivity_evaluator
|
76
|
+
self.target_resource_utilization = target_resource_utilization
|
77
|
+
|
78
|
+
self.mp_topo_configurable_nodes = self.mp_graph.get_configurable_sorted_nodes(fw_info)
|
79
|
+
|
80
|
+
self.ru_targets = target_resource_utilization.get_restricted_targets()
|
81
|
+
self.ru_helper = MixedPrecisionRUHelper(self.original_graph, fw_info, fw_impl)
|
82
|
+
|
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
|
+
|
86
|
+
self.config_reconstruction_helper = ConfigReconstructionHelper(self.original_graph)
|
87
|
+
if self.using_virtual_graph:
|
88
|
+
real_min_ru_config = self.config_reconstruction_helper.reconstruct_full_configuration(self.min_ru_config)
|
89
|
+
self.min_ru = self.ru_helper.compute_utilization(self.ru_targets, real_min_ru_config)
|
90
|
+
else:
|
91
|
+
self.min_ru = self.ru_helper.compute_utilization(self.ru_targets, self.min_ru_config)
|
92
|
+
|
93
|
+
def search(self) -> Dict[BaseNode, int]:
|
94
|
+
"""
|
95
|
+
Run mixed precision search.
|
96
|
+
|
97
|
+
Returns:
|
98
|
+
Mapping from nodes to indices of the selected bit-widths candidate.
|
99
|
+
"""
|
100
|
+
mp_config = self._prepare_and_run_solver()
|
101
|
+
|
102
|
+
if self.using_virtual_graph:
|
103
|
+
mp_config = self.config_reconstruction_helper.reconstruct_full_configuration(mp_config)
|
104
|
+
|
105
|
+
return mp_config
|
106
|
+
|
107
|
+
def _prepare_and_run_solver(self) -> Dict[BaseNode, int]:
|
108
|
+
"""
|
109
|
+
Prepare sensitivity and ru data for LP solver and run the solver.
|
110
|
+
|
111
|
+
Returns:
|
112
|
+
Mapping from nodes to indices of the selected bit-widths candidate.
|
113
|
+
"""
|
114
|
+
candidates_ru = self._compute_relative_ru_matrices()
|
115
|
+
rel_target_ru = self._get_relative_ru_constraint_per_mem_element()
|
116
|
+
layers_candidates_sensitivity: Dict[BaseNode, List[float]] = self._build_sensitivity_mapping()
|
117
|
+
solver = MixedPrecisionIntegerLPSolver(layers_candidates_sensitivity, candidates_ru, rel_target_ru)
|
118
|
+
mp_config = solver.run()
|
119
|
+
return mp_config
|
120
|
+
|
121
|
+
def _get_relative_ru_constraint_per_mem_element(self) -> Dict[RUTarget, np.ndarray]:
|
122
|
+
"""
|
123
|
+
Computes resource utilization constraint with respect to the minimal bit configuration, i.e. corresponding
|
124
|
+
constraint for each memory element is the relative utilization between the target utilization and
|
125
|
+
element's utilization for min-bit configuration.
|
126
|
+
|
127
|
+
Returns:
|
128
|
+
A dictionary of relative resource utilization constraints per ru target.
|
129
|
+
|
130
|
+
Raises:
|
131
|
+
ValueError: if target resource utilization cannot be satisfied (utilization for the minimal bit
|
132
|
+
configuration exceeds the requested target utilization for any target).
|
133
|
+
"""
|
134
|
+
target_ru = self.target_resource_utilization.get_resource_utilization_dict(restricted_only=True)
|
135
|
+
rel_target_ru = {
|
136
|
+
ru_target: (ru - self.min_ru[ru_target]) for ru_target, ru in target_ru.items()
|
137
|
+
}
|
138
|
+
unsatisfiable_targets = {
|
139
|
+
ru_target.value: target_ru[ru_target] for ru_target, ru in rel_target_ru.items() if any(ru < 0)
|
140
|
+
}
|
141
|
+
if unsatisfiable_targets:
|
142
|
+
raise ValueError(f"The model cannot be quantized to meet the specified resource utilization for the "
|
143
|
+
f"following targets: {unsatisfiable_targets}")
|
144
|
+
return rel_target_ru
|
145
|
+
|
146
|
+
def _build_sensitivity_mapping(self, eps: float = 1e-6) -> Dict[BaseNode, List[float]]:
|
147
|
+
"""
|
148
|
+
This function measures the sensitivity of a change in a bitwidth of a layer on the entire model.
|
149
|
+
|
150
|
+
Args:
|
151
|
+
eps: if sensitivity for a non-max candidate is lower than for a max candidate, we set it to
|
152
|
+
sensitivity of a max candidate + epsilon.
|
153
|
+
|
154
|
+
Returns:
|
155
|
+
Mapping from nodes to their bitwidth candidates sensitivity.
|
156
|
+
"""
|
157
|
+
|
158
|
+
Logger.info('Starting to evaluate metrics')
|
159
|
+
|
160
|
+
orig_sorted_nodes = self.original_graph.get_configurable_sorted_nodes(self.fw_info)
|
161
|
+
|
162
|
+
def topo_cfg(cfg: dict) -> list:
|
163
|
+
topo_cfg = [cfg[n] for n in orig_sorted_nodes]
|
164
|
+
assert len(topo_cfg) == len(cfg)
|
165
|
+
return topo_cfg
|
166
|
+
|
167
|
+
def compute_metric(cfg, node_idx=None, baseline_cfg=None):
|
168
|
+
return self.sensitivity_evaluator.compute_metric(topo_cfg(cfg),
|
169
|
+
node_idx,
|
170
|
+
topo_cfg(baseline_cfg) if baseline_cfg else None)
|
171
|
+
|
172
|
+
if self.using_virtual_graph:
|
173
|
+
origin_max_config = self.config_reconstruction_helper.reconstruct_full_configuration(self.max_ru_config)
|
174
|
+
max_config_value = compute_metric(origin_max_config)
|
175
|
+
else:
|
176
|
+
max_config_value = compute_metric(self.max_ru_config)
|
177
|
+
|
178
|
+
layer_to_metrics_mapping = defaultdict(list)
|
179
|
+
for node_idx, node in tqdm(enumerate(self.mp_topo_configurable_nodes)):
|
180
|
+
for bitwidth_idx, _ in enumerate(node.candidates_quantization_cfg):
|
181
|
+
if self.max_ru_config[node] == bitwidth_idx:
|
182
|
+
# This is a computation of the metric for the max configuration, assign pre-calculated value
|
183
|
+
layer_to_metrics_mapping[node].append(max_config_value)
|
184
|
+
continue
|
185
|
+
|
186
|
+
# Create a configuration that differs at one layer only from the baseline model
|
187
|
+
mp_model_configuration = self.max_ru_config.copy()
|
188
|
+
mp_model_configuration[node] = bitwidth_idx
|
189
|
+
|
190
|
+
# Build a distance matrix using the function we got from the framework implementation.
|
191
|
+
if self.using_virtual_graph:
|
192
|
+
# Reconstructing original graph's configuration from virtual graph's configuration
|
193
|
+
orig_mp_config = self.config_reconstruction_helper.reconstruct_full_configuration(mp_model_configuration)
|
194
|
+
changed_nodes = [orig_sorted_nodes.index(n) for n, ind in orig_mp_config.items()
|
195
|
+
if origin_max_config[n] != ind]
|
196
|
+
metric_value = compute_metric(orig_mp_config, changed_nodes, origin_max_config)
|
197
|
+
else:
|
198
|
+
metric_value = compute_metric(mp_model_configuration, [node_idx], self.max_ru_config)
|
199
|
+
metric_value = max(metric_value, max_config_value + eps)
|
200
|
+
layer_to_metrics_mapping[node].append(metric_value)
|
201
|
+
|
202
|
+
# Finalize distance metric mapping
|
203
|
+
self._finalize_distance_metric(layer_to_metrics_mapping)
|
204
|
+
|
205
|
+
return layer_to_metrics_mapping
|
206
|
+
|
207
|
+
def _get_mp_graph(self, graph: Graph, target_resource_utilization: ResourceUtilization) -> Tuple[Graph, bool]:
|
208
|
+
"""
|
209
|
+
Get graph for mixed precision search. Virtual graph is built if bops is restricted and both activation and
|
210
|
+
weights are configurable.
|
211
|
+
|
212
|
+
Args:
|
213
|
+
graph: input graph.
|
214
|
+
target_resource_utilization: target resource utilization.
|
215
|
+
|
216
|
+
Returns:
|
217
|
+
Graph for mixed precision search (virtual or original), and a boolean flag whether a virtual graph has been
|
218
|
+
constructed.
|
219
|
+
"""
|
220
|
+
if (target_resource_utilization.bops_restricted() and
|
221
|
+
graph.has_any_configurable_activation() and
|
222
|
+
graph.has_any_configurable_weights()):
|
223
|
+
mp_graph = substitute(copy.deepcopy(graph),
|
224
|
+
self.fw_impl.get_substitutions_virtual_weights_activation_coupling())
|
225
|
+
return mp_graph, True
|
226
|
+
|
227
|
+
return graph, False
|
228
|
+
|
229
|
+
def _compute_relative_ru_matrices(self) -> Dict[RUTarget, np.ndarray]:
|
230
|
+
"""
|
231
|
+
Computes and builds a resource utilization matrix for all restricted targets, to be used for the
|
232
|
+
mixed-precision search problem formalization.
|
233
|
+
Utilization is computed relative to the minimal configuration, i.e. utilization for it will be 0.
|
234
|
+
|
235
|
+
Returns:
|
236
|
+
A dictionary containing resource utilization matrix of shape (num configurations, num memory elements)
|
237
|
+
per ru target. Num memory elements depends on the target, e.g. num cuts or 1 for cumulative metrics.
|
238
|
+
"""
|
239
|
+
rus_per_candidate = defaultdict(list)
|
240
|
+
for node in self.mp_topo_configurable_nodes:
|
241
|
+
for candidate_idx, _ in enumerate(node.candidates_quantization_cfg):
|
242
|
+
if candidate_idx == self.min_ru_config[node]:
|
243
|
+
candidate_rus = self.min_ru
|
244
|
+
else:
|
245
|
+
cfg = self.min_ru_config.copy()
|
246
|
+
cfg[node] = candidate_idx
|
247
|
+
real_cfg = self.config_reconstruction_helper.reconstruct_full_configuration(cfg)
|
248
|
+
candidate_rus = self.ru_helper.compute_utilization(self.ru_targets, real_cfg)
|
249
|
+
|
250
|
+
for target, ru in candidate_rus.items():
|
251
|
+
rus_per_candidate[target].append(ru)
|
252
|
+
|
253
|
+
# Each target contains a matrix of num configurations X num elements
|
254
|
+
relative_rus = {target: (np.array(ru) - self.min_ru[target]) for target, ru in rus_per_candidate.items()}
|
255
|
+
return relative_rus
|
256
|
+
|
257
|
+
@staticmethod
|
258
|
+
def copy_config_with_replacement(mp_cfg: Dict[BaseNode, int], node: BaseNode, candidate_idx: int) -> Dict[BaseNode, int]:
|
259
|
+
"""
|
260
|
+
Create a copy of the given mixed-precision configuration and update the candidate index for a specific node.
|
261
|
+
|
262
|
+
Args:
|
263
|
+
mp_cfg: Mixed-precision configuration.
|
264
|
+
node: Node to update the config for.
|
265
|
+
candidate_idx: A new candidate index to configure.
|
266
|
+
|
267
|
+
Returns:
|
268
|
+
A new mixed-precision configuration.
|
269
|
+
|
270
|
+
"""
|
271
|
+
updated_cfg = mp_cfg.copy()
|
272
|
+
updated_cfg[node] = candidate_idx
|
273
|
+
return updated_cfg
|
274
|
+
|
275
|
+
def compute_resource_utilization_for_config(self, config: Dict[BaseNode, int]) -> ResourceUtilization:
|
276
|
+
"""
|
277
|
+
Computes the resource utilization values for a given mixed-precision configuration.
|
278
|
+
|
279
|
+
Args:
|
280
|
+
config: A mixed-precision configuration (list of candidates indices)
|
281
|
+
|
282
|
+
Returns: A ResourceUtilization object with the model's resource utilization values when quantized
|
283
|
+
with the given config.
|
284
|
+
|
285
|
+
"""
|
286
|
+
act_qcs, w_qcs = self.ru_helper.get_quantization_candidates(config)
|
287
|
+
ru = self.ru_helper.ru_calculator.compute_resource_utilization(
|
288
|
+
target_criterion=TargetInclusionCriterion.AnyQuantized, bitwidth_mode=BitwidthMode.QCustom, act_qcs=act_qcs,
|
289
|
+
w_qcs=w_qcs, ru_targets=self.ru_targets, allow_unused_qcs=True)
|
290
|
+
return ru
|
291
|
+
|
292
|
+
def _finalize_distance_metric(self, layer_to_metrics_mapping: Dict[BaseNode, List[float]]):
|
293
|
+
"""
|
294
|
+
Finalizing the distance metric building.
|
295
|
+
The method checks to see if the maximal distance value is larger than a given threshold, and if so,
|
296
|
+
it scales all metric values to prevent possible numerical issues.
|
297
|
+
Modification to the dictionary is done inplace.
|
298
|
+
|
299
|
+
Args:
|
300
|
+
layer_to_metrics_mapping: A mapping between a node to a list of distance values per bitwidth candidate.
|
301
|
+
|
302
|
+
"""
|
303
|
+
# normalize metric for numerical stability
|
304
|
+
max_dist = max(itertools.chain.from_iterable(layer_to_metrics_mapping.values()))
|
305
|
+
|
306
|
+
if max_dist >= self.sensitivity_evaluator.quant_config.metric_normalization_threshold:
|
307
|
+
Logger.warning(f"The mixed precision distance metric values indicate a large error in the quantized model."
|
308
|
+
f"this can cause numerical issues."
|
309
|
+
f"The program will proceed with mixed precision search after scaling the metric values,"
|
310
|
+
f"which can lead to unstable results.")
|
311
|
+
for layer, dists in layer_to_metrics_mapping.items():
|
312
|
+
for i, _ in enumerate(dists):
|
313
|
+
layer_to_metrics_mapping[layer][i] /= max_dist
|
314
|
+
|
315
|
+
|
316
|
+
class ConfigReconstructionHelper:
|
317
|
+
def __init__(self, original_graph):
|
318
|
+
# mapping in order to return the actual node objects from the original graph
|
319
|
+
self.orig_nodes = {n.name: n for n in original_graph.nodes}
|
320
|
+
|
321
|
+
def reconstruct_full_configuration(self,
|
322
|
+
virtual_cfg: Dict[BaseNode, int],
|
323
|
+
include_non_configurable: bool = False) -> Dict[BaseNode, int]:
|
324
|
+
"""
|
325
|
+
Convert a configuration of a virtual graph into the corresponding configuration of the original graph.
|
326
|
+
Note that a configurable VirtualActivationWeightsNode might comprise one configurable and one non-configurable
|
327
|
+
original nodes.
|
328
|
+
|
329
|
+
Args:
|
330
|
+
virtual_cfg: a mapping from nodes in the virtual graph to selected candidate index. Should contain all
|
331
|
+
configurable nodes of the virtual graph, and only configurable nodes.
|
332
|
+
include_non_configurable: whether to return configs for non-configurable original nodes.
|
333
|
+
|
334
|
+
Returns:
|
335
|
+
A mapping from configurable nodes in the original graph to their candidate indices.
|
336
|
+
"""
|
337
|
+
# Original candidate of a node that has been split might be determined by two different virtual nodes, one
|
338
|
+
# determines activation and one - weights. First, for each virtual node we collect the original
|
339
|
+
# activation / weights nodes, with all original candidates that match the virtual candidate
|
340
|
+
# activation / weights config. If both activation and weights of the original node are determined by virtual
|
341
|
+
# candidates, we look for a common candidate.
|
342
|
+
orig_nodes_a_candidates = {}
|
343
|
+
orig_nodes_w_candidates = {}
|
344
|
+
for virtual_node, virtual_qc_ind in virtual_cfg.items():
|
345
|
+
assert virtual_node.has_configurable_activation() or virtual_node.has_any_configurable_weight()
|
346
|
+
orig_a_node, orig_a_candidates = self._retrieve_matching_orig_a_candidates(virtual_node, virtual_qc_ind)
|
347
|
+
if orig_a_node and (include_non_configurable or orig_a_node.has_configurable_activation()):
|
348
|
+
assert orig_a_node not in orig_nodes_a_candidates
|
349
|
+
orig_nodes_a_candidates[orig_a_node] = orig_a_candidates
|
350
|
+
orig_w_node, orig_w_candidates = self._retrieve_matching_orig_w_candidates(virtual_node, virtual_qc_ind)
|
351
|
+
if orig_w_node and (include_non_configurable or orig_w_node.has_any_configurable_weight()):
|
352
|
+
assert orig_w_node not in orig_nodes_w_candidates
|
353
|
+
orig_nodes_w_candidates[orig_w_node] = orig_w_candidates
|
354
|
+
|
355
|
+
orig_cfg = {}
|
356
|
+
common_orig_nodes = set(orig_nodes_a_candidates.keys()).intersection(set(orig_nodes_w_candidates))
|
357
|
+
for orig_node in common_orig_nodes:
|
358
|
+
a_candidates = orig_nodes_a_candidates[orig_node]
|
359
|
+
w_candidates = orig_nodes_w_candidates[orig_node]
|
360
|
+
# find the common candidate
|
361
|
+
common_candidates = set(a_candidates).intersection(set(w_candidates))
|
362
|
+
if len(common_candidates) != 1:
|
363
|
+
raise ValueError(f'Expected to find exactly one candidate with the required activation and weights '
|
364
|
+
f'quantization configuration for node {orig_node}. Found {len(common_candidates)}')
|
365
|
+
# in theory it's possible that original non-configurable node gets split and each part is combined
|
366
|
+
# with a configurable part of another node and we end up here
|
367
|
+
if orig_node.has_configurable_activation() or orig_node.has_any_configurable_weight():
|
368
|
+
orig_cfg[orig_node] = common_candidates.pop()
|
369
|
+
del orig_nodes_a_candidates[orig_node]
|
370
|
+
del orig_nodes_w_candidates[orig_node]
|
371
|
+
|
372
|
+
# remaining a nodes
|
373
|
+
for orig_node, a_candidates in orig_nodes_a_candidates.items():
|
374
|
+
assert not orig_node.has_any_configurable_weight() # if it had we should have caught it above
|
375
|
+
assert len(a_candidates) == 1
|
376
|
+
assert orig_node not in orig_cfg
|
377
|
+
if include_non_configurable or orig_node.has_configurable_activation():
|
378
|
+
orig_cfg[orig_node] = a_candidates[0]
|
379
|
+
|
380
|
+
# remaining w nodes
|
381
|
+
for orig_node, w_candidates in orig_nodes_w_candidates.items():
|
382
|
+
assert not orig_node.has_configurable_activation() # if it had we should have caught it above
|
383
|
+
assert len(w_candidates) == 1
|
384
|
+
assert orig_node not in orig_cfg
|
385
|
+
if include_non_configurable or orig_node.has_any_configurable_weight():
|
386
|
+
orig_cfg[orig_node] = w_candidates[0]
|
387
|
+
|
388
|
+
return orig_cfg
|
389
|
+
|
390
|
+
def reconstruct_separate_aw_configs(self, virtual_cfg: Dict[BaseNode, int], include_non_configurable: bool) \
|
391
|
+
-> Tuple[Dict[BaseNode, int], Dict[BaseNode, int]]:
|
392
|
+
"""
|
393
|
+
Retrieves original activation and weights nodes and corresponding candidates for a given configuration of the
|
394
|
+
virtual graph. Only returns configuration specified by the virtual config, per configurable target (activation
|
395
|
+
or weights). For example, if 'virtual_cfg' contains a single VirtualActivationWeightsNode, the returned
|
396
|
+
configuration will contain only activation config for the original activation node, and only weights config
|
397
|
+
for the original weights node).
|
398
|
+
In practice, we return candidate index in both cases, instead of actual activation or weights config, since
|
399
|
+
sensitivity evaluator heavily depends on it, so we must ignore activation config in weights candidate and vice
|
400
|
+
versa. This is bad!!! TODO
|
401
|
+
|
402
|
+
Args:
|
403
|
+
virtual_cfg: a mapping from nodes in the virtual graph to selected candidate index.
|
404
|
+
include_non_configurable: whether to return configs for non-configurable target (i.e. activation config
|
405
|
+
for non-configurable activation, and weights config for non-configurable weight).
|
406
|
+
|
407
|
+
Returns:
|
408
|
+
Configuration for original activation nodes and a separate configuration for original weights nodes.
|
409
|
+
"""
|
410
|
+
a_cfg = {}
|
411
|
+
w_cfg = {}
|
412
|
+
for virtual_node, virtual_qc_ind in virtual_cfg.items():
|
413
|
+
orig_a_node, orig_a_candidates = self._retrieve_matching_orig_a_candidates(virtual_node, virtual_qc_ind)
|
414
|
+
if orig_a_node and (include_non_configurable or orig_a_node.has_configurable_activation()):
|
415
|
+
# we may have retrieved multiple candidates with different weights configs and identical activation
|
416
|
+
# configs, so we just take the first
|
417
|
+
a_cfg[orig_a_node] = orig_a_candidates[0]
|
418
|
+
|
419
|
+
orig_w_node, orig_w_candidates = self._retrieve_matching_orig_w_candidates(virtual_node, virtual_qc_ind)
|
420
|
+
if orig_w_node and (include_non_configurable or orig_w_node.has_any_configurable_weight()):
|
421
|
+
# we may have retrieved multiple candidates with different activation configs and identical weights
|
422
|
+
# configs, so we just take the first
|
423
|
+
w_cfg[orig_w_node] = orig_w_candidates[0]
|
424
|
+
|
425
|
+
return a_cfg, w_cfg
|
426
|
+
|
427
|
+
def _retrieve_matching_orig_a_candidates(self,
|
428
|
+
virtual_node: BaseNode,
|
429
|
+
virtual_qc_ind: int) -> Tuple[Optional[BaseNode], Optional[List[int]]]:
|
430
|
+
"""
|
431
|
+
Retrieve the original activation node and all its candidates matching activation quantization config of the
|
432
|
+
given virtual candidate (candidate of a node in the virtual graph).
|
433
|
+
Note that we do simple matching, without any filtering, so disabled activation quantization will be also matched.
|
434
|
+
|
435
|
+
Args:
|
436
|
+
virtual_node: node in the virtual graph (can be virtual or regular).
|
437
|
+
virtual_qc_ind: candidate index of the virtual node.
|
438
|
+
|
439
|
+
Returns:
|
440
|
+
The original activation node (actual object from the original graph) and a list of its matching candidates.
|
441
|
+
"""
|
442
|
+
if not isinstance(virtual_node, VirtualNode):
|
443
|
+
return self.orig_nodes[virtual_node.name], [virtual_qc_ind]
|
444
|
+
if isinstance(virtual_node, VirtualSplitWeightsNode):
|
445
|
+
return None, None
|
446
|
+
if isinstance(virtual_node, VirtualActivationWeightsNode):
|
447
|
+
orig_a_node = virtual_node.original_activation_node
|
448
|
+
if isinstance(orig_a_node, VirtualSplitActivationNode):
|
449
|
+
orig_a_node = orig_a_node.origin_node
|
450
|
+
else:
|
451
|
+
assert isinstance(virtual_node, VirtualSplitActivationNode)
|
452
|
+
orig_a_node = virtual_node.origin_node
|
453
|
+
|
454
|
+
virtual_qc = virtual_node.candidates_quantization_cfg[virtual_qc_ind]
|
455
|
+
matching_orig_a_cfgs = [i for i, orig_qc in enumerate(orig_a_node.candidates_quantization_cfg)
|
456
|
+
if orig_qc.activation_quantization_cfg == virtual_qc.activation_quantization_cfg]
|
457
|
+
if not matching_orig_a_cfgs: # pragma: no cover
|
458
|
+
raise ValueError(f'Could not find matching activation quantization config in the original node '
|
459
|
+
f'{orig_a_node} for candidate {virtual_qc_ind} of the virtual node {virtual_node}')
|
460
|
+
return self.orig_nodes[orig_a_node.name], matching_orig_a_cfgs
|
461
|
+
|
462
|
+
def _retrieve_matching_orig_w_candidates(self,
|
463
|
+
virtual_node: BaseNode,
|
464
|
+
virtual_qc_ind: int) -> Tuple[Optional[BaseNode], Optional[List[int]]]:
|
465
|
+
"""
|
466
|
+
Retrieve the original weights node and all its candidates matching weights quantization config of the
|
467
|
+
given virtual candidate (candidate of a node in the virtual graph).
|
468
|
+
|
469
|
+
Args:
|
470
|
+
virtual_node: node in the virtual graph (can be virtual or regular).
|
471
|
+
virtual_qc_ind: candidate index of the virtual node.
|
472
|
+
|
473
|
+
Returns:
|
474
|
+
The original weights node (actual object from the original graph) and a list of all its matching candidates.
|
475
|
+
"""
|
476
|
+
if not isinstance(virtual_node, VirtualNode):
|
477
|
+
if virtual_node.weights:
|
478
|
+
return self.orig_nodes[virtual_node.name], [virtual_qc_ind]
|
479
|
+
return None, None
|
480
|
+
if isinstance(virtual_node, VirtualSplitActivationNode):
|
481
|
+
return None, None
|
482
|
+
|
483
|
+
if isinstance(virtual_node, VirtualActivationWeightsNode):
|
484
|
+
assert isinstance(virtual_node.original_weights_node, VirtualSplitWeightsNode)
|
485
|
+
orig_w_node = virtual_node.original_weights_node.origin_node
|
486
|
+
else:
|
487
|
+
assert isinstance(virtual_node, VirtualSplitWeightsNode)
|
488
|
+
orig_w_node = virtual_node.origin_node
|
489
|
+
|
490
|
+
virtual_qc = virtual_node.candidates_quantization_cfg[virtual_qc_ind]
|
491
|
+
|
492
|
+
# Matching candidate is a candidate with matching configs for configurable weights. We cannot compare the entire
|
493
|
+
# weights config since the virtual node may contain additional non-configurable weights from the activation node
|
494
|
+
orig_configurable_attrs = [attr for attr in orig_w_node.weights if virtual_node.is_configurable_weight(attr)]
|
495
|
+
assert all(virtual_node.is_configurable_weight(attr) for attr in orig_configurable_attrs)
|
496
|
+
|
497
|
+
def get_configurable_attrs_cfgs(qc):
|
498
|
+
return {attr: qc.weights_quantization_cfg.get_attr_config(attr) for attr in orig_configurable_attrs}
|
499
|
+
virtual_cfg = get_configurable_attrs_cfgs(virtual_qc)
|
500
|
+
matching_orig_w_cfgs = [i for i, orig_qc in enumerate(orig_w_node.candidates_quantization_cfg)
|
501
|
+
if get_configurable_attrs_cfgs(orig_qc) == virtual_cfg]
|
502
|
+
if not matching_orig_w_cfgs: # pragma: no cover
|
503
|
+
raise ValueError(f'Could not find matching weights quantization config in the original node '
|
504
|
+
f'{orig_w_node} for candidate {virtual_qc_ind} of the virtual node {virtual_node}')
|
505
|
+
return self.orig_nodes[orig_w_node.name], matching_orig_w_cfgs
|