mct-nightly 2.3.0.20250415.557__tar.gz → 2.3.0.20250417.547__tar.gz

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