mct-nightly 2.1.0.20240609.524__tar.gz → 2.1.0.20240611.428__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 (503) hide show
  1. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/PKG-INFO +1 -1
  2. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/mct_nightly.egg-info/SOURCES.txt +8 -0
  4. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/__init__.py +1 -1
  5. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/base_node.py +1 -4
  6. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +1 -1
  7. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +1 -1
  8. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +10 -6
  9. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +15 -7
  10. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +30 -14
  11. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +8 -7
  12. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +108 -87
  13. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +15 -13
  14. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +29 -14
  15. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +40 -14
  16. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/node_builder.py +3 -3
  17. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +25 -23
  18. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +10 -0
  19. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/__init__.py +16 -0
  20. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py +222 -0
  21. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py +131 -0
  22. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_pytorch.py +111 -0
  23. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/__init__.py +16 -0
  24. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py +219 -0
  25. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py +131 -0
  26. mct-nightly-2.1.0.20240611.428/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py +110 -0
  27. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/LICENSE.md +0 -0
  28. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/README.md +0 -0
  29. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/mct_nightly.egg-info/dependency_links.txt +0 -0
  30. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/mct_nightly.egg-info/requires.txt +0 -0
  31. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/mct_nightly.egg-info/top_level.txt +0 -0
  32. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/constants.py +0 -0
  33. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/__init__.py +0 -0
  34. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/analyzer.py +0 -0
  35. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/__init__.py +0 -0
  36. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  37. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  38. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  39. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  40. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  41. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  42. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  43. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  44. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  45. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  46. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/framework_info.py +0 -0
  47. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  48. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  49. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  50. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  51. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  52. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  53. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  54. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  55. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  56. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  57. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  58. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  59. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  60. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  61. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  62. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  63. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  64. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  65. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/hessian/trace_hessian_calculator.py +0 -0
  66. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/hessian/trace_hessian_request.py +0 -0
  67. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  68. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  69. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  70. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  71. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  72. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  73. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  74. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  75. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  76. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  77. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  78. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  79. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  80. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  81. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  82. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  83. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
  84. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
  85. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
  86. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py +0 -0
  87. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py +0 -0
  88. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py +0 -0
  89. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  90. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  91. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  92. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  93. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  94. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  95. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/model_collector.py +0 -0
  96. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/model_validation.py +0 -0
  97. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  98. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  99. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  100. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  101. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  102. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
  103. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
  104. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
  105. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
  106. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
  107. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
  108. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
  109. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
  110. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
  111. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
  112. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
  113. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
  114. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
  115. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
  116. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
  117. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
  118. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  119. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  120. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  121. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  122. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  123. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  124. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  125. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  126. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  127. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  128. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  129. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  130. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  131. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  132. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  133. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  134. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  135. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  136. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  137. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
  138. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  139. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  140. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  141. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  142. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  143. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  144. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  145. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  146. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  147. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  148. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  149. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  150. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
  151. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  152. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  153. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  154. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  155. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  156. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  157. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/user_info.py +0 -0
  158. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  159. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  160. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  161. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  162. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  163. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/__init__.py +0 -0
  164. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  165. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  166. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  167. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  168. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  169. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  170. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  171. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/constants.py +0 -0
  172. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  173. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  174. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  175. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  176. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  177. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  178. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  179. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  180. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  181. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  182. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  183. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  184. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
  185. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  186. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  187. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
  188. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  189. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  190. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  191. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  192. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  193. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  194. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  195. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  196. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/hessian/activation_trace_hessian_calculator_keras.py +0 -0
  197. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/hessian/trace_hessian_calculator_keras.py +0 -0
  198. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/hessian/weights_trace_hessian_calculator_keras.py +0 -0
  199. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
  200. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  201. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  202. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  203. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  204. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  205. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
  206. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
  207. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  208. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
  209. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  210. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  211. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  212. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  213. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  214. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  215. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  216. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  217. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  218. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  219. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  220. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
  221. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  222. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  223. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  224. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  225. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  226. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  227. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  228. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  229. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  230. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  231. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  232. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  233. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  234. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  235. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  236. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  237. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  238. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  239. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  240. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  241. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  242. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  243. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  244. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
  245. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
  246. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  247. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  248. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  249. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
  250. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  251. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  252. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  253. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  254. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  255. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/transform_function_call_method.py +0 -0
  256. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  257. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  258. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  259. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/hessian/activation_trace_hessian_calculator_pytorch.py +0 -0
  260. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/hessian/trace_hessian_calculator_pytorch.py +0 -0
  261. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/hessian/weights_trace_hessian_calculator_pytorch.py +0 -0
  262. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  263. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  264. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  265. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
  266. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
  267. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
  268. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
  269. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  270. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  271. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  272. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  273. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  274. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  275. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  276. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  277. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
  278. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  279. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  280. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  281. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  282. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/core/runner.py +0 -0
  283. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/__init__.py +0 -0
  284. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  285. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  286. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  287. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  288. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  289. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  290. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  291. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  292. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  293. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  294. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  295. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  296. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  297. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  298. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  299. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  300. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  301. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  302. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  303. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  304. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  305. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  306. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  307. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  308. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  309. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  310. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  311. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  312. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  313. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  314. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  315. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  316. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/defaultdict.py +0 -0
  317. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/__init__.py +0 -0
  318. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  319. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  320. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  321. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
  322. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  323. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  324. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  325. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  326. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  327. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  328. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  329. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
  330. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  331. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  332. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  333. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  334. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  335. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  336. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  337. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
  338. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
  339. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  340. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  341. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  342. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  343. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  344. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  345. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  346. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
  347. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  348. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  349. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/__init__.py +0 -0
  350. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  351. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  352. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  353. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  354. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  355. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  356. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  357. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  358. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  359. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  360. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  361. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  362. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  363. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  364. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  365. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  366. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
  367. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  368. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  369. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  370. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  371. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  372. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  373. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  374. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  375. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  376. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  377. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  378. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  379. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  380. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  381. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  382. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  383. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
  384. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  385. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  386. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  387. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  388. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  389. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  390. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/gptq/runner.py +0 -0
  391. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/logger.py +0 -0
  392. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/metadata.py +0 -0
  393. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/pruning/__init__.py +0 -0
  394. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
  395. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
  396. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
  397. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
  398. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/ptq/__init__.py +0 -0
  399. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  400. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  401. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  402. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  403. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/ptq/runner.py +0 -0
  404. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/__init__.py +0 -0
  405. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/common/__init__.py +0 -0
  406. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  407. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  408. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  409. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  410. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
  411. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  412. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  413. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  414. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  415. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  416. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  417. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  418. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  419. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  420. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  421. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  422. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
  423. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  424. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  425. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  426. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  427. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
  428. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  429. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  430. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  431. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  432. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  433. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  434. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
  435. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
  436. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
  437. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +0 -0
  438. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
  439. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
  440. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
  441. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
  442. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
  443. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
  444. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
  445. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
  446. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
  447. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
  448. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  449. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  450. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  451. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  452. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  453. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
  454. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
  455. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
  456. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
  457. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -0
  458. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
  459. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
  460. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
  461. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -0
  462. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
  463. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
  464. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py +0 -0
  465. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py +0 -0
  466. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py +0 -0
  467. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py +0 -0
  468. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py +0 -0
  469. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py +0 -0
  470. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py +0 -0
  471. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py +0 -0
  472. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  473. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  474. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
  475. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  476. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
  477. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
  478. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
  479. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  480. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  481. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
  482. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  483. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
  484. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
  485. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
  486. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  487. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  488. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  489. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  490. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  491. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  492. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  493. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  494. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  495. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  496. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  497. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  498. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  499. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  500. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  501. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  502. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/setup.cfg +0 -0
  503. {mct-nightly-2.1.0.20240609.524 → mct-nightly-2.1.0.20240611.428}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.1.0.20240609.524
