mct-nightly 2.2.0.20250114.84821__tar.gz → 2.2.0.20250114.161150__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 (536) hide show
  1. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/PKG-INFO +1 -1
  2. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/mct_nightly.egg-info/SOURCES.txt +1 -1
  4. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/__init__.py +1 -1
  5. mct_nightly-2.2.0.20250114.84821/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py → mct_nightly-2.2.0.20250114.161150/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +35 -70
  6. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +20 -38
  7. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +23 -7
  8. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +48 -39
  9. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +1 -1
  10. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +59 -59
  11. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/runner.py +18 -13
  12. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/LICENSE.md +0 -0
  13. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/README.md +0 -0
  14. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/mct_nightly.egg-info/dependency_links.txt +0 -0
  15. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/mct_nightly.egg-info/requires.txt +0 -0
  16. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/mct_nightly.egg-info/top_level.txt +0 -0
  17. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/constants.py +0 -0
  18. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/__init__.py +0 -0
  19. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/analyzer.py +0 -0
  20. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/__init__.py +0 -0
  21. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  22. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  23. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  24. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  25. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  26. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  27. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  28. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  29. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  30. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  31. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/framework_info.py +0 -0
  32. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  33. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/fusion/graph_fuser.py +0 -0
  34. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  35. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  36. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  37. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
  38. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  39. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  40. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  41. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  42. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  43. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  44. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  45. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  46. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  47. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  48. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  49. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  50. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  51. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  52. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  53. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
  54. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
  55. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  56. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  57. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  58. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  59. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  60. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  61. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  62. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  63. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  64. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  65. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  66. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  67. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  68. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
  69. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  70. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  71. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
  72. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  73. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  74. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  75. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  76. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  77. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/model_collector.py +0 -0
  78. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/model_validation.py +0 -0
  79. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  80. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  81. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  82. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  83. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  84. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
  85. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
  86. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
  87. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
  88. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
  89. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
  90. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
  91. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
  92. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
  93. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
  94. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
  95. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
  96. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
  97. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
  98. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
  99. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
  100. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
  101. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  102. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
  103. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  104. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  105. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  106. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  107. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
  108. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  109. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  110. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  111. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  112. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  113. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
  114. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  115. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
  116. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  117. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  118. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
  119. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  120. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
  121. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
  122. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  123. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  124. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  125. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  126. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  127. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  128. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  129. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
  130. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  131. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
  132. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  133. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  134. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
  135. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  136. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  137. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  138. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  139. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  140. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  141. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  142. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  143. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  144. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
  145. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  146. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  147. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  148. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  149. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  150. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  151. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/user_info.py +0 -0
  152. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  153. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  154. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  155. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  156. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  157. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/__init__.py +0 -0
  158. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  159. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  160. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  161. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  162. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  163. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  164. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  165. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/constants.py +0 -0
  166. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  167. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/data_util.py +0 -0
  168. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  169. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  170. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  171. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  172. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  173. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  174. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  175. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  176. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
  177. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  178. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  179. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  180. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
  181. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  182. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  183. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
  184. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  185. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  186. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  187. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  188. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
  189. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  190. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  191. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  192. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  193. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
  194. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
  195. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
  196. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
  197. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  198. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  199. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  200. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  201. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  202. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
  203. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
  204. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  205. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  206. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  207. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  208. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  209. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  210. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  211. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  212. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  213. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  214. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  215. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
  216. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  217. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
  218. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  219. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  220. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
  221. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  222. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  223. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  224. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  225. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  226. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  227. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  228. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  229. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
  230. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  231. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  232. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  233. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  234. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  235. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
  236. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  237. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  238. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  239. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  240. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  241. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  242. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  243. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  244. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
  245. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
  246. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
  247. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  248. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
  249. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  250. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  251. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
  252. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  253. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  254. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  255. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
  256. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  257. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  258. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
  259. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  260. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  261. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  262. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
  263. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
  264. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
  265. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  266. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  267. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  268. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
  269. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
  270. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
  271. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
  272. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  273. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  274. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  275. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  276. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  277. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  278. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  279. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  280. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
  281. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  282. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  283. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
  284. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  285. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  286. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/__init__.py +0 -0
  287. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  288. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  289. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  290. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  291. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  292. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  293. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  294. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  295. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  296. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  297. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
  298. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  299. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  300. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  301. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  302. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  303. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  304. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  305. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
  306. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  307. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  308. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  309. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  310. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  311. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
  312. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  313. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  314. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  315. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  316. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  317. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  318. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
  319. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  320. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  321. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  322. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  323. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/defaultdict.py +0 -0
  324. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/__init__.py +0 -0
  325. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  326. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  327. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  328. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
  329. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  330. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  331. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  332. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  333. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  334. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  335. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  336. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
  337. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  338. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  339. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  340. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  341. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  342. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  343. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  344. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
  345. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
  346. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  347. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  348. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  349. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  350. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  351. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  352. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  353. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
  354. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  355. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  356. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/__init__.py +0 -0
  357. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  358. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  359. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  360. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  361. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  362. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  363. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
  364. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
  365. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  366. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  367. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  368. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  369. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  370. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  371. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  372. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  373. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  374. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  375. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  376. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  377. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  378. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  379. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  380. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  381. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  382. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  383. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  384. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  385. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  386. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  387. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  388. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  389. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  390. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  391. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  392. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  393. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  394. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  395. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  396. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  397. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/gptq/runner.py +0 -0
  398. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/logger.py +0 -0
  399. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/metadata.py +0 -0
  400. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/pruning/__init__.py +0 -0
  401. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
  402. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
  403. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
  404. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
  405. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/ptq/__init__.py +0 -0
  406. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  407. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  408. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  409. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  410. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/ptq/runner.py +0 -0
  411. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/__init__.py +0 -0
  412. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/common/__init__.py +0 -0
  413. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  414. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  415. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  416. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  417. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
  418. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  419. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  420. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  421. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  422. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  423. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  424. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  425. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  426. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  427. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  428. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  429. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
  430. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  431. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  432. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  433. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  434. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  435. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  436. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  437. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  438. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  439. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  440. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
  441. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +0 -0
  442. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
  443. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
  444. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
  445. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
  446. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +0 -0
  447. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +0 -0
  448. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
  449. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
  450. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +0 -0
  451. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
  452. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
  453. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
  454. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +0 -0
  455. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  456. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  457. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  458. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  459. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  460. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
  461. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  462. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  463. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  464. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
  465. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  466. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  467. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  468. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
  469. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  470. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  471. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
  472. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  473. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  474. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  475. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  476. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  477. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  478. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
  479. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
  480. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  481. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
  482. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
  483. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
  484. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
  485. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
  486. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
  487. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
  488. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
  489. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
  490. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  491. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  492. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  493. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  494. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  495. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  496. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
  497. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
  498. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
  499. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
  500. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
  501. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
  502. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
  503. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
  504. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
  505. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  506. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
  507. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/verify_packages.py +0 -0
  508. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/__init__.py +0 -0
  509. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/__init__.py +0 -0
  510. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/constants.py +0 -0
  511. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
  512. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
  513. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
  514. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
  515. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
  516. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
  517. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
  518. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
  519. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
  520. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
  521. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
  522. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
  523. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
  524. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
  525. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
  526. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
  527. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
  528. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
  529. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
  530. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
  531. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
  532. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
  533. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
  534. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/setup.cfg +0 -0
  535. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/setup.py +0 -0
  536. {mct_nightly-2.2.0.20250114.84821 → mct_nightly-2.2.0.20250114.161150}/tests/test_suite.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mct-nightly
