mct-nightly 2.3.0.20250514.602__tar.gz → 2.3.0.20250516.613__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/PKG-INFO +2 -2
  2. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/mct_nightly.egg-info/PKG-INFO +2 -2
  3. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/mct_nightly.egg-info/requires.txt +1 -1
  4. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/__init__.py +1 -1
  5. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/constants.py +5 -0
  6. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/fusion/fusing_info.py +75 -7
  7. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +8 -2
  8. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +11 -8
  9. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +1 -1
  10. mct_nightly-2.3.0.20250516.613/model_compression_toolkit/target_platform_capabilities/schema/schema_compatability.py +124 -0
  11. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/schema/v2.py +7 -5
  12. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2keras.py +4 -1
  13. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2pytorch.py +3 -0
  14. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities.py +25 -6
  15. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +17 -2
  16. mct_nightly-2.3.0.20250514.602/model_compression_toolkit/target_platform_capabilities/schema/schema_compatability.py +0 -84
  17. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/LICENSE.md +0 -0
  18. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/README.md +0 -0
  19. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/mct_nightly.egg-info/SOURCES.txt +0 -0
  20. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/mct_nightly.egg-info/dependency_links.txt +0 -0
  21. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/mct_nightly.egg-info/top_level.txt +0 -0
  22. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/__init__.py +0 -0
  23. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/analyzer.py +0 -0
  24. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/__init__.py +0 -0
  25. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  26. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  27. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  28. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  29. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  30. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  31. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  32. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  33. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  34. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/collectors/weighted_histogram_collector.py +0 -0
  35. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  36. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/framework_info.py +0 -0
  37. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  38. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/fusion/graph_fuser.py +0 -0
  39. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  40. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  41. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
  42. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  43. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  44. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  45. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  46. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  47. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  48. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  49. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  50. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  51. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  52. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  53. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  54. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  55. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  56. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  57. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
  58. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
  59. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  60. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  61. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  62. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  63. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  64. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  65. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  66. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  67. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  68. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  69. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  70. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  71. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  72. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_candidates_filter.py +0 -0
  73. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  74. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_ru_helper.py +0 -0
  75. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  76. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  77. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
  78. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
  79. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_calculator.py +0 -0
  80. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
  81. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  82. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  83. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  84. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  85. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  86. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  87. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/model_collector.py +0 -0
  88. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/model_validation.py +0 -0
  89. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  90. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  91. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  92. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  93. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  94. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
  95. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
  96. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
  97. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
  98. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
  99. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
  100. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
  101. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
  102. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
  103. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
  104. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
  105. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
  106. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
  107. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
  108. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
  109. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
  110. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
  111. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  112. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/bit_width_config.py +0 -0
  113. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  114. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  115. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  116. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  117. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
  118. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  119. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  120. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  121. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  122. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  123. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
  124. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  125. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
  126. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  127. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  128. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
  129. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  130. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
  131. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
  132. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  133. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  134. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  135. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  136. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  137. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  138. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  139. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
  140. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  141. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/apply_activation_bias_correction_to_graph.py +0 -0
  142. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  143. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  144. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/compute_activation_bias_correction_of_graph.py +0 -0
  145. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  146. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  147. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  148. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  149. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  150. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  151. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  152. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  153. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  154. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
  155. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  156. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  157. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  158. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  159. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  160. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  161. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/user_info.py +0 -0
  162. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  163. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  164. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  165. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  166. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  167. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/__init__.py +0 -0
  168. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  169. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  170. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  171. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  172. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  173. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  174. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  175. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/constants.py +0 -0
  176. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  177. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/data_util.py +0 -0
  178. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  179. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  180. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  181. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  182. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  183. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  184. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  185. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  186. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +0 -0
  187. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  188. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  189. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  190. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
  191. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  192. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  193. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
  194. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  195. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  196. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  197. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  198. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/sigmoid_mul_to_swish.py +0 -0
  199. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  200. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  201. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  202. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  203. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
  204. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
  205. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
  206. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
  207. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  208. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  209. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  210. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  211. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  212. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
  213. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
  214. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  215. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  216. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  217. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  218. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  219. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  220. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  221. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  222. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  223. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  224. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  225. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
  226. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  227. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
  228. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  229. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  230. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/statistics_correction/keras_compute_activation_bias_correction_of_graph.py +0 -0
  231. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  232. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  233. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  234. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  235. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  236. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  237. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  238. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  239. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  240. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  241. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  242. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  243. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  244. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/data_util.py +0 -0
  245. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  246. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  247. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  248. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  249. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  250. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  251. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  252. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  253. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/convtranspose_dynamic_padding.py +0 -0
  254. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
  255. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
  256. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py +0 -0
  257. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  258. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +0 -0
  259. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  260. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  261. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
  262. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  263. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  264. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  265. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scaled_dot_product_attention.py +0 -0
  266. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  267. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  268. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
  269. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  270. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  271. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  272. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
  273. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
  274. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
  275. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  276. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  277. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  278. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
  279. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
  280. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
  281. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
  282. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  283. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  284. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  285. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  286. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  287. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  288. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  289. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  290. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
  291. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  292. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  293. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/statistics_correction/pytorch_compute_activation_bias_correction_of_graph.py +0 -0
  294. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  295. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  296. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/core/runner.py +0 -0
  297. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/__init__.py +0 -0
  298. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  299. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  300. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  301. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  302. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  303. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  304. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  305. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  306. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  307. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  308. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
  309. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  310. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  311. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  312. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  313. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  314. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  315. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  316. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
  317. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  318. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  319. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  320. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  321. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  322. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
  323. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  324. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  325. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  326. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  327. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  328. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  329. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
  330. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  331. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  332. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  333. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  334. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/defaultdict.py +0 -0
  335. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/__init__.py +0 -0
  336. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  337. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  338. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  339. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
  340. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  341. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  342. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  343. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  344. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  345. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  346. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  347. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
  348. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  349. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  350. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  351. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  352. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  353. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  354. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  355. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
  356. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
  357. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  358. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  359. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  360. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  361. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  362. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  363. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  364. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  365. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  366. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/__init__.py +0 -0
  367. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  368. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  369. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  370. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  371. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  372. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  373. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/gradual_activation_quantization.py +0 -0
  374. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/common/regularization_factory.py +0 -0
  375. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  376. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  377. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  378. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  379. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  380. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  381. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  382. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  383. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  384. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  385. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  386. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  387. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  388. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  389. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  390. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  391. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  392. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  393. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  394. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  395. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  396. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  397. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  398. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  399. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  400. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  401. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  402. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  403. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  404. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  405. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  406. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  407. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/gptq/runner.py +0 -0
  408. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/logger.py +0 -0
  409. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/metadata.py +0 -0
  410. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/pruning/__init__.py +0 -0
  411. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
  412. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
  413. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
  414. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
  415. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/ptq/__init__.py +0 -0
  416. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  417. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  418. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  419. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  420. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/ptq/runner.py +0 -0
  421. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/__init__.py +0 -0
  422. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/common/__init__.py +0 -0
  423. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  424. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  425. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  426. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  427. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py +0 -0
  428. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  429. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  430. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  431. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  432. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  433. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  434. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  435. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  436. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  437. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  438. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  439. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py +0 -0
  440. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  441. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  442. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  443. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  444. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  445. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  446. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  447. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  448. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  449. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  450. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/schema/__init__.py +0 -0
  451. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py +0 -0
  452. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/schema/v1.py +0 -0
  453. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/__init__.py +0 -0
  454. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attach2fw.py +0 -0
  455. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/attribute_filter.py +0 -0
  456. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/current_tpc.py +0 -0
  457. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/framework_quantization_capabilities_component.py +0 -0
  458. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/layer_filter_params.py +0 -0
  459. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/targetplatform2framework/operations_to_layers.py +0 -0
  460. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  461. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  462. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  463. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  464. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  465. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc.py +0 -0
  466. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  467. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  468. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  469. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc.py +0 -0
  470. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  471. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  472. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  473. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc.py +0 -0
  474. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  475. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  476. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py +0 -0
  477. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  478. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  479. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  480. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  481. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  482. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  483. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/training_method.py +0 -0
  484. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/common/util.py +0 -0
  485. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  486. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/__init__.py +0 -0
  487. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/base_activation_quantizer.py +0 -0
  488. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/__init__.py +0 -0
  489. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/symmetric_lsq.py +0 -0
  490. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/lsq/uniform_lsq.py +0 -0
  491. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/__init__.py +0 -0
  492. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/symmetric_ste.py +0 -0
  493. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/activation_quantizers/ste/uniform_ste.py +0 -0
  494. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/annealing_schedulers.py +0 -0
  495. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  496. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  497. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  498. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  499. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  500. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  501. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/__init__.py +0 -0
  502. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/base_activation_quantizer.py +0 -0
  503. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/__init__.py +0 -0
  504. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/symmetric_lsq.py +0 -0
  505. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/lsq/uniform_lsq.py +0 -0
  506. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/__init__.py +0 -0
  507. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/symmetric_ste.py +0 -0
  508. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/activation_quantizers/ste/uniform_ste.py +0 -0
  509. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/annealing_schedulers.py +0 -0
  510. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  511. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/trainable_infrastructure/pytorch/quantizer_utils.py +0 -0
  512. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/verify_packages.py +0 -0
  513. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/__init__.py +0 -0
  514. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/__init__.py +0 -0
  515. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/constants.py +0 -0
  516. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
  517. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
  518. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
  519. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
  520. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
  521. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
  522. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
  523. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
  524. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
  525. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
  526. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
  527. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
  528. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
  529. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
  530. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
  531. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
  532. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
  533. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
  534. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
  535. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
  536. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
  537. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
  538. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
  539. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/setup.cfg +0 -0
  540. {mct_nightly-2.3.0.20250514.602 → mct_nightly-2.3.0.20250516.613}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mct-nightly