3
+ Version: 2.1.0.20240611.428
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.20240609.524
3
+ Version: 2.1.0.20240611.428
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -462,6 +462,14 @@ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_
462
462
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py
463
463
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py
464
464
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py
465
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/__init__.py
466
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py
467
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py
468
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_pytorch.py
469
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/__init__.py
470
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py
471
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py
472
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py
465
473
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py
466
474
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py
467
475
  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.20240609.000524"
30
+ __version__ = "2.1.0.20240611.000428"
@@ -240,10 +240,7 @@ class BaseNode:
240
240
  if isinstance(pos, int)):
241
241
  if pos > len(input_tensors):
242
242
  Logger.critical("The positional weight index cannot exceed the number of input tensors to the node.") # pragma: no cover
243
- # Insert only positional weights that are not subject to quantization. If the positional weight is
244
- # subject to quantization, the quantization wrapper inserts the positional weight into the node.
245
- if not self.is_weights_quantization_enabled(pos):
246
- input_tensors.insert(pos, weight)
243
+ input_tensors.insert(pos, weight)
247
244
 
248
245
  return input_tensors
249
246
 
@@ -388,4 +388,4 @@ class HessianInfoService:
388
388
  Returns: A list with split batch into individual results.
389
389
 
390
390
  """
391
- return [t[i] for i in range(t.shape[0])]
391
+ return [t[i:i+1, :] for i in range(t.shape[0])]
@@ -135,7 +135,7 @@ class LFHImportanceMetric(BaseImportanceMetric):
135
135
  nodes_scores.append(_scores_for_node)
136
136
 
137
137
  # Average and map scores to nodes.
138
- self._entry_node_to_hessian_score = {node: np.mean(scores[0], axis=0) for node, scores in zip(entry_nodes, nodes_scores)}
138
+ self._entry_node_to_hessian_score = {node: np.mean(scores[0], axis=0).flatten() for node, scores in zip(entry_nodes, nodes_scores)}
139
139
 
140
140
  self._entry_node_count_oc_nparams = self._count_oc_nparams(entry_nodes=entry_nodes)
141
141
  _entry_node_l2_oc_norm = self._get_squaredl2norm(entry_nodes=entry_nodes)
@@ -326,13 +326,17 @@ class WeightsAttrQuantizationConfig:
326
326
 
327
327
  """