3
- Version: 2.2.0.20250114.84821
3
+ Version: 2.2.0.20250114.161150
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.2
2
2
  Name: mct-nightly
3
- Version: 2.2.0.20250114.84821
3
+ Version: 2.2.0.20250114.161150
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
@@ -74,6 +74,7 @@ model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_uti
74
74
  model_compression_toolkit/core/common/mixed_precision/distance_weighting.py
75
75
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py
76
76
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py
77
+ model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py
77
78
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py
78
79
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py
79
80
  model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py
@@ -83,7 +84,6 @@ model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools
83
84
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py
84
85
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py
85
86
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py
86
- model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py
87
87
  model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py
88
88
  model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py
89
89
  model_compression_toolkit/core/common/network_editors/__init__.py
@@ -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.2.0.20250114.084821"
30
+ __version__ = "2.2.0.20250114.161150"
@@ -12,14 +12,13 @@
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, Optional, Tuple
15
+ from typing import List, Set, Dict, Optional, Tuple, Any
16
16
 
17
17
  import numpy as np
18
18
 
19
19
  from model_compression_toolkit.core import FrameworkInfo
20
20
  from model_compression_toolkit.core.common import Graph, BaseNode
21
21
  from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
22
- from model_compression_toolkit.core.common.graph.memory_graph.cut import Cut
23
22
  from model_compression_toolkit.core.common.graph.virtual_activation_weights_node import VirtualActivationWeightsNode
24
23
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import \
25
24
  RUTarget
@@ -44,9 +43,8 @@ class MixedPrecisionRUHelper:
44
43
  def compute_utilization(self, ru_targets: Set[RUTarget], mp_cfg: Optional[List[int]]) -> Dict[RUTarget, np.ndarray]:
45
44
  """
46
45
  Compute utilization of requested targets for a specific configuration in the format expected by LP problem
47
- formulation, namely an array of ru values corresponding to graph's configurable nodes in the topological order.
48
- For activation target, the array contains values for activation cuts in unspecified order (as long as it is
49
- consistent between configurations).
46
+ formulation namely a vector of ru values for relevant memory elements (nodes or cuts) in a constant order
47
+ (between calls).
50
48
 
51
49
  Args:
52
50
  ru_targets: resource utilization targets to compute.
@@ -57,33 +55,26 @@ class MixedPrecisionRUHelper:
57
55
  """
58
56
 
59
57
  ru = {}
60
-
61
- act_qcs, w_qcs = self.get_configurable_qcs(mp_cfg) if mp_cfg else (None, None)
62
- w_util = None
58
+ act_qcs, w_qcs = self.get_quantization_candidates(mp_cfg) if mp_cfg else (None, None)
63
59
  if RUTarget.WEIGHTS in ru_targets:
64
- w_util = self._weights_utilization(w_qcs)
65
- ru[RUTarget.WEIGHTS] = np.array(list(w_util.values()))
60
+ wu = self._weights_utilization(w_qcs)
61
+ ru[RUTarget.WEIGHTS] = np.array(list(wu.values()))
66
62
 
67
- # TODO make mp agnostic to activation method
68
63
  if RUTarget.ACTIVATION in ru_targets:
69
- act_util = self._activation_maxcut_utilization(act_qcs)
70
- ru[RUTarget.ACTIVATION] = np.array(list(act_util.values()))
71
-
72
- # TODO use maxcut
73
- if RUTarget.TOTAL in ru_targets:
74
- act_tensors_util = self._activation_tensor_utilization(act_qcs)
75
- w_util = w_util or self._weights_utilization(w_qcs)
76
- total = {n: (w_util.get(n, 0), act_tensors_util.get(n, 0))
77
- # for n in self.graph.nodes if n in act_tensors_util or n in w_util}
78
- for n in self.graph.get_topo_sorted_nodes() if n in act_tensors_util or n in w_util}
79
- ru[RUTarget.TOTAL] = np.array(list(total.values()))
64
+ au = self._activation_utilization(act_qcs)
65
+ ru[RUTarget.ACTIVATION] = np.array(list(au.values()))
80
66
 
81
67
  if RUTarget.BOPS in ru_targets:
82
68
  ru[RUTarget.BOPS] = self._bops_utilization(mp_cfg)
83
69
 
70
+ if RUTarget.TOTAL in ru_targets:
71
+ raise ValueError('Total target should be computed based on weights and activations targets.')
72
+
73
+ assert len(ru) == len(ru_targets), (f'Mismatch between the number of computed and requested metrics.'
74
+ f'Requested {ru_targets}')
84
75
  return ru
85
76
 
86
- def get_configurable_qcs(self, mp_cfg) \
77
+ def get_quantization_candidates(self, mp_cfg) \
87
78
  -> Tuple[Dict[BaseNode, NodeActivationQuantizationConfig], Dict[BaseNode, NodeWeightsQuantizationConfig]]:
88
79
  """
89
80
  Retrieve quantization candidates objects for weights and activations from the configuration list.
@@ -92,15 +83,13 @@ class MixedPrecisionRUHelper:
92
83
  mp_cfg: a list of candidates indices for configurable layers.
93
84
 
94
85
  Returns:
95
- Mapping between nodes to weights quantization config, and a mapping between nodes and activation
86
+ A mapping between nodes to weights quantization config, and a mapping between nodes and activation
96
87
  quantization config.
97
88
  """
98
89
  mp_nodes = self.graph.get_configurable_sorted_nodes(self.fw_info)
99
90
  node_qcs = {n: n.candidates_quantization_cfg[mp_cfg[i]] for i, n in enumerate(mp_nodes)}
100
- act_qcs = {n: node_qcs[n].activation_quantization_cfg
101
- for n in self.graph.get_activation_configurable_nodes()}
102
- w_qcs = {n: node_qcs[n].weights_quantization_cfg
103
- for n in self.graph.get_weights_configurable_nodes(self.fw_info)}
91
+ act_qcs = {n: cfg.activation_quantization_cfg for n, cfg in node_qcs.items()}
92
+ w_qcs = {n: cfg.weights_quantization_cfg for n, cfg in node_qcs.items()}
104
93
  return act_qcs, w_qcs
105
94
 
106
95
  def _weights_utilization(self, w_qcs: Optional[Dict[BaseNode, NodeWeightsQuantizationConfig]]) -> Dict[BaseNode, float]:
@@ -127,8 +116,8 @@ class MixedPrecisionRUHelper:
127
116
  nodes_util = {n: u.bytes for n, u in nodes_util.items()}
128
117
  return nodes_util
129
118
 
130
- def _activation_maxcut_utilization(self, act_qcs: Optional[Dict[BaseNode, NodeActivationQuantizationConfig]]) \
131
- -> Optional[Dict[Cut, float]]:
119
+ def _activation_utilization(self, act_qcs: Optional[Dict[BaseNode, NodeActivationQuantizationConfig]]) \
120
+ -> Optional[Dict[Any, float]]:
132
121
  """
133
122
  Compute activation utilization using MaxCut for all quantized nodes if configuration is passed.
134
123
 
@@ -138,41 +127,17 @@ class MixedPrecisionRUHelper:
138
127
  Returns:
139
128
  Activation utilization per cut, or empty dict if no configuration was passed.
140
129
  """