3
- Version: 2.3.0.20250514.602
3
+ Version: 2.3.0.20250516.613
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Author-email: ssi-dnn-dev@sony.com
6
6
  Classifier: Programming Language :: Python :: 3
@@ -21,7 +21,7 @@ Requires-Dist: PuLP
21
21
  Requires-Dist: matplotlib<3.10.0
22
22
  Requires-Dist: scipy
23
23
  Requires-Dist: protobuf
24
- Requires-Dist: mct-quantizers-nightly
24
+ Requires-Dist: mct-quantizers==1.6.0
25
25
  Requires-Dist: pydantic>=2.0
26
26
  Requires-Dist: edge-mdt-cl-dev
27
27
  Dynamic: author-email
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mct-nightly
3
- Version: 2.3.0.20250514.602
3
+ Version: 2.3.0.20250516.613
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Author-email: ssi-dnn-dev@sony.com
6
6
  Classifier: Programming Language :: Python :: 3
@@ -21,7 +21,7 @@ Requires-Dist: PuLP
21
21
  Requires-Dist: matplotlib<3.10.0
22
22
  Requires-Dist: scipy
23
23
  Requires-Dist: protobuf
24
- Requires-Dist: mct-quantizers-nightly
24
+ Requires-Dist: mct-quantizers==1.6.0
25
25
  Requires-Dist: pydantic>=2.0