328
328
  assert self.enable_weights_quantization
329
+ assert not (self.weights_per_channel_threshold and self.weights_channels_axis is None), \
330
+ "Trying to calculate threshold per channel, channel axis in None."
329
331
  if self.weights_quantization_params_fn is not None:
330
- self.set_weights_quantization_param(self.weights_quantization_params_fn(tensor_data,
331
- p=self.l_p_value,
332
- n_bits=self.weights_n_bits,
333
- per_channel=self.weights_per_channel_threshold and self.weights_channels_axis is not None,
334
- channel_axis=self.weights_channels_axis[0], # output channel axis
335
- min_threshold=min_threshold))
332
+ self.set_weights_quantization_param(
333
+ self.weights_quantization_params_fn(tensor_data,
334
+ p=self.l_p_value,
335
+ n_bits=self.weights_n_bits,
336
+ per_channel=self.weights_per_channel_threshold and self.weights_channels_axis is not None,
337
+ channel_axis=self.weights_channels_axis[0], # output channel axis
338
+ min_threshold=min_threshold)[0] # Take only first output, the q-params, as axis is already chosen.
339
+ )
336
340
  else:
337
341
  self.set_weights_quantization_param({})
338
342
 
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
 
16
- from typing import Dict
16
+ from typing import Dict, Tuple
17
17
  import numpy as np
18
18
  from sklearn.cluster import KMeans
19
19
 
@@ -42,7 +42,8 @@ def lut_kmeans_tensor(tensor_data: np.ndarray,
42
42
  is_symmetric: bool = False,
43
43
  node=None,
44
44
  hessian_info_service: HessianInfoService = None,
45
- num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES) -> Dict:
45
+ num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES,
46
+ ) -> Tuple[Dict[str, np.ndarray], int]:
46
47
  """
47
48
  The quantizer first finds the closest max value per channel of tensor_data.
48
49
  Now, we divide tensor_data with the threshold vector per channel. In addition, we scale the result to the range
@@ -70,27 +71,34 @@ def lut_kmeans_tensor(tensor_data: np.ndarray,
70
71
  if n_bits >= LUT_VALUES_BITWIDTH:
71
72
  Logger.critical(f'Look-Up-Table (LUT) bit configuration exceeds maximum: {n_bits} bits provided, must be less than {LUT_VALUES_BITWIDTH} bits.') # pragma: no cover
72
73
  # TODO: need to set this externally
74
+ n_data_points = len(np.unique(tensor_data.flatten()))
73
75
  if len(np.unique(tensor_data.flatten())) < 2 ** n_bits:
74
- n_clusters = len(np.unique(tensor_data.flatten()))
76
+ n_clusters = n_data_points
75
77
  else:
76
78
  n_clusters = 2 ** n_bits
77
79
  kmeans = KMeans(n_clusters=n_clusters, n_init=10)
78
80
 
79
81
  threshold_selection_tensor = symmetric_selection_tensor if is_symmetric else power_of_two_selection_tensor
80
- thresholds_per_channel = threshold_selection_tensor(tensor_data, p, n_bits, per_channel,
81
- channel_axis, n_iter, min_threshold,
82
- qc.QuantizationErrorMethod.NOCLIPPING)[THRESHOLD]
82
+
83
+ _params, channel_axis = threshold_selection_tensor(tensor_data, p, n_bits, per_channel,
84
+ channel_axis, n_iter, min_threshold,
85
+ qc.QuantizationErrorMethod.NOCLIPPING)
86
+ thresholds_per_channel = _params[THRESHOLD]
83
87
 
84
88
  tensor_for_kmeans = int_quantization_with_threshold(tensor_data, thresholds_per_channel, LUT_VALUES_BITWIDTH)
85
89
  kmeans.fit(tensor_for_kmeans.reshape(-1, 1))
86
90
 
87
91
  # Add 0 to the LUT
88
92
  cc = np.round(kmeans.cluster_centers_)
93
+ if n_data_points < 2 ** n_bits and np.all(cc != 0):
94
+ # In case there are fewer data points than potential clusters, we can add the cluster 0.0
95
+ # to the original clusters array to improve quantization (i.e. no need to zero one of the clusters).
96
+ cc = np.concatenate([np.zeros([1, 1], dtype=cc.dtype), cc])
89
97
  closest2zero_idx = (np.abs(cc - 0)).argmin()
90
98
  cc[closest2zero_idx] = 0.0
91
99
 
92
100
  return {LUT_VALUES: cc,
93
- SCALE_PER_CHANNEL: thresholds_per_channel}
101
+ SCALE_PER_CHANNEL: thresholds_per_channel}, channel_axis
94
102
 
95
103
 
96
104
  def lut_kmeans_histogram(bins: np.ndarray,
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
  import numpy as np
16
+ from typing import Union, Tuple, Dict
16
17
 
17
18
  import model_compression_toolkit.core.common.quantization.quantization_config as qc
18
19
  from model_compression_toolkit.constants import MIN_THRESHOLD, THRESHOLD, NUM_QPARAM_HESSIAN_SAMPLES
@@ -23,20 +24,22 @@ from model_compression_toolkit.core.common.quantization.quantizers.quantizers_he
23
24
  from model_compression_toolkit.core.common.quantization.quantization_params_generation.error_functions import \
24
25
  get_threshold_selection_tensor_error_function, get_threshold_selection_histogram_error_function
25
26
  from model_compression_toolkit.target_platform_capabilities.target_platform import QuantizationMethod
27
+ from model_compression_toolkit.core.common.similarity_analyzer import compute_mse
28
+ from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import quantize_tensor
26
29
 
27
30
 
28
31
  def power_of_two_selection_tensor(tensor_data: np.ndarray,
29
32
  p: int,
30
33
  n_bits: int,
31
34
  per_channel: bool = False,
32
- channel_axis: int = 1,
35
+ channel_axis: Union[int, None] = 1,
33
36
  n_iter: int = 10,
34
37
  min_threshold: float = MIN_THRESHOLD,
35
38
  quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE,
36
39
  node=None,
37
40
  hessian_info_service: HessianInfoService = None,
38
41
  num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES,
39
- ) -> dict:
42
+ ) -> Tuple[Dict[str, np.ndarray], int]:
40
43
  """