141
- if act_qcs:
142
- _, cuts_util, _ = self.ru_calculator.compute_cut_activation_utilization(TargetInclusionCriterion.AnyQuantized,
143
- bitwidth_mode=BitwidthMode.QCustom,
144
- act_qcs=act_qcs)
145
- cuts_util = {c: u.bytes for c, u in cuts_util.items()}
146
- return cuts_util
147
-
148
- # Computing non-configurable nodes resource utilization for max-cut is included in the calculation of the
149
- # configurable nodes.
150
- return {}
151
-
152
- def _activation_tensor_utilization(self, act_qcs: Optional[Dict[BaseNode, NodeActivationQuantizationConfig]]):
153
- """
154
- Compute activation tensors utilization fo configurable nodes if configuration is passed or
155
- for non-configurable nodes otherwise.
130
+ # Maxcut activation utilization is computed for all quantized nodes, so non-configurable memory is already
131
+ # covered by the computation of configurable activations.
132
+ if not act_qcs:
133
+ return {}
156
134
 
157
- Args:
158
- act_qcs: activation quantization configuration or None.
135
+ _, cuts_util, *_ = self.ru_calculator.compute_activation_utilization_by_cut(
136
+ TargetInclusionCriterion.AnyQuantized, bitwidth_mode=BitwidthMode.QCustom, act_qcs=act_qcs)
137
+ cuts_util = {c: u.bytes for c, u in cuts_util.items()}
138
+ return cuts_util
159
139
 
160
- Returns:
161
- Activation utilization per node.
162
- """
163
- if act_qcs:
164
- target_criterion = TargetInclusionCriterion.QConfigurable
165
- bitwidth_mode = BitwidthMode.QCustom
166
- else:
167
- target_criterion = TargetInclusionCriterion.QNonConfigurable
168
- bitwidth_mode = BitwidthMode.QDefaultSP
169
-
170
- _, nodes_util = self.ru_calculator.compute_activation_tensors_utilization(target_criterion=target_criterion,
171
- bitwidth_mode=bitwidth_mode,
172
- act_qcs=act_qcs)
173
- return {n: u.bytes for n, u in nodes_util.items()}
174
-
175
- def _bops_utilization(self, mp_cfg: List[int]):
140
+ def _bops_utilization(self, mp_cfg: List[int]) -> np.ndarray:
176
141
  """
177
142
  Computes a resource utilization vector with the respective bit-operations (BOPS) count for each configurable node,
178
143
  according to the given mixed-precision configuration of a virtual graph with composed nodes.
@@ -180,15 +145,15 @@ class MixedPrecisionRUHelper:
180
145
  Args:
181
146
  mp_cfg: A mixed-precision configuration (list of candidates index for each configurable node)
182
147
 
183
- Returns: A vector of node's BOPS count.
184
- Note that the vector is not necessarily of the same length as the given config.
185
-
148
+ Returns:
149
+ A vector of node's BOPS count.
186
150
  """
187
- # TODO keeping old implementation for now
188
-
189
- # BOPs utilization method considers non-configurable nodes, therefore, it doesn't need separate implementation
190
- # for non-configurable nodes for setting a constraint (no need for separate implementation for len(mp_cfg) = 0).
151
+ # bops is computed for all nodes, so non-configurable memory is already covered by the computation of
152
+ # configurable nodes
153
+ if not mp_cfg:
154
+ return np.array([])
191
155
 
156
+ # TODO keeping old implementation for now
192
157
  virtual_bops_nodes = [n for n in self.graph.get_topo_sorted_nodes() if isinstance(n, VirtualActivationWeightsNode)]
193
158
 
194
159
  mp_nodes = self.graph.get_configurable_sorted_nodes_names(self.fw_info)
@@ -26,8 +26,8 @@ from model_compression_toolkit.core.common.graph.virtual_activation_weights_node
26
26
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import \
27
27
  RUTarget, ResourceUtilization
28
28
  from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization_calculator import \
29
- ResourceUtilizationCalculator, TargetInclusionCriterion, BitwidthMode
30
- from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.ru_methods import \
29
+ TargetInclusionCriterion, BitwidthMode
30
+ from model_compression_toolkit.core.common.mixed_precision.mixed_precision_ru_helper import \
31
31
  MixedPrecisionRUHelper
32
32
  from model_compression_toolkit.core.common.mixed_precision.sensitivity_evaluation import SensitivityEvaluation
33
33
  from model_compression_toolkit.logger import Logger
@@ -67,13 +67,19 @@ class MixedPrecisionSearchManager:
67
67
  self.compute_metric_fn = self.get_sensitivity_metric()
68
68
  self._cuts = None
69
69
 
70
- self.ru_metrics = target_resource_utilization.get_restricted_metrics()
70
+ # To define RU Total constraints we need to compute weights and activations even if they have no constraints
71
+ # TODO currently this logic is duplicated in linear_programming.py
72
+ targets = target_resource_utilization.get_restricted_targets()
73
+ if RUTarget.TOTAL in targets:
74
+ targets = targets.union({RUTarget.ACTIVATION, RUTarget.WEIGHTS}) - {RUTarget.TOTAL}
75
+ self.ru_targets_to_compute = targets
76
+
71
77
  self.ru_helper = MixedPrecisionRUHelper(graph, fw_info, fw_impl)
72
78
  self.target_resource_utilization = target_resource_utilization
73
79
  self.min_ru_config = self.graph.get_min_candidates_config(fw_info)
74
80
  self.max_ru_config = self.graph.get_max_candidates_config(fw_info)
