mct-nightly 2.1.0.20240801.515__tar.gz → 2.1.0.20240802.429__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 (537) hide show
  1. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/PKG-INFO +1 -1
  2. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/mct_nightly.egg-info/SOURCES.txt +4 -0
  4. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/__init__.py +1 -1
  5. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/constants.py +2 -1
  6. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/base_node.py +50 -5
  7. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +6 -6
  8. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +1 -0
  9. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +6 -4
  10. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +19 -12
  11. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +14 -14
  12. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +14 -9
  13. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +25 -17
  14. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +10 -6
  15. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +12 -5
  16. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +7 -5
  17. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +25 -2
  18. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +5 -0
  19. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +2 -0
  20. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +2 -0
  21. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +2 -0
  22. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py +2 -0
  23. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py +2 -0
  24. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py +2 -0
  25. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py +2 -0
  26. mct-nightly-2.1.0.20240802.429/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/__init__.py +16 -0
  27. mct-nightly-2.1.0.20240802.429/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py +235 -0
  28. mct-nightly-2.1.0.20240802.429/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py +132 -0
  29. mct-nightly-2.1.0.20240802.429/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py +112 -0
  30. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +2 -0
  31. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +2 -0
  32. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/LICENSE.md +0 -0
  33. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/README.md +0 -0
  34. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/mct_nightly.egg-info/dependency_links.txt +0 -0
  35. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/mct_nightly.egg-info/requires.txt +0 -0
  36. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/mct_nightly.egg-info/top_level.txt +0 -0
  37. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/__init__.py +0 -0
  38. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/analyzer.py +0 -0
  39. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/__init__.py +0 -0
  40. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  41. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  42. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  43. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  44. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  45. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  46. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  47. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  48. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  49. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  50. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/framework_info.py +0 -0
  51. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  52. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  53. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  54. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  55. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  56. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  57. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  58. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  59. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  60. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  61. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  62. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  63. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  64. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  65. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  66. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  67. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  68. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  69. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  70. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/hessian/hessian_scores_calculator.py +0 -0
  71. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/hessian/hessian_scores_request.py +0 -0
  72. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  73. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  74. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  75. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  76. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  77. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  78. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  79. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  80. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  81. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  82. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  83. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  84. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  85. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  86. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  87. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  88. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
  89. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
  90. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py +0 -0
  91. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py +0 -0
  92. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py +0 -0
  93. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  94. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  95. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  96. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  97. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  98. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  99. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/model_collector.py +0 -0
  100. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/model_validation.py +0 -0
  101. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  102. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  103. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  104. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  105. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  106. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
  107. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
  108. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
  109. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
  110. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
  111. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
  112. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
  113. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
  114. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
  115. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
  116. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
  117. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
  118. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
  119. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
  120. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
  121. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
  122. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
  123. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  124. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  125. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  126. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  127. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  128. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  129. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  130. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  131. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  132. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  133. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  134. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  135. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  136. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  137. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  138. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  139. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  140. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  141. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  142. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
  143. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  144. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  145. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  146. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  147. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  148. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  149. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  150. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  151. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  152. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  153. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  154. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  155. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
  156. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  157. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  158. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  159. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  160. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  161. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/user_info.py +0 -0
  162. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  163. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  164. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  165. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  166. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  167. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/__init__.py +0 -0
  168. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  169. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  170. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  171. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  172. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  173. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  174. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  175. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/constants.py +0 -0
  176. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  177. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  178. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  179. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  180. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  181. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  182. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  183. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  184. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  185. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  186. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  187. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  188. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
  189. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  190. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  191. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
  192. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  193. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  194. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  195. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  196. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  197. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  198. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  199. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  200. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/hessian/activation_hessian_scores_calculator_keras.py +0 -0
  201. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/hessian/hessian_scores_calculator_keras.py +0 -0
  202. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/hessian/weights_hessian_scores_calculator_keras.py +0 -0
  203. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
  204. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  205. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  206. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  207. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  208. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  209. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
  210. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
  211. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  212. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
  213. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  214. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  215. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  216. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  217. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  218. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  219. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  220. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  221. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  222. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  223. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
  224. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  225. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
  226. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  227. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  228. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  229. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  230. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  231. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  232. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  233. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  234. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  235. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  236. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
  237. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  238. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  239. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  240. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  241. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  242. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  243. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  244. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  245. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  246. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  247. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  248. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  249. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  250. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
  251. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
  252. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  253. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  254. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  255. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
  256. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  257. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  258. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  259. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  260. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  261. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
  262. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  263. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  264. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  265. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/hessian/activation_hessian_scores_calculator_pytorch.py +0 -0
  266. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/hessian/hessian_scores_calculator_pytorch.py +0 -0
  267. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/hessian/weights_hessian_scores_calculator_pytorch.py +0 -0
  268. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  269. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  270. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  271. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
  272. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
  273. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
  274. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
  275. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  276. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  277. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  278. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  279. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  280. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  281. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  282. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  283. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
  284. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  285. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  286. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  287. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  288. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/core/runner.py +0 -0
  289. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/__init__.py +0 -0
  290. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  291. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  292. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  293. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  294. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  295. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  296. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  297. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  298. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  299. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  300. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/image_operations.py +0 -0
  301. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  302. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  303. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  304. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  305. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  306. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  307. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  308. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/lr_scheduler.py +0 -0
  309. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  310. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  311. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  312. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  313. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  314. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/image_operations.py +0 -0
  315. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  316. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  317. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  318. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  319. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  320. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  321. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/lr_scheduler.py +0 -0
  322. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  323. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  324. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  325. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  326. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/defaultdict.py +0 -0
  327. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/__init__.py +0 -0
  328. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  329. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  330. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  331. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
  332. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  333. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  334. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  335. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  336. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  337. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  338. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  339. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
  340. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  341. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  342. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  343. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  344. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  345. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  346. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  347. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
  348. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
  349. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  350. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  351. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  352. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  353. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  354. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  355. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  356. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
  357. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  358. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  359. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/__init__.py +0 -0
  360. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  361. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  362. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  363. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  364. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  365. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  366. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  367. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  368. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  369. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  370. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  371. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  372. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  373. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  374. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  375. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  376. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
  377. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  378. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  379. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  380. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  381. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  382. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  383. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  384. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  385. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  386. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  387. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  388. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  389. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  390. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  391. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  392. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  393. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
  394. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  395. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  396. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  397. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  398. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  399. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  400. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/gptq/runner.py +0 -0
  401. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/logger.py +0 -0
  402. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/metadata.py +0 -0
  403. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/pruning/__init__.py +0 -0
  404. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
  405. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
  406. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
  407. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
  408. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/ptq/__init__.py +0 -0
  409. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  410. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  411. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  412. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  413. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/ptq/runner.py +0 -0
  414. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/__init__.py +0 -0
  415. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/common/__init__.py +0 -0
  416. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  417. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  418. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  419. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  420. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
  421. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  422. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  423. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  424. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  425. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  426. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  427. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  428. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  429. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  430. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  431. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  432. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
  433. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  434. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  435. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  436. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  437. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
  438. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  439. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  440. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  441. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  442. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  443. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  444. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
  445. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
  446. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
  447. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
  448. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
  449. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
  450. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
  451. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
  452. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
  453. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
  454. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
  455. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
  456. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
  457. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  458. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  459. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  460. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  461. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  462. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
  463. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
  464. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
  465. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
  466. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
  467. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
  468. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
  469. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
  470. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py +0 -0
  471. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py +0 -0
  472. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py +0 -0
  473. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py +0 -0
  474. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py +0 -0
  475. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py +0 -0
  476. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/__init__.py +0 -0
  477. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py +0 -0
  478. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_pytorch.py +0 -0
  479. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/__init__.py +0 -0
  480. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py +0 -0
  481. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py +0 -0
  482. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  483. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  484. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
  485. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  486. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
  487. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
  488. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  489. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  490. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
  491. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  492. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
  493. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
  494. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  495. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  496. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  497. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  498. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  499. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  500. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  501. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  502. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  503. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  504. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  505. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  506. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  507. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  508. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  509. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  510. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/__init__.py +0 -0
  511. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/__init__.py +0 -0
  512. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/constants.py +0 -0
  513. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/core_report_generator.py +0 -0
  514. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/dataset_utils.py +0 -0
  515. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/framework_report_utils.py +0 -0
  516. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/model_analyzer.py +0 -0
  517. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/model_folding_utils.py +0 -0
  518. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/similarity_calculator.py +0 -0
  519. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/similarity_functions.py +0 -0
  520. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/tensorboard_utils.py +0 -0
  521. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/common/xquant_config.py +0 -0
  522. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/__init__.py +0 -0
  523. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/dataset_utils.py +0 -0
  524. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/facade_xquant_report.py +0 -0
  525. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/keras_report_utils.py +0 -0
  526. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/model_analyzer.py +0 -0
  527. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/similarity_functions.py +0 -0
  528. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/keras/tensorboard_utils.py +0 -0
  529. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/__init__.py +0 -0
  530. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/dataset_utils.py +0 -0
  531. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/facade_xquant_report.py +0 -0
  532. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/model_analyzer.py +0 -0
  533. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +0 -0
  534. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/similarity_functions.py +0 -0
  535. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/model_compression_toolkit/xquant/pytorch/tensorboard_utils.py +0 -0
  536. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/setup.cfg +0 -0
  537. {mct-nightly-2.1.0.20240801.515 → mct-nightly-2.1.0.20240802.429}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.1.0.20240801.515