41
44
  Compute the power of two threshold based on the provided QuantizationErrorMethod to quantize the tensor.
42
45
  Different search is applied, depends on the value of the selected QuantizationErrorMethod.
@@ -46,7 +49,7 @@ def power_of_two_selection_tensor(tensor_data: np.ndarray,
46
49
  p: p-norm to use for the Lp-norm distance.
47
50
  n_bits: Number of bits to quantize the tensor.
48
51
  per_channel: Whether the quantization should be per-channel or not.
49
- channel_axis: Output channel index.
52
+ channel_axis: Output channel index. if None, search for best axis.
50
53
  n_iter: Number of iterations to search for the optimal threshold (not used for this method).
51
54
  min_threshold: Minimal threshold to use if threshold is too small (not used for this method).
52
55
  quant_error_method: an error function to optimize the parameters' selection accordingly.
@@ -56,11 +59,24 @@ def power_of_two_selection_tensor(tensor_data: np.ndarray,
56
59
 
57
60
  Returns:
58
61
  Power of two threshold to quantize the tensor in a power of 2 manner.
62
+ Selected quantization channel axis.
59
63
  """
60
64
 
61
65
  if quant_error_method == qc.QuantizationErrorMethod.NOCLIPPING:
62
- tensor_max = get_tensor_max(tensor_data, per_channel, channel_axis, n_bits)
63
- threshold = max_power_of_two(tensor_max, min_threshold)
66
+ if channel_axis is None and per_channel:
67
+ total_error_list = []
68
+ th_list = []
69
+ for _axis in range(len(tensor_data.shape)):
70
+ tensor_max = get_tensor_max(tensor_data, per_channel, _axis, n_bits)
71
+ threshold = max_power_of_two(tensor_max, min_threshold)
72
+ q_tensor_data = quantize_tensor(tensor_data, threshold, n_bits, True)
73
+ total_error_list.append(compute_mse(tensor_data, q_tensor_data, norm=True))
74
+ th_list.append(threshold)
75
+ channel_axis = np.argmin(total_error_list)
76
+ threshold = th_list[channel_axis]
77
+ else:
78
+ tensor_max = get_tensor_max(tensor_data, per_channel, channel_axis, n_bits)
79
+ threshold = max_power_of_two(tensor_max, min_threshold)
64
80
  else:
65
81
  signed = True # weights are always signed
66
82
  axis = -1 if per_channel else None
@@ -69,15 +85,15 @@ def power_of_two_selection_tensor(tensor_data: np.ndarray,
69
85
  n_bits=n_bits, signed=signed, node=node,
70
86
  hessian_info_service=hessian_info_service,
71
87
  num_hessian_samples=num_hessian_samples)
72
- threshold = qparams_selection_tensor_search(error_function,
73
- tensor_data,
74
- n_bits,
75
- per_channel=per_channel,
76
- channel_axis=channel_axis,
77
- n_iter=n_iter,
78
- min_threshold=min_threshold,
79
- signed=signed)
80
- return {THRESHOLD: threshold}
88
+ threshold, channel_axis = qparams_selection_tensor_search(error_function,
89
+ tensor_data,
90
+ n_bits,
91
+ per_channel=per_channel,
92
+ channel_axis=channel_axis,
93
+ n_iter=n_iter,
94
+ min_threshold=min_threshold,
95
+ signed=signed)
96
+ return {THRESHOLD: threshold}, channel_axis
81
97
 
82
98
 
83
99
  def power_of_two_selection_histogram(bins: np.ndarray,
@@ -84,13 +84,14 @@ def calculate_quantization_params(graph: Graph,
84
84
  mod_attr_cfg = copy.deepcopy(attr_cfg)
85
85
  mod_attr_cfg.weights_error_method = QuantizationErrorMethod.MSE
86
86
 
87
- weights_params = get_weights_qparams(n.get_weights_by_keys(attr),
88
- candidate_qc.weights_quantization_cfg,
89
- mod_attr_cfg,
90
- output_channels_axis,
91
- node=n,
92
- hessian_info_service=hessian_info_service,
93
- num_hessian_samples=num_hessian_samples)
87
+ weights_params, output_channels_axis = get_weights_qparams(n.get_weights_by_keys(attr),
88
+ candidate_qc.weights_quantization_cfg,
89
+ mod_attr_cfg,
90
+ output_channels_axis,
91
+ node=n,
92
+ hessian_info_service=hessian_info_service,
93
+ num_hessian_samples=num_hessian_samples)
94
+ attr_cfg.weights_channels_axis = (output_channels_axis, attr_cfg.weights_channels_axis[1])
94
95
  attr_cfg.set_weights_quantization_param(weights_params)
95
96
 
96
97
  if n.is_activation_quantization_enabled():
@@ -27,7 +27,7 @@ from model_compression_toolkit.constants import MIN_THRESHOLD, DEFAULT_TOL, DEFA
27
27
  from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import quantize_tensor, \
28
28
  reshape_tensor_for_per_channel_search, uniform_quantize_tensor, get_output_shape
29
29
  from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import max_power_of_two, \
30
- get_tensor_max
30
+ get_tensor_max, get_tensor_min
31
31
 
32
32
 
33
33
  def qparams_selection_tensor_search(error_function: Callable,
@@ -56,41 +56,49 @@ def qparams_selection_tensor_search(error_function: Callable,
56
56
  signed: a flag whether the tensor is signed.
57
57
 
58
58
  Returns:
59
- Optimal constrained threshold to quantize the tensor.
59
+ Optimal constrained threshold to quantize the tensor, and best channel axis if input channel_axis was None,
60
+ else return the input channel axis.
60
61
 
61
62
  """
62
63
 
63
- output_shape = get_output_shape(tensor_data.shape, channel_axis)
64
-
65
- # First threshold to check is the constrained threshold based on the tensor's maximal value.
66
- tensor_max = get_tensor_max(tensor_data, per_channel, channel_axis, n_bits)
67
- threshold = 2 * max_power_of_two(tensor_max, min_threshold)
64
+ search_axes = range(len(tensor_data.shape)) if channel_axis is None and per_channel else [channel_axis]
65
+ total_error_list = []
66
+ th_list = []
67
+ for _axis in search_axes:
68
+ output_shape = get_output_shape(tensor_data.shape, _axis)
68
69
 
69
- # If the threshold is computed per-channel, we rearrange the tensor such that each sub-tensor
70
- # is flattened, and we iterate over each one of them when searching for the threshold.
71
- if per_channel:
72
- tensor_data_r = reshape_tensor_for_per_channel_search(tensor_data, channel_axis)
70
+ # First threshold to check is the constrained threshold based on the tensor's maximal value.
71
+ tensor_max = get_tensor_max(tensor_data, per_channel, _axis, n_bits)
72
+ threshold = 2 * max_power_of_two(tensor_max, min_threshold)
73
73
 
74
- error_list = [] # init an empty error list
75
- # On each iteration a new constrained threshold which equal to half of the previous tested threshold
76
- # is used for quantizing the tensor and computing the error. The error is appended to an error list, which
77
- # eventually used to select the threshold with the minimal error.
78
- for i in range(n_iter):
74
+ # Rearrange the tensor such that each sub-tensor is flattened, and we iterate over each
75
+ # one of them when searching for the threshold.
79
76
  if per_channel:
80
- threshold_hat = (threshold / (2 ** i)).reshape([-1, 1])
81
- qt = quantize_tensor(tensor_data_r, threshold_hat, n_bits, signed)
82
- per_channel_error = _error_function_wrapper(error_function, tensor_data_r, qt, threshold_hat)
83
-
84
- error_list.append(per_channel_error)
85
- else: # quantize per-tensor
86
- qt = quantize_tensor(tensor_data, threshold / (2 ** i), n_bits, signed)
87
- error = error_function(qt, tensor_data, threshold=threshold / (2 ** i))
88
- error_list.append(error)
89
-
90
- # Take the index of the minimal error, and use it compute the threshold which yielded it.
91
- i = np.argmin(np.stack(error_list, axis=-1), axis=-1)
92
-
93
- return np.maximum(np.reshape(threshold.flatten() / np.power(2, i), output_shape), min_threshold)
77
+ tensor_data_r = reshape_tensor_for_per_channel_search(tensor_data, _axis)
78
+
79
+ error_list = [] # init an empty error list
80
+ # On each iteration a new constrained threshold which equal to half of the previous tested threshold
81
+ # is used for quantizing the tensor and computing the error. The error is appended to an error list, which
82
+ # eventually used to select the threshold with the minimal error.
83
+ for i in range(n_iter):
84
+ if per_channel:
85
+ threshold_hat = (threshold / (2 ** i)).reshape([-1, 1])
86
+ qt = quantize_tensor(tensor_data_r, threshold_hat, n_bits, signed)
87
+ per_channel_error = _error_function_wrapper(error_function, tensor_data_r, qt, threshold_hat)
88
+ error_list.append(per_channel_error)
89
+ else: # quantize per-tensor
90
+ qt = quantize_tensor(tensor_data, threshold / (2 ** i), n_bits, signed)
91
+ error = error_function(qt, tensor_data, threshold=threshold / (2 ** i))
92
+ error_list.append(error)
93
+
94
+ # Take the index of the minimal error, and use it compute the threshold which yielded it.
95
+ err_mat = np.stack(error_list, axis=-1)
96
+ i = np.argmin(err_mat, axis=-1)
97
+ th_list.append(np.maximum(np.reshape(threshold.flatten() / np.power(2, i), output_shape), min_threshold))
98
+ total_error_list.append(err_mat.min(axis=-1).mean())
99
+
100
+ best_axis_index = np.argmin(total_error_list)
101
+ return th_list[best_axis_index], search_axes[best_axis_index]
94
102
 
95
103
 
96
104
  def qparams_selection_histogram_search(error_function: Callable,
@@ -390,13 +398,12 @@ def search_dynamic_range(base_range: np.ndarray, x: np.ndarray, scalers: np.ndar
390
398
 
391
399
  def qparams_symmetric_selection_tensor_search(error_function: Callable,
392
400
  tensor_data: np.ndarray,
393
- tensor_max: np.ndarray,
394
401
  n_bits: int,
395
402
  per_channel: bool = False,
396
403
  channel_axis: int = 1,
397
404
  n_iter: int = SYMMETRIC_TENSOR_PER_CHANNEL_N_ITER,
398
405
  min_threshold=MIN_THRESHOLD,
399
- signed: bool = True) -> Any:
406
+ signed: bool = True) -> Tuple[np.ndarray, int]:
400
407
  """
401
408
  Search for optimal threshold (per-channel or per-tensor) for symmetric quantization of a tensor,
402
409
  using the iterative optimizer method.
@@ -404,7 +411,6 @@ def qparams_symmetric_selection_tensor_search(error_function: Callable,
404
411
  Args:
405
412
  error_function: Function to compute the error between the original and quantized tensors.
406
413
  tensor_data: Numpy array with tensor's content.
407
- tensor_max: The max value of the tensor.
408
414
  n_bits: Number of bits to quantize the tensor.
409
415
  per_channel: Whether the tensor should be quantized per-channel or per-tensor.
410
416
  channel_axis: Index of output channels dimension.
@@ -417,46 +423,55 @@ def qparams_symmetric_selection_tensor_search(error_function: Callable,
417
423
 
418
424
  """
419
425
 
420
- output_shape = get_output_shape(tensor_data.shape, channel_axis)
426
+ search_axes = range(len(tensor_data.shape)) if channel_axis is None and per_channel else [channel_axis]
427
+ total_error_list = []
428
+ th_list = []
429
+ for _axis in search_axes:
430
+ tensor_max = get_tensor_max(tensor_data, per_channel, _axis, n_bits)
431
+ output_shape = get_output_shape(tensor_data.shape, _axis)
421
432
 
422
- # If the threshold is computed per-channel, we rearrange the tensor such that each sub-tensor
423
- # is flattened, and we iterate over each one of them when searching for the threshold.
424
- if per_channel:
425
- tensor_data_r = reshape_tensor_for_per_channel_search(tensor_data, channel_axis)
426
- max_tensor = np.maximum(min_threshold, tensor_max)
427
- res = qparams_symmetric_iterative_minimization(x0=max_tensor,
428
- x=tensor_data_r,
429
- loss_fn=error_function, # gets float_tensor, fxp_tensor, threshold
430
- n_bits=n_bits,
431
- signed=signed,
432
- n_intervals=SYMMETRIC_TENSOR_PER_CHANNEL_N_INTERVALS,
433
- n_iter=SYMMETRIC_TENSOR_PER_CHANNEL_N_ITER,
434
- dec_freq=SYMMETRIC_TENSOR_PER_CHANNEL_DEC_FREQ,
435
- per_channel=True)
436
- return np.reshape(np.maximum(min_threshold, res['param']), output_shape)
437
- else:
438
- # quantize per-tensor
439
- res = qparams_symmetric_iterative_minimization(x0=get_init_threshold(min_threshold, tensor_max),
440
- x=tensor_data,
441
- loss_fn=error_function,
442
- n_bits=n_bits,
443
- signed=signed,
444
- n_intervals=SYMMETRIC_TENSOR_N_INTERVALS,
445
- n_iter=SYMMETRIC_TENSOR_N_ITER,
446
- dec_freq=SYMMETRIC_TENSOR_DEC_FREQ,
447
- per_channel=False)
448
-
449
- return max(min_threshold, res['param'])
433
+ if per_channel:
434
+ # Rearrange the tensor such that each sub-tensor is flattened, and we iterate
435
+ # over each one of them when searching for the threshold.
436
+ tensor_data_r = reshape_tensor_for_per_channel_search(tensor_data, _axis)
437
+ max_tensor = np.maximum(min_threshold, tensor_max)
438
+ res = qparams_symmetric_iterative_minimization(x0=max_tensor,
439
+ x=tensor_data_r,
440
+ loss_fn=error_function, # gets float_tensor, fxp_tensor, threshold
441
+ n_bits=n_bits,
442
+ signed=signed,
443
+ n_intervals=SYMMETRIC_TENSOR_PER_CHANNEL_N_INTERVALS,
444
+ n_iter=SYMMETRIC_TENSOR_PER_CHANNEL_N_ITER,
445
+ dec_freq=SYMMETRIC_TENSOR_PER_CHANNEL_DEC_FREQ,
446
+ per_channel=True)
447
+ th = np.reshape(np.maximum(min_threshold, res['param']), output_shape)
448
+ else:
449
+ # quantize per-tensor
450
+ res = qparams_symmetric_iterative_minimization(x0=get_init_threshold(min_threshold, tensor_max),
451
+ x=tensor_data,
452
+ loss_fn=error_function,
453
+ n_bits=n_bits,
454
+ signed=signed,
455
+ n_intervals=SYMMETRIC_TENSOR_N_INTERVALS,
456
+ n_iter=SYMMETRIC_TENSOR_N_ITER,
457
+ dec_freq=SYMMETRIC_TENSOR_DEC_FREQ,
458
+ per_channel=False)
459
+ th = max(min_threshold, res['param'])
460
+
461
+ total_error_list.append(res['loss'].mean())
462
+ th_list.append(th)
463
+
464
+ best_axis_index = np.argmin(total_error_list)
465
+ return th_list[best_axis_index], search_axes[best_axis_index]
450
466
 
451
467
 
452
468
  def qparams_uniform_selection_tensor_search(error_function: Callable,
453
469
  tensor_data: np.ndarray,
454
- tensor_min: np.ndarray,
455
- tensor_max: np.ndarray,
456
470
  n_bits: int,
457
471
  per_channel: bool = False,
458
472
  channel_axis: int = 1,
459
- n_iter: int = UNIFORM_TENSOR_PER_CHANNEL_N_ITER) -> Any:
473
+ n_iter: int = UNIFORM_TENSOR_PER_CHANNEL_N_ITER,
474
+ ) -> Tuple[Tuple[np.ndarray, np.ndarray], int]:
460
475
  """
461
476
  Search for optimal quantization range (per-channel or per-tensor) for uniform quantization of a tensor,
462
477
  using the iterative optimizer method and built-in scale factors
@@ -465,8 +480,6 @@ def qparams_uniform_selection_tensor_search(error_function: Callable,
465
480
  Args:
466
481
  error_function: Function to compute the error between the original and quantized tensors.
467
482
  tensor_data: Numpy array with tensor's content.
468
- tensor_min: The min value of the tensor.
469
- tensor_max: The max value of the tensor.
470
483
  n_bits: Number of bits to quantize the tensor.
471
484
  per_channel: Whether the tensor should be quantized per-channel or per-tensor.
472
485
  channel_axis: Index of output channels dimension.
@@ -477,17 +490,22 @@ def qparams_uniform_selection_tensor_search(error_function: Callable,
477
490
 
478
491
  """
479
492
 
480
- output_shape = get_output_shape(tensor_data.shape, channel_axis)
493
+ search_axes = range(len(tensor_data.shape)) if channel_axis is None and per_channel else [channel_axis]
494
+ total_error_list = []
495
+ th_list = []
496
+ for _axis in search_axes:
497
+ tensor_min = get_tensor_min(tensor_data, per_channel, _axis)
498
+ tensor_max = get_tensor_max(tensor_data, per_channel, _axis, n_bits, is_uniform_quantization=True)
499
+ output_shape = get_output_shape(tensor_data.shape, _axis)
481
500
 
482
- alpha = np.linspace(BOTTOM_FACTOR, UPPER_FACTOR, UNIFORM_TENSOR_N_SAMPLES)
483
- beta = np.linspace(BOTTOM_FACTOR, UPPER_FACTOR, UNIFORM_TENSOR_N_SAMPLES)
484
- scalers = np.asarray(list(itertools.product(alpha, beta)))
501
+ alpha = np.linspace(BOTTOM_FACTOR, UPPER_FACTOR, UNIFORM_TENSOR_N_SAMPLES)
502
+ beta = np.linspace(BOTTOM_FACTOR, UPPER_FACTOR, UNIFORM_TENSOR_N_SAMPLES)
503
+ scalers = np.asarray(list(itertools.product(alpha, beta)))
485
504
 
486
- # If the threshold is computed per-channel, we rearrange the tensor such that each sub-tensor
487
- # is flattened, and we iterate over each one of them when searching for the threshold.
488
- if per_channel:
505
+ # Rearrange the tensor such that each sub-tensor is flattened, and we iterate over
506
+ # each one of them when searching for the threshold.
489
507
  if per_channel:
490
- tensor_data_r = reshape_tensor_for_per_channel_search(tensor_data, channel_axis)
508
+ tensor_data_r = reshape_tensor_for_per_channel_search(tensor_data, _axis)
491
509
  tensor_min_max = np.column_stack([tensor_min.flatten(), tensor_max.flatten()])
492
510
  res = iterative_uniform_dynamic_range_search(x0=tensor_min_max,
493
511
  x=tensor_data_r,
@@ -496,18 +514,21 @@ def qparams_uniform_selection_tensor_search(error_function: Callable,
496
514
  n_bits=n_bits,
497
515
  n_iter=UNIFORM_TENSOR_PER_CHANNEL_N_ITER,
498
516
  per_channel=True)
499
- return np.reshape(res['param'][:, 0], output_shape), np.reshape(res['param'][:, 1], output_shape)
500
- else:
501
- # quantize per-tensor
502
- pass
503
- res = iterative_uniform_dynamic_range_search(x0=np.array([tensor_min, tensor_max]),
504
- x=tensor_data,
505
- scalers=scalers,
506
- loss_fn=error_function,
507
- n_bits=n_bits,
508
- n_iter=UNIFORM_TENSOR_N_ITER,
509
- per_channel=False)
510
- return res['param']
517
+ th_list.append((np.reshape(res['param'][:, 0], output_shape), np.reshape(res['param'][:, 1], output_shape)))
518
+ else:
519
+ # quantize per-tensor
520
+ res = iterative_uniform_dynamic_range_search(x0=np.array([tensor_min, tensor_max]),
521
+ x=tensor_data,
522
+ scalers=scalers,
523
+ loss_fn=error_function,
524
+ n_bits=n_bits,
525
+ n_iter=UNIFORM_TENSOR_N_ITER,
526
+ per_channel=False)
527
+ th_list.append(tuple(np.split(res['param'], 2)))
528
+ total_error_list.append(res['loss'].mean())
529
+
530
+ best_axis_index = np.argmin(total_error_list)
531
+ return th_list[best_axis_index], search_axes[best_axis_index]
511
532
 
512
533
 
513
534
  def qparams_symmetric_selection_histogram_search(error_function: Callable,
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- from typing import Dict, Any
15
+ from typing import Dict, Any, Tuple
16
16
 
17
17
  import numpy as np
18
18
 
@@ -34,7 +34,7 @@ def get_weights_qparams(weights_attr_values: np.ndarray,
34
34
  output_channels_axis: int,
35
35
  node=None,
36
36
  hessian_info_service: HessianInfoService = None,
37
- num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES) -> Dict[Any, Any]:
37
+ num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES) -> Tuple[Dict[Any, Any], int]:
38
38
  """
39
39
  Compute thresholds to quantize a kernel according to a NodeWeightsQuantizationConfig
40
40
  instance.
@@ -50,22 +50,24 @@ def get_weights_qparams(weights_attr_values: np.ndarray,
50
50
 
51
51
  Returns:
52
52
  A dictionary with the quantization threshold of the kernel.
53
+ Selected quantization channel axis.
53
54
  """
54
55
  if attr_quant_config.weights_quantization_params_fn is not None:
55
- weights_params = attr_quant_config.weights_quantization_params_fn(weights_attr_values,
56
- p=attr_quant_config.l_p_value,
57
- n_bits=attr_quant_config.weights_n_bits,
58
- per_channel=attr_quant_config.weights_per_channel_threshold and output_channels_axis is not None,
59
- channel_axis=output_channels_axis,
60
- min_threshold=weights_quant_config.min_threshold,
61
- quant_error_method=attr_quant_config.weights_error_method,
62
- node=node,
63
- hessian_info_service=hessian_info_service,
64
- num_hessian_samples=num_hessian_samples)
56
+ weights_params, output_channels_axis = attr_quant_config.weights_quantization_params_fn(
57
+ weights_attr_values,
58
+ p=attr_quant_config.l_p_value,
59
+ n_bits=attr_quant_config.weights_n_bits,
60
+ per_channel=attr_quant_config.weights_per_channel_threshold,
61
+ channel_axis=output_channels_axis,
62
+ min_threshold=weights_quant_config.min_threshold,
63
+ quant_error_method=attr_quant_config.weights_error_method,
64
+ node=node,
65
+ hessian_info_service=hessian_info_service,
66
+ num_hessian_samples=num_hessian_samples)
65
67
  else:
66
68
  weights_params = {}
67
69
 
68
- return weights_params
70
+ return weights_params, output_channels_axis
69
71
 
70
72
 
71
73
  def _get_kernel_channels_mapping(fw_info:FrameworkInfo,