75
- self.min_ru = self.ru_helper.compute_utilization(self.ru_metrics, self.min_ru_config)
76
- self.non_conf_ru_dict = self._non_configurable_nodes_ru()
81
+ self.min_ru = self.ru_helper.compute_utilization(self.ru_targets_to_compute, self.min_ru_config)
82
+ self.non_conf_ru_dict = self.ru_helper.compute_utilization(self.ru_targets_to_compute, None)
77
83
 
78
84
  self.config_reconstruction_helper = ConfigReconstructionHelper(virtual_graph=self.graph,
79
85
  original_graph=self.original_graph)
@@ -111,18 +117,14 @@ class MixedPrecisionSearchManager:
111
117
  def compute_resource_utilization_matrix(self, target: RUTarget) -> np.ndarray:
112
118
  """
113
119
  Computes and builds a resource utilization matrix, to be used for the mixed-precision search problem formalization.
114
- The matrix is constructed as follows (for a given target):
115
- - Each row represents the set of resource utilization values for a specific resource utilization
116
- measure (number of rows should be equal to the length of the output of the respective target compute_ru function).
117
- - Each entry in a specific column represents the resource utilization value of a given configuration
118
- (single layer is configured with specific candidate, all other layer are at the minimal resource
119
- utilization configuration) for the resource utilization measure of the respective row.
120
+ Utilization is computed relative to the minimal configuration, i.e. utilization for it will be 0.
120
121
 
121
122
  Args:
122
123
  target: The resource target for which the resource utilization is calculated (a RUTarget value).
123
124
 
124
- Returns: A resource utilization matrix.
125
-
125
+ Returns:
126
+ A resource utilization matrix of shape (num configurations, num memory elements). Num memory elements
127
+ depends on the target, e.g. num nodes or num cuts, for which utilization is computed.
126
128
  """
127
129
  assert isinstance(target, RUTarget), f"{target} is not a valid resource target"
128
130
 
@@ -132,21 +134,14 @@ class MixedPrecisionSearchManager:
132
134
  for c, c_n in enumerate(configurable_sorted_nodes):
133
135
  for candidate_idx in range(len(c_n.candidates_quantization_cfg)):
134
136
  if candidate_idx == self.min_ru_config[c]:
135
- # skip ru computation for min configuration. Since we compute the difference from min_ru it'll
136
- # always be 0 for all entries in the results vector.
137
- candidate_rus = np.zeros(shape=self.min_ru[target].shape)
137
+ candidate_rus = self.min_ru[target]
138
138
  else:
139
- candidate_rus = self.compute_node_ru_for_candidate(c, candidate_idx, target) - self.min_ru[target]
139
+ candidate_rus = self.compute_node_ru_for_candidate(c, candidate_idx, target)
140
140
 
141
141
  ru_matrix.append(np.asarray(candidate_rus))
142
142
 
143
- # We need to transpose the calculated ru matrix to allow later multiplication with
144
- # the indicators' diagonal matrix.
145
- # We only move the first axis (num of configurations) to be last,
146
- # the remaining axes include the metric specific nodes (rows dimension of the new tensor)
147
- # and the ru metric values (if they are non-scalars)
148
- np_ru_matrix = np.array(ru_matrix)
149
- return np.moveaxis(np_ru_matrix, source=0, destination=len(np_ru_matrix.shape) - 1)
143
+ np_ru_matrix = np.array(ru_matrix) - self.min_ru[target] # num configurations X num elements
144
+ return np_ru_matrix
150
145
 
151
146
  def compute_node_ru_for_candidate(self, conf_node_idx: int, candidate_idx: int, target: RUTarget) -> np.ndarray:
152
147
  """
@@ -162,7 +157,6 @@ class MixedPrecisionSearchManager:
162
157
 
163
158
  """
164
159
  cfg = self.replace_config_in_index(self.min_ru_config, conf_node_idx, candidate_idx)
165
- # TODO compute for all targets at once. Currently the way up to add_set_of_ru_constraints is per target.
166
160
  return self.ru_helper.compute_utilization({target}, cfg)[target]
167
161
 
168
162
  @staticmethod
@@ -183,18 +177,6 @@ class MixedPrecisionSearchManager:
183
177
  updated_cfg[idx] = value
184
178
  return updated_cfg
185
179
 
186
- def _non_configurable_nodes_ru(self) -> Dict[RUTarget, np.ndarray]:
187
- """
188
- Computes a resource utilization vector of all non-configurable nodes in the given graph for each of the
189
- resource utilization targets.
190
-
191
- Returns: A mapping between a RUTarget and its non-configurable nodes' resource utilization vector.
192
- """
193
- ru_metrics = self.ru_metrics - {RUTarget.BOPS}
194
- ru = self.ru_helper.compute_utilization(ru_targets=ru_metrics, mp_cfg=None)
195
- ru[RUTarget.BOPS] = None
196
- return ru
197
-
198
180
  def compute_resource_utilization_for_config(self, config: List[int]) -> ResourceUtilization:
199
181
  """
200
182
  Computes the resource utilization values for a given mixed-precision configuration.
@@ -206,7 +188,7 @@ class MixedPrecisionSearchManager:
206
188
  with the given config.
207
189
 
208
190
  """