3
+ Version: 2.1.0.20240802.429
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.1.0.20240801.515
3
+ Version: 2.1.0.20240802.429
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -474,6 +474,10 @@ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_
474
474
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py
475
475
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py
476
476
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py
477
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/__init__.py
478
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py
479
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py
480
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py
477
481
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py
478
482
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py
479
483
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py
@@ -27,4 +27,4 @@ from model_compression_toolkit import data_generation
27
27
  from model_compression_toolkit import pruning
28
28
  from model_compression_toolkit.trainable_infrastructure.keras.load_model import keras_load_quantized_model
29
29
 
30
- __version__ = "2.1.0.20240801.000515"
30
+ __version__ = "2.1.0.20240802.000429"
@@ -69,7 +69,8 @@ FLOAT_BITWIDTH = 32
69
69
  # that are shared among different candidates:
70
70
  WEIGHTS_NBITS_ATTRIBUTE = 'weights_n_bits'
71
71
  CORRECTED_BIAS_ATTRIBUTE = 'corrected_bias'
72
- ACTIVATION_NBITS_ATTRIBUTE = 'activation_n_bits'
72
+ ACTIVATION_N_BITS_ATTRIBUTE = 'activation_n_bits'
73
+ SUPPORTED_INPUT_ACTIVATION_NBITS_ATTRIBUTE = 'supported_input_activation_n_bits'
73
74
 