26
26
  Requires-Dist: edge-mdt-cl-dev
27
27
  Dynamic: author-email
@@ -9,6 +9,6 @@ PuLP
9
9
  matplotlib<3.10.0
10
10
  scipy
11
11
  protobuf
12
- mct-quantizers-nightly
12
+ mct-quantizers==1.6.0
13
13
  pydantic>=2.0
14
14
  edge-mdt-cl-dev
@@ -27,4 +27,4 @@ from model_compression_toolkit import data_generation
27
27
  from model_compression_toolkit import pruning
28
28
  from model_compression_toolkit.trainable_infrastructure.keras.load_model import keras_load_quantized_model
29
29
 
30
- __version__ = "2.3.0.20250514.000602"
30
+ __version__ = "2.3.0.20250516.000613"
@@ -138,3 +138,8 @@ SHAPE = 'shape'
138
138
  NODE_NAME = 'node_name'
139
139
  TOTAL_SIZE = 'total_size'
140
140
  NODE_OUTPUT_INDEX = 'node_output_index'
141
+
142
+
143
+ # Fusing Patterns constants
144
+ FUSED_LAYER_PATTERN = 'fused_layer_pattern'
145
+ FUSED_OP_QUANT_CONFIG = 'fused_op_quantization_config'
@@ -14,6 +14,8 @@
14
14
  # ==============================================================================
15
15
 
16
16
  from model_compression_toolkit.target_platform_capabilities import LayerFilterParams
17
+ from model_compression_toolkit.target_platform_capabilities.schema.mct_current_schema import OpQuantizationConfig
18
+ from model_compression_toolkit.constants import FUSED_LAYER_PATTERN, FUSED_OP_QUANT_CONFIG
17
19
  from dataclasses import dataclass, field
18
20
 
19
21
  from typing import Optional, List, Dict, Any, Tuple
@@ -41,6 +43,7 @@ class FusingInfo:
41
43
  fusing_patterns: any = None
42
44
  fusing_data: Dict[str, Tuple['BaseNode']] = field(default_factory=dict)
43
45
  node_to_fused_node_map: Dict[str, str] = field(init=False, default_factory=dict)
46
+ fused_op_id_to_quant_config: Dict[str, OpQuantizationConfig] = field(default_factory=dict)
44
47
 
45
48
  def __post_init__(self):
46
49
  """Validates and initializes mappings after dataclass instantiation."""
@@ -49,6 +52,7 @@ class FusingInfo:
49
52
  assert isinstance(op_nodes, tuple) and len(op_nodes) > 1, f"Found invalid fused op nodes: {op_nodes}"
50
53
 
51
54
  self._init_node_mapping()
55
+ self._init_quantization_config_map()
52
56
 
53
57
  def _init_node_mapping(self) -> None:
54
58
  """
@@ -59,6 +63,15 @@ class FusingInfo:
59
63
  for node in nodes:
60
64
  self.node_to_fused_node_map[node.name] = op_id
61
65
 
66
+ def _init_quantization_config_map(self) -> None:
67
+ """
68
+ Init the mapping between fused operation IDs and their quantization configurations.
69
+ """
70
+ self.fused_op_id_to_quant_config.clear()
71
+ if self.fusing_patterns is not None:
72
+ for op_id, nodes in self.fusing_data.items():
73
+ self.set_fused_op_quantization_config(op_id, nodes)
74
+
62
75
  def add_fused_operation(self, op_id: str, nodes: Tuple['BaseNode']) -> None:
63
76
  """
64
77
  Add a new fused operation with the given ID and set of nodes.
@@ -78,6 +91,22 @@ class FusingInfo:
78
91
  for node in nodes:
79
92
  self.node_to_fused_node_map[node.name] = op_id
80
93
 
