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