74
75
  # Quantization Parameters Iterative Search Defaults:
75
76
  SYMMETRIC_TENSOR_N_ITER = 40
@@ -19,11 +19,11 @@ from typing import Dict, Any, Tuple, List, Type, Union
19
19
  import numpy as np
20
20
 
21
21
  from model_compression_toolkit.constants import WEIGHTS_NBITS_ATTRIBUTE, CORRECTED_BIAS_ATTRIBUTE, \
22
- ACTIVATION_NBITS_ATTRIBUTE, FP32_BYTES_PER_PARAMETER
22
+ ACTIVATION_N_BITS_ATTRIBUTE, FP32_BYTES_PER_PARAMETER
23
23
  from model_compression_toolkit.core.common.quantization.node_quantization_config import WeightsAttrQuantizationConfig
24
24
  from model_compression_toolkit.logger import Logger
25
25
  from model_compression_toolkit.target_platform_capabilities.target_platform import QuantizationConfigOptions, \
26
- TargetPlatformCapabilities, LayerFilterParams
26
+ TargetPlatformCapabilities, LayerFilterParams, OpQuantizationConfig
27
27
 
28
28
 
29
29
  class BaseNode:
@@ -297,7 +297,6 @@ class BaseNode:
297
297
 
298
298
  return memory
299
299
 
300
-
301
300
  def get_unified_weights_candidates_dict(self, fw_info) -> Dict[str, Any]:
302
301
  """
303
302
  In Mixed-Precision, a node's kernel can have multiple candidates for weights quantization configuration.
@@ -343,7 +342,7 @@ class BaseNode:
343
342
  Returns: A dictionary containing information from node's activation quantization configuration candidates.
344
343
 
345
344
  """
346
- shared_attributes = [ACTIVATION_NBITS_ATTRIBUTE]
345
+ shared_attributes = [ACTIVATION_N_BITS_ATTRIBUTE]
347
346
  attr = dict()
348
347
  if self.is_activation_quantization_enabled():
349
348
  attr = copy.deepcopy(self.candidates_quantization_cfg[0].activation_quantization_cfg.__dict__)
@@ -539,7 +538,7 @@ class BaseNode:
539
538
  to the mappings from layers/LayerFilterParams to the OperatorsSet in the TargetPlatformModel.
540
539
 
541
540
  Args:
542
- tpc: TPC to extract the QuantizationConfigOptions for the node
541
+ tpc: TPC to extract the QuantizationConfigOptions for the node.
543
542
 
544
543
  Returns:
545
544
  QuantizationConfigOptions of the node.
@@ -559,6 +558,52 @@ class BaseNode:
559
558
  return matching_qcos[0]
560
559
  return tpc.tp_model.default_qco
561
560
 
561
+ def filter_node_qco_by_graph(self, tpc: TargetPlatformCapabilities,
562
+ next_nodes: List, node_qc_options: QuantizationConfigOptions
563
+ ) -> Tuple[OpQuantizationConfig, List[OpQuantizationConfig]]:
564
+ """
565
+ Filter quantization config options that don't match the graph.
566
+ A node may have several quantization config options with 'activation_n_bits' values, and
567
+ the next nodes in the graph may support different bit-width as input activation. This function
568
+ filters out quantization config that don't comply to these attributes.
569
+
570
+ Args:
571
+ tpc: TPC to extract the QuantizationConfigOptions for the next nodes.
572
+ next_nodes: Output nodes of current node.
573
+ node_qc_options: Node's QuantizationConfigOptions.
574
+
575
+ Returns:
576
+
577
+ """
578
+ # Filter quantization config options that don't match the graph.
579
+ _base_config = node_qc_options.base_config
580
+ _node_qc_options = node_qc_options.quantization_config_list
581
+ if len(next_nodes):
582
+ next_nodes_qc_options = [_node.get_qco(tpc) for _node in next_nodes]
583
+ next_nodes_supported_input_bitwidth = min([op_cfg.max_input_activation_n_bits
584
+ for qc_opts in next_nodes_qc_options
585
+ for op_cfg in qc_opts.quantization_config_list])
586
+
587
+ # Filter node's QC options that match next nodes input bit-width.
588
+ _node_qc_options = [_option for _option in _node_qc_options
589
+ if _option.activation_n_bits <= next_nodes_supported_input_bitwidth]
590
+ if len(_node_qc_options) == 0:
591
+ Logger.critical(f"Graph doesn't match TPC bit configurations: {self} -> {next_nodes}.") # pragma: no cover
592
+
593
+ # Verify base config match
594
+ if any([node_qc_options.base_config.activation_n_bits > qc_opt.base_config.max_input_activation_n_bits
595
+ for qc_opt in next_nodes_qc_options]):
596
+ # base_config activation bits doesn't match next node supported input bit-width -> replace with
597
+ # a qco from quantization_config_list with maximum activation bit-width.
598
+ if len(_node_qc_options) > 0:
599
+ output_act_bitwidth = {qco.activation_n_bits: i for i, qco in enumerate(_node_qc_options)}
600
+ _base_config = _node_qc_options[output_act_bitwidth[max(output_act_bitwidth)]]
601
+ Logger.warning(f"Node {self} base quantization config changed to match Graph and TPC configuration.\nCause: {self} -> {next_nodes}.")
602
+ else:
603
+ Logger.critical(f"Graph doesn't match TPC bit configurations: {self} -> {next_nodes}.") # pragma: no cover
604
+
605
+ return _base_config, _node_qc_options
606
+
562
607
  def is_match_type(self, _type: Type) -> bool:
563
608
  """
564
609
  Check if input type matches the node type, either in instance type or in type name.
@@ -195,12 +195,12 @@ def compute_total_bops(graph: Graph, fw_info: FrameworkInfo, fw_impl: FrameworkI
195
195
 
196
196
 
197
197
  def requires_mixed_precision(in_model: Any,
198
- target_resource_utilization: ResourceUtilization,
199
- representative_data_gen: Callable,
200
- core_config: CoreConfig,
201
- tpc: TargetPlatformCapabilities,
202
- fw_info: FrameworkInfo,
203
- fw_impl: FrameworkImplementation) -> bool:
198
+ target_resource_utilization: ResourceUtilization,
199
+ representative_data_gen: Callable,
200
+ core_config: CoreConfig,
201
+ tpc: TargetPlatformCapabilities,
202
+ fw_info: FrameworkInfo,
203
+ fw_impl: FrameworkImplementation) -> bool:
204
204
  """
205
205
  The function checks whether the model requires mixed precision to meet the requested target resource utilization.
206
206
  This is determined by whether the target memory usage of the weights is less than the available memory,
@@ -96,6 +96,7 @@ class NodeActivationQuantizationConfig(BaseNodeQuantizationConfig):
96
96
  self.activation_n_bits = op_cfg.activation_n_bits
97
97
  self.relu_bound_to_power_of_2 = qc.relu_bound_to_power_of_2
98
98
  self.enable_activation_quantization = op_cfg.enable_activation_quantization
99
+ self.is_signed = op_cfg.is_signed
99
100
  self.activation_channel_equalization = qc.activation_channel_equalization
100
101
  self.input_scaling = qc.input_scaling
101
102
  self.min_threshold = qc.min_threshold
@@ -19,7 +19,7 @@ from sklearn.cluster import KMeans
19
19
 
20
20
  import model_compression_toolkit.core.common.quantization.quantization_config as qc
21
21
  from model_compression_toolkit.constants import LUT_VALUES, MIN_THRESHOLD, SCALE_PER_CHANNEL, \
22
- LUT_VALUES_BITWIDTH, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES
22
+ LUT_VALUES_BITWIDTH, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES, SIGNED
23
23
  from model_compression_toolkit.core.common.hessian import HessianInfoService
24
24
  from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import \
25
25
  max_power_of_two, int_quantization_with_threshold
@@ -110,7 +110,8 @@ def lut_kmeans_histogram(bins: np.ndarray,
110
110
  constrained: bool = True,
111
111
  n_iter: int = 20,
112
112
  min_threshold: float = MIN_THRESHOLD,
113
- quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE) -> Dict:
113
+ quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE,
114
+ is_signed: bool = None) -> Dict:
114
115
  """
115
116
  Finds quantization cluster points for non-uniform activation quantization.
116
117
  The quantizer first finds the closest power-of-two number to the max value of the given histogram,
@@ -129,6 +130,7 @@ def lut_kmeans_histogram(bins: np.ndarray,
129
130
  n_iter: Number of iteration ot search for the threshold (not used for this method).
130
131
  min_threshold: Minimal threshold to use if threshold is too small.
131
132
  quant_error_method: an error function to optimize the parameters' selection accordingly (not used for this method).
133
+ is_signed: Whether the quantization is signed or not. If None then compute SIGNED value.
132
134
 
133
135
  Returns:
134
136
  A dictionary containing the cluster assignments according to the k-means algorithm and
@@ -148,9 +150,9 @@ def lut_kmeans_histogram(bins: np.ndarray,
148
150
  tensor_max = np.max(bins_with_values)
149
151
  threshold = max_power_of_two(tensor_max, min_threshold)
150
152
 
151
- signed = np.any(bins[:-1][counts != 0] < 0) # Whether histogram contains negative values or not.
153
+ signed = np.any(bins[:-1][counts != 0] < 0) if is_signed is None else is_signed # Whether histogram contains negative values or not.
152
154
  tensor_for_kmeans = int_quantization_with_threshold(data=bins, threshold=threshold, n_bits=LUT_VALUES_BITWIDTH, signed=signed)
153
155
  kmeans.fit(tensor_for_kmeans.reshape(-1, 1), sample_weight=np.insert(counts, 0, 0))
154
156
 
155
157
  return {LUT_VALUES: np.float32(np.round(kmeans.cluster_centers_)),
156
- THRESHOLD: threshold}
158
+ THRESHOLD: threshold, SIGNED: signed}
@@ -16,7 +16,7 @@ import numpy as np
16
16
  from typing import Union, Tuple, Dict
17
17
 
18
18
  import model_compression_toolkit.core.common.quantization.quantization_config as qc
19
- from model_compression_toolkit.constants import MIN_THRESHOLD, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES
19
+ from model_compression_toolkit.constants import MIN_THRESHOLD, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES, SIGNED
20
20
  from model_compression_toolkit.core.common.hessian import HessianInfoService
21
21
  from model_compression_toolkit.core.common.quantization.quantization_params_generation.qparams_search import \
22
22
  qparams_selection_tensor_search, qparams_selection_histogram_search
@@ -105,7 +105,8 @@ def power_of_two_selection_histogram(bins: np.ndarray,
105
105
  constrained: bool = True,
106
106
  n_iter: int = 20,
107
107
  min_threshold: float = MIN_THRESHOLD,
108
- quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE) -> dict:
108
+ quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE,
109
+ is_signed: bool = None) -> Dict:
109
110
  """