94
+ # Update the quantization config mapping for this operation
95
+ if self.fusing_patterns is not None:
96
+ self.set_fused_op_quantization_config(op_id, nodes)
97
+
98
+ def set_fused_op_quantization_config(self, op_id: str, nodes: Tuple['BaseNode']) -> None:
99
+ """
100
+ Set the quantization configuration for a given fused operation ID.
101
+
102
+ Args:
103
+ op_id (str): The identifier for the fused operation.
104
+ nodes (Tuple[BaseNode]): The tuple of nodes that form the fused operation.
105
+ """
106
+ fusing_pattern = next((fp for fp in self.fusing_patterns if is_valid_fusion([fp.get(FUSED_LAYER_PATTERN)], nodes)), None)
107
+ if fusing_pattern is not None:
108
+ self.fused_op_id_to_quant_config[op_id] = fusing_pattern.get(FUSED_OP_QUANT_CONFIG)
109
+
81
110
  def remove_fused_operation(self, op_id: str) -> None:
82
111
  """
83
112
  Remove a fused operation by its ID.
@@ -95,6 +124,7 @@ class FusingInfo:
95
124
  for node in nodes:
96
125
  self.node_to_fused_node_map.pop(node.name, None)
97
126
  del self.fusing_data[op_id]
127
+ self.fused_op_id_to_quant_config.pop(op_id, None)
98
128
 
99
129
  def get_fused_node_name(self, node_name: str) -> Optional[str]:
100
130
  """
@@ -117,6 +147,15 @@ class FusingInfo:
117
147
  """
118
148
  return self.node_to_fused_node_map.copy()
119
149
 
150
+ def get_fusing_quantization_config_map(self) -> Dict[str, OpQuantizationConfig]:
151
+ """
152
+ Retrieve a copy of the mapping from fused operation IDs to their quantization configurations.
153
+
154
+ Returns:
155
+ A dictionary mapping each fused operation ID to its quantization configuration.
156
+ """
157
+ return self.fused_op_id_to_quant_config.copy()
158
+
120
159
  def get_fused_nodes(self, op_id: str) -> Optional[List['BaseNode']]:
121
160
  """
122
161
  Retrieve the list of nodes for a given fused operation ID.
@@ -129,6 +168,18 @@ class FusingInfo:
129
168
  """
130
169
  return self.fusing_data.get(op_id)
131
170
 
171
+ def get_fused_op_quantization_config(self, op_id: str) -> OpQuantizationConfig:
172
+ """
173
+ Retrieve the quantization configuration for a given fused operation ID.
174
+
175
+ Args:
176
+ op_id (str): The identifier for the fused operation.
177
+
178
+ Returns:
179
+ OpQuantizationConfig: The quantization configuration for the operation, or None if not found.
180
+ """
181
+ return self.fused_op_id_to_quant_config.get(op_id)
182
+
132
183
  def is_node_in_fused_op(self, node: 'BaseNode') -> bool:
133
184
  """
134
185
  Check if a node is part of any fused operation.
@@ -216,10 +267,11 @@ class FusingInfo:
216
267
  all_fused_nodes.update(node_set)
217
268
 
218
269
  # Check 4: Ensure the sequence matches a valid fusing pattern
219
- if not is_valid_fusion(self.fusing_patterns, nodes):
270
+ valid_fusing_patterns = _get_fusing_layer_patterns(self.fusing_patterns)
271
+ if not is_valid_fusion(valid_fusing_patterns, nodes):
220
272
  raise ValueError(
221
273
  f"Fused operation {op_id} does not match any valid fusing pattern "
222
- f"from {self.fusing_patterns}."
274
+ f"from {valid_fusing_patterns}."
223
275
  )
224
276
 
225
277
  def is_nodes_eligible_to_be_fused(self, nodes: List['BaseNode']) -> bool:
@@ -240,7 +292,8 @@ class FusingInfo:
240
292
  return False
241
293
 
242
294
  # Check if the provided nodes match a valid fusion pattern
243
- return is_valid_fusion(fusing_patterns=self.fusing_patterns, nodes=nodes)
295
+ valid_fusing_patterns = _get_fusing_layer_patterns(self.fusing_patterns)
296
+ return is_valid_fusion(fusing_patterns=valid_fusing_patterns, nodes=nodes)
244
297
 
245
298
  def __repr__(self) -> str:
246
299
  """
@@ -287,8 +340,11 @@ class FusingInfoGenerator:
287
340
  if not self._fusing_patterns:
288
341
  return FusingInfo(fusing_patterns=self._fusing_patterns)
289
342
 
343
+ # Extract fusing layer patterns
344
+ fusing_layer_patterns = _get_fusing_layer_patterns(self._fusing_patterns)
345
+
290
346
  # Find max fusion
291
- max_layers_fusing = max([len(fusing_pattern) for fusing_pattern in self._fusing_patterns])
347
+ max_layer_patterns = max([len(fusing_layer_pattern) for fusing_layer_pattern in fusing_layer_patterns])
292
348
 
293
349
  # Travel along the graph to find layers for fusing
294
350
  nodes = graph.get_topo_sorted_nodes()
@@ -302,9 +358,9 @@ class FusingInfoGenerator:
302
358
  continue
303
359
  # Start fusing search
304
360
  fusing_nodes = [] # nodes that are candidates for participating in fusing
305
- patterns = copy.deepcopy(self._fusing_patterns)
361
+ patterns = copy.deepcopy(fusing_layer_patterns)
306
362
  next_nodes = [node]
307
- for i in range(max_layers_fusing):
363
+ for i in range(max_layer_patterns):
308
364
  patterns = get_valid_fusing_patterns_for_node(patterns, next_nodes[0], i)
309
365
  if len(patterns) == 0: # Give up if no more fusion pattern
310
366
  break
@@ -314,7 +370,7 @@ class FusingInfoGenerator:
314
370
  break
315
371
 
316
372
  # New fusion
317
- if is_valid_fusion(self._fusing_patterns, fusing_nodes):
373
+ if is_valid_fusion(fusing_layer_patterns, fusing_nodes):
318
374
  fused_op_id = FusingInfo.generate_fused_op_id(fusing_nodes)
319
375
  assert fused_op_id not in fusing_info, f"{fused_op_id} is already in fusing info: {fusing_info}"
320
376
  fusing_info[fused_op_id] = tuple(fusing_nodes)
@@ -371,3 +427,15 @@ def is_valid_fusion(fusing_patterns: List[List[Any]], nodes: List['BaseNode']) -
371
427
  if counter == fusion_depth:
372
428
  return True
373
429
  return False
430
+
431
+
432
+ def _get_fusing_layer_patterns(fusing_patterns: List[Dict[Any, OpQuantizationConfig]]) -> List[List[Any]]:
433
+ """
434
+ Extracts the fusing layer patterns from the provided fusing patterns.
435
+ Args:
436
+ fusing_patterns: List of patterns of layers/LayerFilterParams to fuse and their mapping quantization config.
437
+
438
+ Returns:
439
+ supported fusing layer patterns
440
+ """
441
+ return [f.get(FUSED_LAYER_PATTERN) for f in fusing_patterns]
@@ -233,6 +233,7 @@ class PytorchModel(torch.nn.Module):
233
233
  self.return_float_outputs = return_float_outputs
234
234
  self.wrapper = wrapper
235
235
  self.get_activation_quantizer_holder = get_activation_quantizer_holder_fn
236
+ self.insert_preserving_quantizers = graph.fqc.insert_preserving_quantizers
236
237
  self.reuse_groups = {}
237
238
  self._reused_nodes = []
238
239
 
@@ -335,12 +336,17 @@ class PytorchModel(torch.nn.Module):
335
336
  activation_quantizer_holder = None
336
337
  if self.use_activation_holder_during_model_building:
337
338
  if node.is_activation_quantization_enabled():
338
- activation_quantizer_holder = self.get_activation_quantizer_holder(node, holder_type=PytorchActivationQuantizationHolder)
339
+ activation_quantizer_holder = self.get_activation_quantizer_holder(node,
340
+ holder_type=PytorchActivationQuantizationHolder)
339
341
 
340
342
  elif node.is_quantization_preserving():
341
343
  prev_node = self.graph.retrieve_preserved_quantization_node(node)
342
344
  if prev_node.is_activation_quantization_enabled():
343
- activation_quantizer_holder = self.get_activation_quantizer_holder(prev_node, holder_type=PytorchPreservingActivationQuantizationHolder)
345
+ if self.insert_preserving_quantizers:
346
+ holder_kwargs = {'quantization_bypass': True}
347
+ activation_quantizer_holder = self.get_activation_quantizer_holder(prev_node,
348
+ holder_type=PytorchPreservingActivationQuantizationHolder,
349
+ **holder_kwargs)
344
350
 
345
351
  if activation_quantizer_holder is not None:
346
352
  activation_quantizer_holder_name = node.name + '_' + ACTIVATION_HOLDER_QUANTIZER
@@ -65,26 +65,29 @@ if FOUND_TORCH:
65
65
  return module
66
66
 
67
67
 
68
- def get_activation_quantizer_holder(node: BaseNode, holder_type: PytorchActivationQuantizationHolder, fw_impl) -> Callable:
68
+ def get_activation_quantizer_holder(node: BaseNode, holder_type: PytorchActivationQuantizationHolder,
69
+ fw_impl, **kwargs) -> Callable:
69
70
  """
70
71
  Retrieve a PytorchActivationQuantizationHolder layer to use for activation quantization of a node.
71
72
  If the layer is not supposed to be wrapped with an activation quantizer - return None.
73
+
72
74
  Args:
73
75
  node: Node to attach a PytorchActivationQuantizationHolder to its output.
74
76
  holder_type: The type of the activation quantization holder to use.
75
77
  fw_impl: FrameworkImplementation object with a specific framework methods implementation.
78
+ **kwargs: Key-arguments to be passed to the quantization holder initialization to set specific arguments
79
+ based on the holder's type.
80
+
76
81
  Returns:
77
82
  A PytorchActivationQuantizationHolder module for the node's activation quantization.