209
- act_qcs, w_qcs = self.ru_helper.get_configurable_qcs(config)
191
+ act_qcs, w_qcs = self.ru_helper.get_quantization_candidates(config)
210
192
  ru = self.ru_helper.ru_calculator.compute_resource_utilization(
211
193
  target_criterion=TargetInclusionCriterion.AnyQuantized, bitwidth_mode=BitwidthMode.QCustom, act_qcs=act_qcs,
212
194
  w_qcs=w_qcs)
@@ -86,15 +86,31 @@ class ResourceUtilization:
86
86
  ru.total_memory <= self.total_memory and \
87
87
  ru.bops <= self.bops)
88
88
 
89
- def get_restricted_metrics(self) -> Set[RUTarget]:
89
+ def get_restricted_targets(self) -> Set[RUTarget]:
90
90
  d = self.get_resource_utilization_dict()
91
91
  return {k for k, v in d.items() if v < np.inf}
92
92
 
93
93
  def is_any_restricted(self) -> bool:
94
- return bool(self.get_restricted_metrics())
94
+ return bool(self.get_restricted_targets())
95
95
 
96
- def __repr__(self):
97
- return f"Weights_memory: {self.weights_memory}, " \
98
- f"Activation_memory: {self.activation_memory}, " \
99
- f"Total_memory: {self.total_memory}, " \
100
- f"BOPS: {self.bops}"
96
+ def get_summary_str(self, restricted: bool):
97
+ """
98
+ Generate summary string.
99
+
100
+ Args:
101
+ restricted: whether to include non-restricted targets.
102
+
103
+ Returns:
104
+ Summary string.
105
+ """
106
+ targets = self.get_restricted_targets() if restricted else list(RUTarget)
107
+ summary = []
108
+ if RUTarget.WEIGHTS in targets:
109
+ summary.append(f"Weights memory: {self.weights_memory}")
110
+ if RUTarget.ACTIVATION in targets:
111
+ summary.append(f"Activation memory: {self.activation_memory}")
112
+ if RUTarget.TOTAL in targets:
113
+ summary.append(f"Total memory: {self.total_memory}")
114
+ if RUTarget.BOPS in targets:
115
+ summary.append(f"BOPS: {self.bops}")
116
+ return ', '.join(summary)
@@ -15,8 +15,7 @@
15
15
  from collections import defaultdict
16
16
  from copy import deepcopy
17
17
  from enum import Enum, auto
18
- from functools import lru_cache
19
- from typing import Dict, NamedTuple, Optional, Tuple, List, Iterable, Union, Literal, Sequence
18
+ from typing import Dict, NamedTuple, Optional, Tuple, List, Iterable, Union, Literal, Sequence, Set
20
19
 
21
20
  from model_compression_toolkit.constants import FLOAT_BITWIDTH
22
21
  from model_compression_toolkit.core import FrameworkInfo
@@ -88,7 +87,7 @@ class Utilization(NamedTuple):
88
87
  # Needed for sum (with default start_value=0).
89
88
  if other == 0:
90
89
  return self
91
- return self + other
90
+ return self + other # pragma: no cover
92
91
 
93
92
  def __gt__(self, other: 'Utilization'):
94
93
  # Needed for max. Compare by bytes.
@@ -96,7 +95,7 @@ class Utilization(NamedTuple):
96
95
 
97
96
  def __lt__(self, other: 'Utilization'):
98
97
  # Needed for min. Compare by bytes.
99
- return self.bytes < other.bytes
98
+ return self.bytes < other.bytes # pragma: no cover
100
99
 
101
100
 
102
101
  class ResourceUtilizationCalculator:
@@ -119,7 +118,21 @@ class ResourceUtilizationCalculator:
119
118
  for n in graph.nodes:
120
119
  self._act_tensors_size[n] = n.get_total_output_params()
121
120
  self._params_cnt[n] = {k: v.size for k, v in n.weights.items()}
122
- self._cuts = None
121
+ self._cuts: Optional[Dict[Cut, List[BaseNode]]] = None
122
+
123
+ @property
124
+ def cuts(self) -> Dict[Cut, List[BaseNode]]:
125
+ """ Compute if needed and return graph cuts and their memory element nodes. """
126
+ if self._cuts is None:
127
+ memory_graph = MemoryGraph(deepcopy(self.graph))
128
+ _, _, cuts = compute_graph_max_cut(memory_graph)
129
+ if cuts is None: # pragma: no cover
130
+ raise RuntimeError("Failed to calculate activation memory cuts for graph.") # pragma: no cover
131
+ cuts = [cut for cut in cuts if cut.mem_elements.elements]
132
+ # cache cuts nodes for future use, so do not filter by target
133
+ self._cuts = {cut: [self.graph.find_node_by_name(m.node_name)[0] for m in cut.mem_elements.elements]
134
+ for cut in cuts}
135
+ return self._cuts
123
136
 