110
111
  Compute the power of two threshold based on the provided QuantizationErrorMethod to quantize a histogram.
111
112
  Different search is applied, depends on the value of the selected QuantizationErrorMethod.
@@ -121,6 +122,7 @@ def power_of_two_selection_histogram(bins: np.ndarray,
121
122
  n_iter: Number of iteration ot search for the threshold (not used for this method).
122
123
  min_threshold: Minimal threshold to use if threshold is too small (used only for kl threshold selection).
123
124
  quant_error_method: an error function to optimize the parameters' selection accordingly.
125
+ is_signed: Whether the quantization is signed or not. If None then compute SIGNED value.
124
126
 
125
127
  Returns:
126
128
  Power of two threshold to quantize the histogram a power of 2 manner.
@@ -128,17 +130,20 @@ def power_of_two_selection_histogram(bins: np.ndarray,
128
130
  if quant_error_method == qc.QuantizationErrorMethod.NOCLIPPING:
129
131
  tensor_max = np.max(np.abs(bins)[1:][counts > 0])
130
132
  threshold = max_power_of_two(tensor_max, min_threshold)
133
+ # Resolve is_signed in case it is None.
134
+ signed = (bins<0).any() if is_signed is None else is_signed
131
135
  else:
132
136
  error_function = get_threshold_selection_histogram_error_function(QuantizationMethod.POWER_OF_TWO,
133
137
  quant_error_method, p)
134
- threshold = qparams_selection_histogram_search(error_function,
135
- bins,
136
- counts,
137
- n_bits,
138
- constrained=constrained,
139
- n_iter=n_iter,
140
- min_threshold=min_threshold)
141
- return {THRESHOLD: threshold}
138
+ threshold, signed = qparams_selection_histogram_search(error_function,
139
+ bins,
140
+ counts,
141
+ n_bits,
142
+ constrained=constrained,
143
+ n_iter=n_iter,
144
+ min_threshold=min_threshold,
145
+ is_signed=is_signed)
146
+ return {THRESHOLD: threshold, SIGNED: signed}
142
147
 
143
148
 
144
149
  def power_of_two_no_clipping_selection_min_max(bins: np.ndarray,
@@ -151,7 +156,8 @@ def power_of_two_no_clipping_selection_min_max(bins: np.ndarray,
151
156
  n_iter: int = 20,
152
157
  min_threshold: float = MIN_THRESHOLD,
153
158
  quant_error_method: qc.QuantizationErrorMethod =
154
- qc.QuantizationErrorMethod.NOCLIPPING) -> dict:
159
+ qc.QuantizationErrorMethod.NOCLIPPING,
160
+ is_signed: bool = None) -> Dict:
155
161
  """
156
162
  Gets a threshold between min and max numbers.
157
163
  If computed threshold is less than min_threshold, min_threshold is returned.
@@ -168,4 +174,5 @@ def power_of_two_no_clipping_selection_min_max(bins: np.ndarray,
168
174
  constrained,
169
175
  n_iter,
170
176
  min_threshold=min_threshold,
171
- quant_error_method=qc.QuantizationErrorMethod.NOCLIPPING)
177
+ quant_error_method=qc.QuantizationErrorMethod.NOCLIPPING,
178
+ is_signed=is_signed)
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
  import numpy as np
16
- from typing import Dict
16
+ from typing import Dict, Union
17
17
 
18
18
  from model_compression_toolkit.target_platform_capabilities.target_platform import QuantizationMethod
19
19
  from model_compression_toolkit.core.common.collectors.statistics_collector import BaseStatsCollector
@@ -25,7 +25,7 @@ from model_compression_toolkit.core.common.quantization.node_quantization_config
25
25
 
26
26
  def get_activations_qparams(activation_quant_cfg: NodeActivationQuantizationConfig,
27
27
  nodes_prior_info: NodePriorInfo,
28
- out_stats_container: BaseStatsCollector) -> Dict[str, float]:
28
+ out_stats_container: BaseStatsCollector) -> Dict[str, Union[np.ndarray, float, bool]]:
29
29
  """
30
30
  Compute the activations params for a given node in a graph according to a params function.
31
31
 
@@ -49,7 +49,9 @@ def get_activations_qparams(activation_quant_cfg: NodeActivationQuantizationConf
49
49
  bins_counts)
50
50
  min_value, max_value = out_stats_container.get_min_max_values()
51
51
 
52
- if nodes_prior_info.is_output_bounded():
52
+ if activation_quant_cfg.is_signed is not None:
53
+ signed = activation_quant_cfg.is_signed
54
+ elif nodes_prior_info.is_output_bounded():
53
55
  signed = min_value < 0
54
56
  else:
55
57
  signed = np.any(bins_values[:-1][bins_counts > 0] < 0)
@@ -65,14 +67,12 @@ def get_activations_qparams(activation_quant_cfg: NodeActivationQuantizationConf
65
67
  activation_quant_cfg.activation_quantization_params_fn = \
66
68
  quantization_params_generation.uniform_no_clipping_selection_min_max
67
69
 
68
- activation_params = activation_quant_cfg.activation_quantization_params_fn(bins_values,
69
- bins_counts,
70
- activation_quant_cfg.l_p_value,
71
- activation_quant_cfg.activation_n_bits,
72
- min_value,
73
- max_value,
74
- min_threshold=activation_quant_cfg.min_threshold,
75
- quant_error_method=activation_quant_cfg.activation_error_method)
76
- activation_params.update({SIGNED: signed})
77
-
78
- return activation_params
70
+ return activation_quant_cfg.activation_quantization_params_fn(bins_values,
71
+ bins_counts,
72
+ activation_quant_cfg.l_p_value,
73
+ activation_quant_cfg.activation_n_bits,
74
+ min_value,
75
+ max_value,
76
+ min_threshold=activation_quant_cfg.min_threshold,
77
+ quant_error_method=activation_quant_cfg.activation_error_method,
78
+ is_signed=signed)
@@ -107,7 +107,8 @@ def qparams_selection_histogram_search(error_function: Callable,
107
107
  n_bits: int,
108
108
  constrained: bool = True,
109
109
  n_iter: int = 10,
110
- min_threshold: float = MIN_THRESHOLD):
110
+ min_threshold: float = MIN_THRESHOLD,
111
+ is_signed: bool = None) -> Tuple[np.ndarray, bool]:
111
112
  """
112
113
  Search for an optimal threshold to quantize a histogram of collected float values.
113
114
  The search_methods starts with the constrained no-clipping threshold by the bins' maximal value, and continues with
@@ -123,13 +124,14 @@ def qparams_selection_histogram_search(error_function: Callable,
123
124
  constrained: Whether the threshold should be constrained or not.
124
125
  n_iter: Number of searching iterations.
125
126
  min_threshold: Threshold to return if the computed threshold is smaller that min_threshold.
127
+ is_signed: Whether the quantization is signed or not. If None then compute SIGNED value.
126
128
 
127
129
  Returns:
128
130
  Optimal constrained threshold to quantize the tensor.
129
131
 
130
132
  """
131
133
 
132
- signed = np.any(bins < 0) # Whether histogram contains negative values or not.
134
+ signed = (bins < 0).any() if is_signed is None else is_signed # Whether histogram contains negative values or not.
133
135
  tensor_data = np.abs(bins)
134
136
  tensor_max = np.max(tensor_data)
135
137
  if not constrained:
@@ -150,7 +152,7 @@ def qparams_selection_histogram_search(error_function: Callable,
150
152
  error_list.append(error)
151
153
 
152
154
  # Return the threshold with the minimal error.
153
- return np.maximum(threshold_list[np.argmin(error_list)], min_threshold)
155
+ return np.maximum(threshold_list[np.argmin(error_list)], min_threshold), signed
154
156
 
155
157
 
156
158
  def qparams_symmetric_iterative_minimization(x0: np.ndarray,
@@ -537,7 +539,8 @@ def qparams_symmetric_selection_histogram_search(error_function: Callable,
537
539
  counts: np.ndarray,
538
540
  n_bits: int,
539
541
  n_iter: int = SYMMETRIC_HISTOGRAM_N_ITER,
540
- min_threshold: float = MIN_THRESHOLD):
542
+ min_threshold: float = MIN_THRESHOLD,
543
+ is_signed: bool = None) -> Tuple[np.ndarray, bool]:
541
544
  """
542
545
  search for optimal threshold (per-channel or per-tensor) for symmetric quantization of a histogram,
543
546
  using the iterative optimizer method.
@@ -550,12 +553,13 @@ def qparams_symmetric_selection_histogram_search(error_function: Callable,
550
553
  n_bits: Number of bits to quantize the tensor.
551
554
  n_iter: Number of searching iterations.
552
555
  min_threshold: Threshold to return if the computed threshold is smaller that min_threshold.
556
+ is_signed: Whether the quantization is signed or not. If None then compute SIGNED value.
553
557
 
554
558
  Returns:
555
559
  Optimized threshold for quantifying the histogram.
556
560
 
557
561
  """
558
- signed = np.any(bins[:-1][counts != 0] < 0) # Whether histogram contains negative values or not.
562
+ signed = np.any(bins[:-1][counts != 0] < 0) if is_signed is None else is_signed # Whether histogram contains negative values or not.
559
563
 
560
564
  res = qparams_symmetric_iterative_minimization(x0=get_init_threshold(min_threshold, tensor_max),
561
565
  x=bins,
@@ -570,7 +574,7 @@ def qparams_symmetric_selection_histogram_search(error_function: Callable,
570
574
  n_iter=SYMMETRIC_HISTOGRAM_N_ITER,
571
575
  dec_freq=SYMMETRIC_HISTOGRAM_DEC_FREQ,
572
576
  per_channel=False)
573
- return max(min_threshold, res['param'])
577
+ return max(min_threshold, res['param']), signed
574
578
 
575
579
 
576
580
  def kl_qparams_symmetric_selection_histogram_search(error_function: Callable,
@@ -579,7 +583,8 @@ def kl_qparams_symmetric_selection_histogram_search(error_function: Callable,
579
583
  counts: np.ndarray,
580
584
  n_bits: int,
581
585
  n_iter: int = SYMMETRIC_HISTOGRAM_N_ITER,
582
- min_threshold: float = MIN_THRESHOLD):
586
+ min_threshold: float = MIN_THRESHOLD,
587
+ is_signed: bool = None) -> Tuple[np.ndarray, bool]:
583
588
  """
584
589
  Search for optimal threshold (per-channel or per-tensor) for symmetric quantization of a histogram,
585
590
  with KL-Divergence loss function (needs a separate search function
@@ -599,7 +604,7 @@ def kl_qparams_symmetric_selection_histogram_search(error_function: Callable,
599
604
  Optimized threshold for quantifying the histogram.
600
605
 
601
606
  """
602
- signed = np.any(bins[:-1][counts != 0] < 0) # Whether histogram contains negative values or not.
607
+ signed = np.any(bins[:-1][counts != 0] < 0) if is_signed is None else is_signed # Whether histogram contains negative values or not.
603
608
  res = qparams_symmetric_iterative_minimization(x0=get_init_threshold(min_threshold, tensor_max),
604
609
  x=bins,
605
610
  loss_fn=lambda x, q_x, t:
@@ -617,7 +622,7 @@ def kl_qparams_symmetric_selection_histogram_search(error_function: Callable,
617
622
  n_iter=SYMMETRIC_HISTOGRAM_N_ITER,
618
623
  dec_freq=SYMMETRIC_HISTOGRAM_DEC_FREQ,
619
624
  per_channel=False)
620
- return max(min_threshold, res['param'])
625
+ return max(min_threshold, res['param']), signed
621
626
 
622
627
 
623
628
  def qparams_uniform_selection_histogram_search(error_function: Callable,
@@ -16,7 +16,7 @@ import numpy as np
16
16
  from typing import Union, Tuple, Dict
17
17
 
18
18
  import model_compression_toolkit.core.common.quantization.quantization_config as qc
19
- from model_compression_toolkit.constants import MIN_THRESHOLD, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES
19
+ from model_compression_toolkit.constants import MIN_THRESHOLD, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES, SIGNED
20
20
  from model_compression_toolkit.core.common.hessian import HessianInfoService
21
21
  from model_compression_toolkit.core.common.quantization.quantization_params_generation.error_functions import \
22
22
  get_threshold_selection_tensor_error_function, get_threshold_selection_histogram_error_function, _kl_error_histogram
@@ -106,7 +106,8 @@ def symmetric_selection_histogram(bins: np.ndarray,
106
106
  constrained: bool = True,
107
107
  n_iter: int = 20,
108
108
  min_threshold: float = MIN_THRESHOLD,
109
- quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE) -> dict:
109
+ quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE,
110
+ is_signed: bool = None) -> Dict:
110
111
  """
111
112
  Compute the optimal threshold based on the provided QuantizationErrorMethod to quantize a histogram.
112
113
  Different search is applied, depends on the value of the selected QuantizationErrorMethod.
@@ -122,6 +123,7 @@ def symmetric_selection_histogram(bins: np.ndarray,
122
123
  n_iter: Number of iteration ot search for the threshold (not used for this method).
123
124
  min_threshold: Minimal threshold to use if threshold is too small (used only for kl threshold selection).
124
125
  quant_error_method: an error function to optimize the parameters' selection accordingly.
126
+ is_signed: Whether the quantization is signed or not. If None then compute SIGNED value.
125
127
 
126
128
  Returns:
127
129
  Optimal threshold to quantize the histogram a symmetric manner.
@@ -129,23 +131,27 @@ def symmetric_selection_histogram(bins: np.ndarray,
129
131
  tensor_max = np.max(np.abs(bins)[1:][counts > 0])
130
132
  if quant_error_method == qc.QuantizationErrorMethod.NOCLIPPING:
131
133
  threshold = get_init_threshold(min_threshold, tensor_max)
134
+ # Resolve is_signed in case it is None.
135
+ signed = (bins<0).any() if is_signed is None else is_signed
132
136
  elif quant_error_method == qc.QuantizationErrorMethod.KL:
133
137
  # search for KL error is separated because the error method signature is different from the other error methods.
134
- threshold = kl_qparams_symmetric_selection_histogram_search(_kl_error_histogram,
135
- tensor_max,
136
- bins,
137
- counts,
138
- n_bits,
139
- min_threshold=min_threshold)
138
+ threshold, signed = kl_qparams_symmetric_selection_histogram_search(_kl_error_histogram,
139
+ tensor_max,
140
+ bins,
141
+ counts,
142
+ n_bits,
143
+ min_threshold=min_threshold,
144
+ is_signed=is_signed)
140
145
  else:
141
146
  error_function = get_threshold_selection_histogram_error_function(QuantizationMethod.SYMMETRIC, quant_error_method, p)
142
- threshold = qparams_symmetric_selection_histogram_search(error_function,
143
- tensor_max,
144
- bins,
145
- counts,
146
- n_bits,
147
- min_threshold=min_threshold)
148
- return {THRESHOLD: threshold}
147
+ threshold, signed = qparams_symmetric_selection_histogram_search(error_function,
148
+ tensor_max,
149
+ bins,
150
+ counts,
151
+ n_bits,
152
+ min_threshold=min_threshold,
153
+ is_signed=is_signed)
154
+ return {THRESHOLD: threshold, SIGNED: signed}
149
155
 
150
156
 
151
157
  def symmetric_no_clipping_selection_min_max(bins: np.ndarray,
@@ -158,7 +164,8 @@ def symmetric_no_clipping_selection_min_max(bins: np.ndarray,
158
164
  n_iter: int = 20,
159
165
  min_threshold: float = MIN_THRESHOLD,
160
166
  quant_error_method: qc.QuantizationErrorMethod =
161
- qc.QuantizationErrorMethod.NOCLIPPING) -> dict:
167
+ qc.QuantizationErrorMethod.NOCLIPPING,
168
+ is_signed: bool = None) -> Dict:
162
169
  """
163
170
  Gets a threshold between min and max numbers.
164
171
  If computed threshold is less than min_threshold, min_threshold is returned.
@@ -175,7 +182,8 @@ def symmetric_no_clipping_selection_min_max(bins: np.ndarray,
175
182
  constrained,
176
183
  n_iter,
177
184
  min_threshold=min_threshold,
178
- quant_error_method=qc.QuantizationErrorMethod.NOCLIPPING)
185
+ quant_error_method=qc.QuantizationErrorMethod.NOCLIPPING,
186
+ is_signed=is_signed)
179
187
 
180
188
 
181
189
  def get_init_threshold(min_threshold: float, tensor_max: np.ndarray, per_channel: bool = False) -> np.ndarray:
@@ -16,7 +16,7 @@ import numpy as np
16
16
  from typing import Union, Tuple, Dict
17
17
 
18
18
  import model_compression_toolkit.core.common.quantization.quantization_config as qc
19
- from model_compression_toolkit.constants import MIN_THRESHOLD, RANGE_MIN, RANGE_MAX, NUM_QPARAM_HESSIAN_SAMPLES
19
+ from model_compression_toolkit.constants import MIN_THRESHOLD, RANGE_MIN, RANGE_MAX, NUM_QPARAM_HESSIAN_SAMPLES, SIGNED
20
20
  from model_compression_toolkit.core.common.hessian import HessianInfoService
21
21
  from model_compression_toolkit.core.common.quantization.quantization_params_generation.qparams_search import \
22
22
  qparams_uniform_selection_tensor_search, qparams_uniform_selection_histogram_search
@@ -114,7 +114,8 @@ def uniform_selection_histogram(bins: np.ndarray,
114
114
  constrained: bool = True,
115
115
  n_iter: int = 20,
116
116
  min_threshold: float = MIN_THRESHOLD,
117
- quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE) -> dict:
117
+ quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE,
118
+ is_signed: bool = None) -> Dict:
118
119
  """
119
120
  Compute the optimal quantization range based on the provided QuantizationErrorMethod
120
121
  to uniformly quantize the histogram.
@@ -131,6 +132,7 @@ def uniform_selection_histogram(bins: np.ndarray,
131
132
  n_iter: Number of iteration ot search for the threshold (not used for this method).
132
133
  min_threshold: Minimal threshold to use if threshold is too small (not used for this method).
133
134
  quant_error_method: an error function to optimize the range parameters selection accordingly.
135
+ is_signed: Whether the quantization is signed or not. If None then compute SIGNED value.
134
136
 
135
137
  Returns:
136
138
  Optimal quantization range to quantize the histogram uniformly.
@@ -139,6 +141,7 @@ def uniform_selection_histogram(bins: np.ndarray,
139
141
  tensor_max = np.max(bins[1:][counts > 0])
140
142
  tensor_min_max = np.array([tensor_min, tensor_max])
141
143
 
144
+ signed = tensor_min < 0 if is_signed is None else is_signed
142
145
  if quant_error_method == qc.QuantizationErrorMethod.NOCLIPPING:
143
146
  mm = tensor_min_max
144
147
  else:
@@ -150,7 +153,7 @@ def uniform_selection_histogram(bins: np.ndarray,
150
153
  n_bits)
151
154
 
152
155
  return {RANGE_MIN: mm[0],
153
- RANGE_MAX: mm[1]}
156
+ RANGE_MAX: mm[1], SIGNED: signed}
154
157
 
155
158
 
156
159
  def uniform_no_clipping_selection_min_max(bins: np.ndarray,
@@ -163,7 +166,8 @@ def uniform_no_clipping_selection_min_max(bins: np.ndarray,
163
166
  n_iter: int = 20,
164
167
  min_threshold: float = MIN_THRESHOLD,
165
168
  quant_error_method: qc.QuantizationErrorMethod =
166
- qc.QuantizationErrorMethod.NOCLIPPING) -> dict:
169
+ qc.QuantizationErrorMethod.NOCLIPPING,
170
+ is_signed: bool = None) -> Dict:
167
171
  """
168
172
  Gets a quantization rage between min and max numbers.
169
173
 
@@ -179,5 +183,5 @@ def uniform_no_clipping_selection_min_max(bins: np.ndarray,
179
183
  constrained,
180
184
  n_iter,
181
185
  min_threshold=min_threshold,
182
- quant_error_method=qc.QuantizationErrorMethod.NOCLIPPING)
183
-
186
+ quant_error_method=qc.QuantizationErrorMethod.NOCLIPPING,
187
+ is_signed=is_signed)