78
83
  """
79
84
  # Holder by definition uses a single quantizer for the activation quantization
80
- # thus we make sure this is the only possible case (unless it's a node we no activation
85
+ # thus we make sure this is the only possible case (unless it's a node with no activation
81
86
  # quantization, which in this case has an empty list).
82
87
  _, activation_quantizers = fw_impl.get_inferable_quantizers(node)
83
88
  if len(activation_quantizers) == 1:
84
- if holder_type == PytorchActivationQuantizationHolder:
85
- return holder_type(activation_quantizers[0])
86
- elif holder_type == PytorchPreservingActivationQuantizationHolder:
87
- return holder_type(activation_quantizers[0], quantization_bypass=True)
89
+ return holder_type(activation_quantizers[0], **kwargs)
90
+
88
91
  Logger.critical(
89
92
  f'PytorchActivationQuantizationHolder supports a single quantizer but {len(activation_quantizers)} quantizers '
90
93
  f'were found for node {node}')
@@ -105,9 +108,9 @@ if FOUND_TORCH:
105
108
  wrapper=lambda n, m:
106
109
  fully_quantized_wrapper(n, m,
107
110
  fw_impl=fw_impl),
108
- get_activation_quantizer_holder_fn=lambda n, holder_type:
111
+ get_activation_quantizer_holder_fn=lambda n, holder_type, **kwargs:
109
112
  get_activation_quantizer_holder(n, holder_type,
110
- fw_impl=fw_impl)).build_model()
113
+ fw_impl=fw_impl, **kwargs)).build_model()
111
114
 
112
115
  Logger.info("\nPlease run your accuracy evaluation on the exported quantized model to verify it's accuracy.\n"
113
116
  "Checkout the FAQ and Troubleshooting pages for resolving common issues and improving the quantized model accuracy:\n"
@@ -1,4 +1,4 @@
1
- import model_compression_toolkit.target_platform_capabilities.schema.v1 as schema
1
+ import model_compression_toolkit.target_platform_capabilities.schema.v2 as schema
2
2
 
3
3
  OperatorSetNames = schema.OperatorSetNames
4
4
  Signedness = schema.Signedness
@@ -0,0 +1,124 @@
1
+ # Copyright 2025 Sony Semiconductor Israel, Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ import copy
16
+ from typing import Any, Union
17
+
18
+ import model_compression_toolkit.target_platform_capabilities.schema.v1 as schema_v1
19
+ import model_compression_toolkit.target_platform_capabilities.schema.v2 as schema_v2
20
+ import model_compression_toolkit.target_platform_capabilities.schema.mct_current_schema as current_schema
21
+
22
+ ALL_SCHEMA_VERSIONS = [schema_v1, schema_v2] # needs to be updated with all active schema versions
23
+ FUTURE_SCHEMA_VERSIONS = [] # once future schema becomes current schema, move to it ALL_SCHEMA_VERSIONS
24
+ all_tpc_types = tuple([s.TargetPlatformCapabilities for s in ALL_SCHEMA_VERSIONS])
25
+ tpc_or_str_type = all_tpc_types + (str,)
26
+
27
+
28
+ def is_tpc_instance(tpc_obj_or_path: Any) -> bool:
29
+ """
30
+ Checks if the given object is an instance of a TargetPlatformCapabilities
31
+ :param tpc_obj_or_path: Object to check its type
32
+ :return: True if the given object is an instance of a TargetPlatformCapabilities, False otherwise
33
+ """
34
+ return type(tpc_obj_or_path) in all_tpc_types
35
+
36
+
37
+ def get_schema_by_version(schema_version: str):
38
+ return {
39
+ "1": schema_v1,
40
+ "2": schema_v2
41
+ }[schema_version]
42
+
43
+
44
+ def _schema_v1_to_v2(
45
+ tpc: schema_v1.TargetPlatformCapabilities) -> schema_v2.TargetPlatformCapabilities:
46
+ """
47
+ Converts given tpc of schema version 1 to schema version 2.
48
+ Schema v2 updates:
49
+ 1. New TPC field: insert_preserving_quantizers
50
+ Compatability behavior: Set field to False by default
51
+ 2. New field in Fusing: fuse_op_quantization_config
52
+ Compatability behavior: set enable_activation_quantization=False in every fuse_op_quantization_config
53
+ 3. New operator set names: EXP, SIN, COS
54
+ Compatability behavior: Not required
55
+ :return: TargetPlatformCapabilities instance of schema version 2
56
+ """
57
+ v1_default_qco = tpc.default_qco.base_config
58
+ v2_default_qco = schema_v2.OpQuantizationConfig(
59
+ default_weight_attr_config=v1_default_qco.default_weight_attr_config,
60
+ attr_weights_configs_mapping=v1_default_qco.attr_weights_configs_mapping,
61
+ activation_quantization_method=v1_default_qco.activation_quantization_method,
62
+ activation_n_bits=v1_default_qco.activation_n_bits,
63
+ supported_input_activation_n_bits=v1_default_qco.supported_input_activation_n_bits,
64
+ enable_activation_quantization=False, # set to False by default because feature not exist in schema v1
65
+ quantization_preserving=v1_default_qco.quantization_preserving,
66
+ fixed_scale=v1_default_qco.fixed_scale,
67
+ fixed_zero_point=v1_default_qco.fixed_zero_point,
68
+ simd_size=v1_default_qco.simd_size,
69
+ signedness=v1_default_qco.signedness)
70
+
71
+ schema_v2_fusing_patters = []
72
+ for fussing_pattern in tpc.fusing_patterns:
73
+ schema_v2_fusing_patters.append(
74
+ schema_v2.Fusing(operator_groups=fussing_pattern.operator_groups,
75
+ fuse_op_quantization_config=copy.deepcopy(v2_default_qco),
76
+ name=fussing_pattern.name))
77
+
78
+ tpc_schema_v2 = schema_v2.TargetPlatformCapabilities(default_qco=tpc.default_qco,
79
+ operator_set=tpc.operator_set,
80
+ fusing_patterns=schema_v2_fusing_patters,
81
+ tpc_minor_version=tpc.tpc_minor_version,
82
+ tpc_patch_version=tpc.tpc_patch_version,
83
+ tpc_platform_type=tpc.tpc_platform_type,
84
+ add_metadata=tpc.add_metadata,
85
+ insert_preserving_quantizers=False) # set to False by default because feature not exist in schema v1
86
+ return tpc_schema_v2
87
+
88
+
89
+ def get_conversion_map() -> dict:
90
+ """
91
+ Retrieves the schema conversion map.
92
+ :return: A dictionary where:
93
+ - Keys representing supported source schema versions.
94
+ - Values are Callable functions that take tpc in one schema version and return it in the next (higher) version
95
+ """
96
+ conversion_map = {
97
+ schema_v1.TargetPlatformCapabilities: _schema_v1_to_v2,
98
+ }
99
+ return conversion_map
100
+
101
+
102
+ def tpc_to_current_schema_version(
103
+ tpc: Union[all_tpc_types]) -> current_schema.TargetPlatformCapabilities:
104
+ """
105
+ Given tpc instance of some schema version, convert it to the current MCT schema version.
106
+
107
+ In case a new schema is added to MCT, need to add a conversion function from the previous version to the new
108
+ version, e.g. if the current schema version was updated from v4 to v5, need to add _schema_v4_to_v5 function to
109
+ this file, and add it to the conversion_map.
110
+
111
+ :param tpc: TargetPlatformCapabilities of some schema version
112
+ :return: TargetPlatformCapabilities with the current MCT schema version
113
+ """
114
+ conversion_map = get_conversion_map()
115
+ prev_tpc_type = type(tpc)
116
+ while not isinstance(tpc, current_schema.TargetPlatformCapabilities):
117
+ if type(tpc) not in conversion_map:
118
+ raise KeyError(f"TPC using schema version {tpc.SCHEMA_VERSION} which is not in schemas conversion map. "
119
+ f"Make sure the schema version is supported, or add it in case it's a new schema version")
120
+ tpc = conversion_map[type(tpc)](tpc)
121
+ if isinstance(tpc, prev_tpc_type):
122
+ raise RuntimeError(f"TPC of type {prev_tpc_type} failed to update to next schema version")
123
+ prev_tpc_type = type(tpc)
124
+ return tpc
@@ -91,6 +91,8 @@ class OperatorSetNames(str, Enum):
91
91
  STRIDED_SLICE = "StridedSlice"
92
92
  SSD_POST_PROCESS = "SSDPostProcess"
93
93
  EXP = "Exp"
94
+ SIN = "Sin"
95
+ COS = "Cos"
94
96
 
95
97
  @classmethod
96
98
  def get_values(cls):
@@ -218,11 +220,11 @@ class TargetPlatformCapabilities(BaseModel):
218
220
  SCHEMA_VERSION (int): Version of the schema for the Target Platform Model.
219
221
  """