124
137
  def compute_resource_utilization(self,
125
138
  target_criterion: TargetInclusionCriterion,
@@ -146,15 +159,16 @@ class ResourceUtilizationCalculator:
146
159
  """
147
160
  ru_targets = set(ru_targets) if ru_targets else set(RUTarget)
148
161
 
162
+ if w_qcs is not None and not self.is_custom_weights_config_applicable(ru_targets):
163
+ raise ValueError('Weight configuration passed but no relevant metric requested.')
164
+ if act_qcs is not None and not self.is_custom_activation_config_applicable(ru_targets):
165
+ raise ValueError('Activation configuration passed but no relevant metric requested.')
166
+
149
167
  w_total, a_total = None, None
150
168
  if {RUTarget.WEIGHTS, RUTarget.TOTAL}.intersection(ru_targets):
151
169
  w_total, *_ = self.compute_weights_utilization(target_criterion, bitwidth_mode, w_qcs)
152
- elif w_qcs is not None: # pragma: no cover
153
- raise ValueError('Weight configuration passed but no relevant metric requested.')
154
170
 
155
- if act_qcs and not {RUTarget.ACTIVATION, RUTarget.TOTAL}.intersection(ru_targets): # pragma: no cover
156
- raise ValueError('Activation configuration passed but no relevant metric requested.')
157
- if RUTarget.ACTIVATION in ru_targets:
171
+ if {RUTarget.ACTIVATION, RUTarget.TOTAL}.intersection(ru_targets):
158
172
  a_total = self.compute_activations_utilization(target_criterion, bitwidth_mode, act_qcs)
159
173
 
160
174
  ru = ResourceUtilization()
@@ -163,14 +177,12 @@ class ResourceUtilizationCalculator:
163
177
  if RUTarget.ACTIVATION in ru_targets:
164
178
  ru.activation_memory = a_total
165
179
  if RUTarget.TOTAL in ru_targets:
166
- # TODO use maxcut
167
- act_tensors_total, *_ = self.compute_activation_tensors_utilization(target_criterion, bitwidth_mode, act_qcs)
168
- ru.total_memory = w_total + act_tensors_total
180
+ ru.total_memory = w_total + a_total
169
181
  if RUTarget.BOPS in ru_targets:
170
182
  ru.bops, _ = self.compute_bops(target_criterion=target_criterion,
171
183
  bitwidth_mode=bitwidth_mode, act_qcs=act_qcs, w_qcs=w_qcs)
172
184
 
173
- assert ru.get_restricted_metrics() == set(ru_targets), 'Mismatch between the number of requested and computed metrics'
185
+ assert ru.get_restricted_targets() == set(ru_targets), 'Mismatch between the number of requested and computed metrics'
174
186
  return ru
175
187
 
176
188
  def compute_weights_utilization(self,
@@ -262,12 +274,12 @@ class ResourceUtilizationCalculator:
262
274
  Returns:
263
275
  Total activation utilization of the network.
264
276
  """
265
- return self.compute_cut_activation_utilization(target_criterion, bitwidth_mode, act_qcs)[0]
277
+ return self.compute_activation_utilization_by_cut(target_criterion, bitwidth_mode, act_qcs)[0]
266
278
 
267
- def compute_cut_activation_utilization(self,
268
- target_criterion: TargetInclusionCriterion,
269
- bitwidth_mode: BitwidthMode,
270
- act_qcs: Optional[Dict[BaseNode, NodeActivationQuantizationConfig]]) \
279
+ def compute_activation_utilization_by_cut(self,
280
+ target_criterion: TargetInclusionCriterion,
281
+ bitwidth_mode: BitwidthMode,
282
+ act_qcs: Optional[Dict[BaseNode, NodeActivationQuantizationConfig]]) \
271
283
  -> Tuple[float, Dict[Cut, Utilization], Dict[Cut, Dict[BaseNode, Utilization]]]:
272
284
  """
273
285
  Compute graph activation cuts utilization.
@@ -292,20 +304,10 @@ class ResourceUtilizationCalculator:
292
304
  if not graph_target_nodes:
293
305
  return 0, {}, {}
294
306
 
295
- if self._cuts is None:
296
- memory_graph = MemoryGraph(deepcopy(self.graph))
297
- _, _, cuts = compute_graph_max_cut(memory_graph)
298
- if cuts is None: # pragma: no cover
299
- raise RuntimeError("Failed to calculate activation memory cuts for graph.") # pragma: no cover
300
- cuts = [cut for cut in cuts if cut.mem_elements.elements]
301
- # cache cuts nodes for future use, so do not filter by target
302
- self._cuts = {cut: [self.graph.find_node_by_name(m.node_name)[0] for m in cut.mem_elements.elements]
303
- for cut in cuts}
304
-
305
307
  util_per_cut: Dict[Cut, Utilization] = {} # type: ignore
306
308
  util_per_cut_per_node = defaultdict(dict)
307
- for cut in self._cuts:
308
- cut_target_nodes = [n for n in self._cuts[cut] if n in graph_target_nodes]
309
+ for cut in self.cuts:
310
+ cut_target_nodes = self._get_cut_target_nodes(cut, target_criterion)
309
311
  if not cut_target_nodes:
310
312
  continue
311
313
  for n in cut_target_nodes:
@@ -322,7 +324,7 @@ class ResourceUtilizationCalculator:
322
324
  bitwidth_mode: BitwidthMode,
323
325
  act_qcs: Optional[Dict[BaseNode, NodeActivationQuantizationConfig]] = None,
324
326
  include_reused=False) \
325
- -> Tuple[float, Dict[BaseNode, Utilization]]:
327
+ -> Tuple[float, Dict[BaseNode, Utilization]]: # pragma: no cover
326
328
  """
327
329
  Compute resource utilization for graph's activations tensors.
328
330
 
@@ -462,7 +464,14 @@ class ResourceUtilizationCalculator:
462
464
  node_bops = a_nbits * w_nbits * node_mac
463
465
  return node_bops
464
466
 
465
- @lru_cache
467
+ def is_custom_weights_config_applicable(self, ru_targets: Set[RUTarget]) -> bool:
468
+ """ Whether custom configuration for weights is compatible with the requested targets."""
469
+ return bool({RUTarget.WEIGHTS, RUTarget.TOTAL, RUTarget.BOPS}.intersection(ru_targets))
470
+
471
+ def is_custom_activation_config_applicable(self, ru_targets: Set[RUTarget]) -> bool:
472
+ """ Whether custom configuration for activations is compatible with the requested targets."""
473
+ return bool({RUTarget.ACTIVATION, RUTarget.TOTAL, RUTarget.BOPS}.intersection(ru_targets))
474
+
466
475
  def _get_cut_target_nodes(self, cut: Cut, target_criterion: TargetInclusionCriterion) -> List[BaseNode]:
467
476
  """
468
477
  Retrieve target nodes from a cut filtered by a criterion.
@@ -474,7 +483,7 @@ class ResourceUtilizationCalculator:
474
483
  Returns:
475
484
  A list of target nodes from a cut.
476
485
  """
477
- cut_nodes = [self.graph.find_node_by_name(e.node_name)[0] for e in cut.mem_elements.elements]
486
+ cut_nodes = self.cuts[cut]
478
487
  return self._get_target_activation_nodes(target_criterion, include_reused=True, nodes=cut_nodes)
479
488
 
480
489
  def _get_target_weight_nodes(self,
@@ -500,7 +509,7 @@ class ResourceUtilizationCalculator:
500
509
  quantized = [n for n in self.graph if n.has_any_weight_attr_to_quantize()]
501
510
  configurable = self.graph.get_weights_configurable_nodes(self.fw_info, include_reused_nodes=include_reused)
502
511
  nodes = [n for n in quantized if n not in configurable]
503
- elif target_criterion == TargetInclusionCriterion.Any:
512
+ elif target_criterion == TargetInclusionCriterion.Any: # pragma: no cover
504
513
  nodes = list(self.graph.nodes)
505
514
  else: # pragma: no cover
506
515
  raise ValueError(f'Unknown {target_criterion}.')
@@ -566,15 +575,15 @@ class ResourceUtilizationCalculator:
566
575
  Selected nodes.
567
576
  """
568
577
  nodes = nodes or self.graph.nodes
569
- if target_criterion == TargetInclusionCriterion.QConfigurable:
578
+ if target_criterion == TargetInclusionCriterion.QConfigurable: # pragma: no cover
570
579
  nodes = [n for n in nodes if n.has_configurable_activation()]
571
580
  elif target_criterion == TargetInclusionCriterion.AnyQuantized:
572
581
  nodes = [n for n in nodes if n.is_activation_quantization_enabled()]
573
- elif target_criterion == TargetInclusionCriterion.QNonConfigurable:
582
+ elif target_criterion == TargetInclusionCriterion.QNonConfigurable: # pragma: no cover
574
583
  nodes = [n for n in nodes if n.is_activation_quantization_enabled() and not n.has_configurable_activation()]
575
584
  elif target_criterion != TargetInclusionCriterion.Any: # pragma: no cover
576
585
  raise ValueError(f'Unknown {target_criterion}.')
577
- if not include_reused:
586
+ if not include_reused: # pragma: no cover
578
587
  nodes = [n for n in nodes if not n.reuse]
579
588
  return nodes
580
589
 
@@ -664,4 +673,4 @@ class ResourceUtilizationCalculator:
664
673
  f'as it {len(w_qcs)}!=1 unique candidates.')
665
674
  return w_qcs[0].weights_n_bits
666
675
 
667
- raise ValueError(f'Unknown mode {bitwidth_mode.name}')
676
+ raise ValueError(f'Unknown mode {bitwidth_mode.name}') # pragma: no cover
@@ -118,7 +118,7 @@ def requires_mixed_precision(in_model: Any,
118
118
 
119
119
  ru_calculator = ResourceUtilizationCalculator(transformed_graph, fw_impl, fw_info)
120
120
  max_ru = ru_calculator.compute_resource_utilization(TargetInclusionCriterion.AnyQuantized, BitwidthMode.QMaxBit,
121
- ru_targets=target_resource_utilization.get_restricted_metrics())
121
+ ru_targets=target_resource_utilization.get_restricted_targets())
122
122
  return not target_resource_utilization.is_satisfied_by(max_ru)
123
123
 
124
124