mct-nightly 2.3.0.20250506.618__tar.gz → 2.3.0.20250507.555__tar.gz

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