220
222
  default_qco: QuantizationConfigOptions
221
- operator_set: Optional[Tuple[OperatorsSet, ...]]
222
- fusing_patterns: Optional[Tuple[Fusing, ...]]
223
- tpc_minor_version: Optional[int]
224
- tpc_patch_version: Optional[int]
225
- tpc_platform_type: Optional[str]
223
+ operator_set: Optional[Tuple[OperatorsSet, ...]] = None
224
+ fusing_patterns: Optional[Tuple[Fusing, ...]] = None
225
+ tpc_minor_version: Optional[int] = None
226
+ tpc_patch_version: Optional[int] = None
227
+ tpc_platform_type: Optional[str] = None
226
228
  add_metadata: bool = True
227
229
  name: Optional[str] = "default_tpc"
228
230
 
@@ -100,7 +100,10 @@ class AttachTpcToKeras(AttachTpcToFramework):
100
100
  OperatorSetNames.LOG_SOFTMAX: [tf.nn.log_softmax],
101
101
  OperatorSetNames.ADD_BIAS: [tf.nn.bias_add],
102
102
  OperatorSetNames.L2NORM: [tf.math.l2_normalize],
103
- OperatorSetNames.SSD_POST_PROCESS: [SSDPostProcess]
103
+ OperatorSetNames.SSD_POST_PROCESS: [SSDPostProcess],
104
+ OperatorSetNames.EXP: [tf.math.exp],
105
+ OperatorSetNames.SIN: [tf.math.sin],
106
+ OperatorSetNames.COS: [tf.math.cos]
104
107
  }
105
108
 
106
109
  self._opset2attr_mapping = {
@@ -99,6 +99,9 @@ class AttachTpcToPytorch(AttachTpcToFramework):
99
99
  Eq('p', 2) | Eq('p', None))],
100
100
  OperatorSetNames.SSD_POST_PROCESS: [], # no such operator in pytorch
101
101
  OperatorSetNames.COMBINED_NON_MAX_SUPPRESSION: [MulticlassNMS, MulticlassNMSWithIndices],
102
+ OperatorSetNames.EXP: [torch.exp],
103
+ OperatorSetNames.SIN: [torch.sin],
104
+ OperatorSetNames.COS: [torch.cos],
102
105
  }
103
106
 
104
107
  pytorch_linear_attr_mapping = {KERNEL_ATTR: DefaultDict(default_value=PYTORCH_KERNEL),
@@ -31,6 +31,9 @@ from model_compression_toolkit.target_platform_capabilities.schema.mct_current_s
31
31
  OpQuantizationConfig, QuantizationConfigOptions
32
32
  from model_compression_toolkit.target_platform_capabilities.targetplatform2framework.current_tpc import _current_tpc
33
33
 
34
+ from model_compression_toolkit.constants import FUSED_LAYER_PATTERN, FUSED_OP_QUANT_CONFIG
35
+
36
+
34
37
  class FrameworkQuantizationCapabilities(ImmutableClass):
35
38
  """
36
39
  Attach framework information to a modeled hardware.
@@ -94,20 +97,26 @@ class FrameworkQuantizationCapabilities(ImmutableClass):
94
97
  """
95
98
  return self.op_sets_to_layers.get_layers_by_op(op)
96
99
 
97
- def get_fusing_patterns(self) -> List[List[Any]]:
100
+ def get_fusing_patterns(self) -> List[Dict[List[Any], OpQuantizationConfig]]:
98
101
  """
99
102
 
100
- Returns: List of patterns of layers/LayerFilterParams to fuse.
103
+ Returns: List of patterns of layers/LayerFilterParams to fuse and their mapping quantization config.
101
104
 
102
105
  """
103
- res = []
106
+
107
+ patterns = []
104
108
  if self.tpc.fusing_patterns is None:
105
- return res
109
+ return patterns
110
+
106
111
  for p in self.tpc.fusing_patterns:
112
+ res = []
107
113
  ops = [self.get_layers_by_opset(x) for x in p.operator_groups]
108
114
  res.extend(itertools.product(*ops))
109
- return [list(x) for x in res]
110
115
 
116
+ fused_op_quant_config = getattr(p, FUSED_OP_QUANT_CONFIG, None)
117
+ patterns.extend({FUSED_LAYER_PATTERN: list(x), FUSED_OP_QUANT_CONFIG: fused_op_quant_config} for x in res)
118
+
119
+ return patterns
111
120
 
112
121
  def get_info(self) -> Dict[str, Any]:
113
122
  """
@@ -230,7 +239,17 @@ class FrameworkQuantizationCapabilities(ImmutableClass):
230
239
  def is_simd_padding(self) -> bool:
231
240
  """
232
241
 
233
- Returns: Check if the TP model defines that padding due to SIMD constrains occurs.
242
+ Returns: Check if the TPC defines that padding due to SIMD constrains occurs.
234
243
 
235
244
  """
236
245
  return self.tpc.is_simd_padding
246
+
247
+ @property
248
+ def insert_preserving_quantizers(self) -> bool:
249
+ """
250
+
251
+ Returns: Check if the TPC defines that a quantizer for quantization preserving operators should be added to the
252
+ constructed model.
253
+
254
+ """
255
+ return self.tpc.insert_preserving_quantizers
@@ -12,12 +12,23 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
+ import json
15
16
  from pathlib import Path
16
17
  from typing import Union
17
18
 
18
19
  import model_compression_toolkit.target_platform_capabilities.schema.mct_current_schema as schema
19
20
  from model_compression_toolkit.target_platform_capabilities.schema.schema_compatability import is_tpc_instance, \
20
- tpc_to_current_schema_version, tpc_or_str_type
21
+ tpc_to_current_schema_version, tpc_or_str_type, get_schema_by_version
22
+
23
+
24
+ def _get_json_schema(tpc_json_path: str):
25
+ """
26
+ Given a TPC json file path, extract the schema version from it, and return schema object matched to that
27
+ schema version.
28
+ """
29
+ with open(tpc_json_path, 'r', encoding='utf-8') as f:
30
+ schema_version = str(json.load(f)["SCHEMA_VERSION"])
31
+ return get_schema_by_version(schema_version)
21
32
 
22
33
 
23
34
  def _get_tpc_from_json(tpc_path: str) -> schema.TargetPlatformCapabilities:
@@ -40,7 +51,11 @@ def _get_tpc_from_json(tpc_path: str) -> schema.TargetPlatformCapabilities:
40
51
  raise ValueError(f"Error reading the file '{tpc_path}': {e.strerror}.") from e
41
52
 
42
53
  try:
43
- return schema.TargetPlatformCapabilities.parse_raw(data)
54
+ # json_schema = _get_json_schema(tpc_path)
55
+ # tpc = json_schema.TargetPlatformCapabilities.parse_raw(data)
56
+ # return tpc_to_current_schema_version(tpc)
57
+ tpc = schema.TargetPlatformCapabilities.parse_raw(data)
58
+ return tpc_to_current_schema_version(tpc)
44
59
  except ValueError as e:
45
60
  raise ValueError(f"Invalid JSON for loading TargetPlatformCapabilities in '{tpc_path}': {e}.") from e
46
61
  except Exception as e: