mct-nightly 1.10.0.20231018.post358__tar.gz → 1.10.0.20231019.post424__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 (460) hide show
  1. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/PKG-INFO +1 -1
  2. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/mct_nightly.egg-info/SOURCES.txt +3 -0
  4. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +3 -1
  5. mct-nightly-1.10.0.20231019.post424/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +228 -0
  6. mct-nightly-1.10.0.20231019.post424/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +223 -0
  7. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +17 -4
  8. mct-nightly-1.10.0.20231019.post424/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +14 -0
  9. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/setup.cfg +1 -1
  10. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/LICENSE.md +0 -0
  11. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/README.md +0 -0
  12. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/mct_nightly.egg-info/dependency_links.txt +0 -0
  13. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/mct_nightly.egg-info/requires.txt +0 -0
  14. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/mct_nightly.egg-info/top_level.txt +0 -0
  15. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/__init__.py +0 -0
  16. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/constants.py +0 -0
  17. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/__init__.py +0 -0
  18. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/analyzer.py +0 -0
  19. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/__init__.py +0 -0
  20. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  21. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  22. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  23. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  24. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  25. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  26. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  27. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  28. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  29. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/collectors/statistics_collector_generator.py +0 -0
  30. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/data_loader.py +0 -0
  31. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/defaultdict.py +0 -0
  32. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  33. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/framework_info.py +0 -0
  34. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  35. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  36. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  37. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  38. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
  39. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  40. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  41. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  42. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  43. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  44. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  45. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  46. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  47. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  48. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  49. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  50. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  51. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  52. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  53. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  54. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/hessian/trace_hessian_calculator.py +0 -0
  55. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/hessian/trace_hessian_request.py +0 -0
  56. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  57. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  58. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  59. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  60. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  61. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  62. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  63. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  64. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  65. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  66. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  67. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  68. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  69. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/__init__.py +0 -0
  70. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi.py +0 -0
  71. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_aggregation_methods.py +0 -0
  72. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_data.py +0 -0
  73. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_functions_mapping.py +0 -0
  74. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_methods.py +0 -0
  75. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  76. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  77. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  78. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  79. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  80. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  81. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  82. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  83. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  84. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/model_collector.py +0 -0
  85. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/model_validation.py +0 -0
  86. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  87. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  88. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  89. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  90. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  91. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  92. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  93. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  94. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  95. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  96. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
  97. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_analyzer.py +0 -0
  98. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  99. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  100. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  101. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  102. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  103. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/kmeans_params.py +0 -0
  104. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
  105. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  106. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
  107. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  108. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  109. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
  110. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  111. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
  112. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
  113. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  114. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  115. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  116. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantizers/kmeans_quantizer.py +0 -0
  117. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  118. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  119. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  120. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  121. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
  122. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  123. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  124. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  125. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  126. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  127. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  128. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  129. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  130. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  131. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  132. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  133. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  134. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  135. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  136. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  137. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  138. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  139. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  140. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/user_info.py +0 -0
  141. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  142. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  143. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  144. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  145. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/exporter.py +0 -0
  146. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  147. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/__init__.py +0 -0
  148. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  149. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  150. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  151. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  152. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  153. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  154. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  155. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/constants.py +0 -0
  156. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  157. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  158. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  159. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  160. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  161. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  162. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  163. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  164. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  165. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  166. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  167. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  168. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  169. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_relu_upper_bound.py +0 -0
  170. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  171. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  172. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  173. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  174. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  175. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  176. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  177. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  178. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/hessian/activation_trace_hessian_calculator_keras.py +0 -0
  179. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/hessian/trace_hessian_calculator_keras.py +0 -0
  180. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/hessian/weights_trace_hessian_calculator_keras.py +0 -0
  181. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
  182. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  183. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  184. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/kpi_data_facade.py +0 -0
  185. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  186. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  187. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  188. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  189. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
  190. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  191. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  192. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  193. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  194. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  195. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  196. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  197. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  198. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  199. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  200. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
  201. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  202. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  203. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  204. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  205. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  206. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  207. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  208. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  209. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  210. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  211. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  212. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
  213. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  214. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  215. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  216. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  217. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  218. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  219. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  220. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  221. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  222. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  223. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  224. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  225. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  226. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  227. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/permute_call_method.py +0 -0
  228. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  229. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  230. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  231. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  232. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  233. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  234. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  235. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  236. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  237. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/hessian/activation_trace_hessian_calculator_pytorch.py +0 -0
  238. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/hessian/pytorch_model_gradients.py +0 -0
  239. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/hessian/trace_hessian_calculator_pytorch.py +0 -0
  240. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/hessian/weights_trace_hessian_calculator_pytorch.py +0 -0
  241. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/kpi_data_facade.py +0 -0
  242. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  243. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  244. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  245. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
  246. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  247. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  248. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  249. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  250. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  251. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  252. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  253. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  254. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  255. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  256. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  257. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/core/runner.py +0 -0
  258. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/__init__.py +0 -0
  259. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  260. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  261. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  262. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  263. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  264. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  265. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  266. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  267. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  268. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  269. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  270. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  271. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  272. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  273. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  274. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  275. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  276. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  277. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  278. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  279. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  280. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  281. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  282. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  283. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  284. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  285. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  286. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  287. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  288. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  289. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  290. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  291. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/__init__.py +0 -0
  292. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  293. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  294. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  295. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  296. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  297. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  298. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  299. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  300. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  301. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  302. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  303. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  304. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  305. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  306. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  307. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  308. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  309. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  310. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  311. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  312. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  313. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizers.py +0 -0
  314. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  315. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  316. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  317. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
  318. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  319. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizers.py +0 -0
  320. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  321. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/__init__.py +0 -0
  322. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  323. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  324. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  325. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  326. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  327. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  328. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  329. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  330. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  331. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  332. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  333. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  334. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  335. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  336. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  337. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  338. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
  339. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  340. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  341. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  342. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  343. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  344. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  345. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  346. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  347. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  348. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  349. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  350. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  351. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  352. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  353. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  354. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  355. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
  356. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  357. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  358. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  359. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  360. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  361. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  362. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/gptq/runner.py +0 -0
  363. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/legacy/__init__.py +0 -0
  364. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/legacy/keras_quantization_facade.py +0 -0
  365. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/legacy/pytorch_quantization_facade.py +0 -0
  366. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/logger.py +0 -0
  367. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/ptq/__init__.py +0 -0
  368. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  369. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  370. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  371. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  372. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/ptq/runner.py +0 -0
  373. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/__init__.py +0 -0
  374. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/common/__init__.py +0 -0
  375. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  376. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  377. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  378. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  379. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
  380. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  381. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  382. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  383. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  384. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  385. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  386. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  387. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  388. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  389. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  390. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
  391. {mct-nightly-1.10.0.20231018.post358/model_compression_toolkit/trainable_infrastructure/common → mct-nightly-1.10.0.20231019.post424/model_compression_toolkit/qat/pytorch/quantizer/lsq}/__init__.py +0 -0
  392. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  393. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  394. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  395. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  396. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  397. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  398. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  399. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
  400. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
  401. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
  402. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +0 -0
  403. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
  404. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/quantization_format.py +0 -0
  405. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
  406. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
  407. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
  408. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
  409. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
  410. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
  411. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
  412. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
  413. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
  414. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  415. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  416. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  417. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  418. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -0
  419. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  420. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
  421. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
  422. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
  423. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
  424. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -0
  425. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
  426. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
  427. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
  428. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -0
  429. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
  430. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
  431. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  432. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  433. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
  434. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  435. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
  436. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
  437. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
  438. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  439. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  440. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
  441. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  442. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
  443. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
  444. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
  445. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  446. {mct-nightly-1.10.0.20231018.post358/model_compression_toolkit/trainable_infrastructure/keras → mct-nightly-1.10.0.20231019.post424/model_compression_toolkit/trainable_infrastructure/common}/__init__.py +0 -0
  447. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  448. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  449. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  450. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  451. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  452. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  453. {mct-nightly-1.10.0.20231018.post358/model_compression_toolkit/trainable_infrastructure/pytorch → mct-nightly-1.10.0.20231019.post424/model_compression_toolkit/trainable_infrastructure/keras}/__init__.py +0 -0
  454. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  455. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  456. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  457. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  458. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  459. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  460. {mct-nightly-1.10.0.20231018.post358 → mct-nightly-1.10.0.20231019.post424}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 1.10.0.20231018.post358
3
+ Version: 1.10.0.20231019.post424
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: 1.10.0.20231018.post358
3
+ Version: 1.10.0.20231019.post424
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -386,6 +386,9 @@ model_compression_toolkit/qat/pytorch/quantizer/__init__.py
386
386
  model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py
387
387
  model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py
388
388
  model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py
389
+ model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py
390
+ model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py
391
+ model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py
389
392
  model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py
390
393
  model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py
391
394
  model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py
@@ -14,4 +14,6 @@
14
14
  # ==============================================================================
15
15
 
16
16
  import model_compression_toolkit.qat.pytorch.quantizer.ste_rounding.symmetric_ste
17
- import model_compression_toolkit.qat.pytorch.quantizer.ste_rounding.uniform_ste
17
+ import model_compression_toolkit.qat.pytorch.quantizer.ste_rounding.uniform_ste
18
+ import model_compression_toolkit.qat.pytorch.quantizer.lsq.symmetric_lsq
19
+ import model_compression_toolkit.qat.pytorch.quantizer.lsq.uniform_lsq
@@ -0,0 +1,228 @@
1
+ # Copyright 2023 Sony Semiconductor Israel, Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ from typing import Union
16
+
17
+ import numpy as np
18
+ import torch
19
+ import torch.nn as nn
20
+
21
+ from model_compression_toolkit.qat import TrainingMethod
22
+ from model_compression_toolkit.target_platform_capabilities.target_platform import QuantizationMethod
23
+ from mct_quantizers import PytorchQuantizationWrapper
24
+ from model_compression_toolkit.qat.common import THRESHOLD_TENSOR
25
+ from model_compression_toolkit import constants as C
26
+ from model_compression_toolkit.qat.pytorch.quantizer.base_pytorch_qat_quantizer import BasePytorchQATTrainableQuantizer
27
+ from mct_quantizers.common.base_inferable_quantizer import mark_quantizer, QuantizationTarget
28
+
29
+ from model_compression_toolkit.core.pytorch.utils import to_torch_tensor
30
+ from model_compression_toolkit.qat.pytorch.quantizer.quantizer_utils import ste_round, grad_scale
31
+ from mct_quantizers.pytorch.quantizers import \
32
+ WeightsPOTInferableQuantizer, WeightsSymmetricInferableQuantizer, ActivationPOTInferableQuantizer, \
33
+ ActivationSymmetricInferableQuantizer
34
+ from model_compression_toolkit.trainable_infrastructure.common.trainable_quantizer_config import \
35
+ TrainableQuantizerWeightsConfig, TrainableQuantizerActivationConfig
36
+ from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import VariableGroup
37
+
38
+
39
+ def symmetric_lsq_quantizer(x: nn.Parameter,
40
+ thresholds: nn.Parameter,
41
+ num_bits: int,
42
+ sign: bool,
43
+ min_int: int,
44
+ max_int: int,
45
+ scale_factor: float) -> Union[nn.Parameter, torch.Tensor]:
46
+ """
47
+ Symmetric quantizer according to LSQ algorithm: https://arxiv.org/pdf/1902.08153.pdf
48
+ Args:
49
+ x: input to quantize
50
+ thresholds: thresholds of quantization levels
51
+ num_bits: number of bits for quantization
52
+ sign: whether x is signed or not
53
+ min_int: min clipping integer value
54
+ max_int: max clipping integer value
55
+ scale_factor: grad scale of LSQ algorithm
56
+ Returns:
57
+ A quantized tensor
58
+ """
59
+ delta = thresholds / (2 ** (num_bits - int(sign)))
60
+ delta_scaled = grad_scale(delta, scale_factor)
61
+ rounded = ste_round(x / delta_scaled)
62
+ clipped = torch.clip(rounded, min=min_int, max=max_int)
63
+ quantized = delta_scaled * clipped
64
+ return quantized
65
+
66
+
67
+ @mark_quantizer(quantization_target=QuantizationTarget.Weights,
68
+ quantization_method=[QuantizationMethod.POWER_OF_TWO, QuantizationMethod.SYMMETRIC],
69
+ identifier=TrainingMethod.LSQ)
70
+ class LSQWeightQATQuantizer(BasePytorchQATTrainableQuantizer):
71
+ """
72
+ Trainable constrained quantizer to quantize layer's weights.
73
+ """
74
+
75
+ def __init__(self, quantization_config: TrainableQuantizerWeightsConfig):
76
+ """
77
+ Initialize a LSQWeightQATQuantizer object with parameters to use
78
+ for the quantization.
79
+
80
+ Args:
81
+ quantization_config: trainable quantizer config class
82
+ """
83
+ super().__init__(quantization_config)
84
+ self.power_of_two = quantization_config.weights_quantization_method == QuantizationMethod.POWER_OF_TWO
85
+ self.threshold_values = np.array(quantization_config.weights_quantization_params[C.THRESHOLD])
86
+ if self.power_of_two:
87
+ self.threshold_values = np.power(2.0, np.ceil(np.log2(np.maximum(self.threshold_values, C.MIN_THRESHOLD))))
88
+ self.num_bits = self.quantization_config.weights_n_bits
89
+ n_pos_bits = self.num_bits - int(C.WEIGHTS_SIGNED)
90
+ self.min_int = -int(C.WEIGHTS_SIGNED) * (2 ** n_pos_bits)
91
+ self.max_int = 2 ** n_pos_bits - 1
92
+ self.scale_factor = 1.0 / np.sqrt(self.max_int * self.threshold_values.size)
93
+
94
+ def initialize_quantization(self,
95
+ tensor_shape: torch.Size,
96
+ name: str,
97
+ layer: PytorchQuantizationWrapper):
98
+ """
99
+ Add quantizer parameters to the quantizer parameters dictionary
100
+
101
+ Args:
102
+ tensor_shape: tensor shape of the quantized tensor.
103
+ name: Tensor name.
104
+ layer: Layer to quantize.
105
+ """
106
+
107
+ # Add threshold variables to layer.
108
+ layer.register_parameter(name + "_" + THRESHOLD_TENSOR, nn.Parameter(to_torch_tensor(self.threshold_values), requires_grad=True))
109
+
110
+ # save the quantizer added parameters for later calculations
111
+ self.add_quantizer_variable(THRESHOLD_TENSOR, layer.get_parameter(name + "_" + THRESHOLD_TENSOR), VariableGroup.QPARAMS)
112
+
113
+
114
+ def __call__(self,
115
+ inputs: nn.Parameter,
116
+ training: bool) -> nn.Parameter:
117
+ """
118
+ Quantize a tensor
119
+ Args:
120
+ inputs: Input tensor to quantize.
121
+ training: whether in training mode or not
122
+ Returns:
123
+ quantized tensor
124
+ """
125
+ thresholds = self.get_quantizer_variable(THRESHOLD_TENSOR)
126
+ weight_quantized = symmetric_lsq_quantizer(inputs, thresholds, self.num_bits, C.WEIGHTS_SIGNED, self.min_int, self.max_int, self.scale_factor)
127
+ return weight_quantized
128
+
129
+ def convert2inferable(self) -> Union[WeightsPOTInferableQuantizer, WeightsSymmetricInferableQuantizer]:
130
+ """
131
+ Convert quantizer to inferable quantizer.
132
+
133
+ Returns:
134
+ A pytorch inferable quanizer object.
135
+ """
136
+ threshold_values = self.get_quantizer_variable(THRESHOLD_TENSOR).cpu().detach().numpy().flatten()
137
+ if self.power_of_two:
138
+ pot_threshold = 2 ** np.ceil(np.log2(threshold_values))
139
+ return WeightsPOTInferableQuantizer(num_bits=self.num_bits,
140
+ threshold=pot_threshold.tolist(),
141
+ per_channel=self.quantization_config.weights_per_channel_threshold,
142
+ channel_axis=self.quantization_config.weights_channels_axis)
143
+ else:
144
+ return WeightsSymmetricInferableQuantizer(num_bits=self.num_bits,
145
+ threshold=threshold_values.tolist(),
146
+ per_channel=self.quantization_config.weights_per_channel_threshold,
147
+ channel_axis=self.quantization_config.weights_channels_axis)
148
+
149
+
150
+
151
+ @mark_quantizer(quantization_target=QuantizationTarget.Activation,
152
+ quantization_method=[QuantizationMethod.POWER_OF_TWO, QuantizationMethod.SYMMETRIC],
153
+ identifier=TrainingMethod.LSQ)
154
+ class LSQActivationQATQuantizer(BasePytorchQATTrainableQuantizer):
155
+ """
156
+ Trainable constrained quantizer to quantize layer activations.
157
+ """
158
+
159
+ def __init__(self, quantization_config: TrainableQuantizerActivationConfig):
160
+ """
161
+ Initialize a LSQActivationQATQuantizer object with parameters to use
162
+ for symmetric or power of two quantization.
163
+
164
+ Args:
165
+ quantization_config: trainable quantizer config class
166
+ """
167
+ super().__init__(quantization_config)
168
+ self.power_of_two = quantization_config.activation_quantization_method == QuantizationMethod.POWER_OF_TWO
169
+ self.sign = quantization_config.activation_quantization_params['is_signed']
170
+ self.threshold_values = np.array([quantization_config.activation_quantization_params[C.THRESHOLD]])
171
+ self.num_bits = quantization_config.activation_n_bits
172
+ n_pos_bits = self.num_bits - int(self.sign)
173
+ self.min_int = -int(self.sign) * (2 ** n_pos_bits)
174
+ self.max_int = (2 ** n_pos_bits) - 1
175
+
176
+ def initialize_quantization(self,
177
+ tensor_shape: torch.Size,
178
+ name: str,
179
+ layer: PytorchQuantizationWrapper):
180
+ """
181
+ Add quantizer parameters to the quantizer parameters dictionary
182
+
183
+ Args:
184
+ tensor_shape: tensor shape of the quantized tensor.
185
+ name: Tensor name.
186
+ layer: Layer to quantize.
187
+ """
188
+ layer.register_parameter(name, nn.Parameter(to_torch_tensor(self.threshold_values), requires_grad=True))
189
+
190
+ # save the quantizer added parameters for later calculations
191
+ self.add_quantizer_variable(THRESHOLD_TENSOR, layer.get_parameter(name), VariableGroup.QPARAMS)
192
+
193
+ def __call__(self,
194
+ inputs: torch.Tensor,
195
+ training: bool = True) -> torch.Tensor:
196
+ """
197
+ Quantize a tensor.
198
+ Args:
199
+ inputs: Input tensor to quantize.
200
+ training: Whether the graph is in training mode.
201
+
202
+ Returns:
203
+ The quantized tensor.
204
+ """
205
+
206
+ thresholds = self.get_quantizer_variable(THRESHOLD_TENSOR)
207
+ n_channels = inputs.shape[1]
208
+ scale_factor = 1.0 / np.sqrt(self.max_int * n_channels)
209
+ inputs_quantized = symmetric_lsq_quantizer(inputs, thresholds, self.num_bits, self.sign, self.min_int, self.max_int, scale_factor)
210
+ return inputs_quantized
211
+
212
+ def convert2inferable(self) -> Union[ActivationPOTInferableQuantizer, ActivationSymmetricInferableQuantizer]:
213
+ """
214
+ Convert quantizer to inferable quantizer.
215
+
216
+ Returns:
217
+ A pytorch inferable quanizer object.
218
+ """
219
+ threshold_values = self.get_quantizer_variable(THRESHOLD_TENSOR).cpu().detach().numpy()
220
+ if self.power_of_two:
221
+ pot_threshold = np.power(2.0, np.ceil(np.log2(threshold_values)))
222
+ return ActivationPOTInferableQuantizer(num_bits=self.num_bits,
223
+ threshold=pot_threshold.tolist(),
224
+ signed=self.sign)
225
+ else:
226
+ return ActivationSymmetricInferableQuantizer(num_bits=self.num_bits,
227
+ threshold=threshold_values.tolist(),
228
+ signed=self.sign)
@@ -0,0 +1,223 @@
1
+ # Copyright 2023 Sony Semiconductor Israel, Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ from typing import Union
16
+ import numpy as np
17
+ import torch
18
+ import torch.nn as nn
19
+
20
+ from model_compression_toolkit.constants import RANGE_MAX, RANGE_MIN
21
+ from model_compression_toolkit.trainable_infrastructure.common.constants import FQ_MIN, FQ_MAX
22
+
23
+ from model_compression_toolkit.qat import TrainingMethod
24
+ from model_compression_toolkit.target_platform_capabilities.target_platform import QuantizationMethod
25
+ from mct_quantizers import QuantizationTarget, PytorchQuantizationWrapper
26
+ from model_compression_toolkit import constants as C
27
+
28
+ from model_compression_toolkit.qat.pytorch.quantizer.base_pytorch_qat_quantizer import BasePytorchQATTrainableQuantizer
29
+ from mct_quantizers import mark_quantizer
30
+ from model_compression_toolkit.qat.pytorch.quantizer.quantizer_utils import ste_round, grad_scale
31
+ from model_compression_toolkit.core.pytorch.utils import to_torch_tensor
32
+ from mct_quantizers.pytorch.quantizers import \
33
+ WeightsUniformInferableQuantizer, ActivationUniformInferableQuantizer
34
+ from model_compression_toolkit.trainable_infrastructure.common.trainable_quantizer_config import \
35
+ TrainableQuantizerWeightsConfig, TrainableQuantizerActivationConfig
36
+ from model_compression_toolkit.trainable_infrastructure.common.base_trainable_quantizer import VariableGroup
37
+ from model_compression_toolkit.qat.pytorch.quantizer.quantizer_utils import adjust_range_to_include_zero
38
+ from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import fix_range_to_include_zero
39
+
40
+
41
+
42
+ def uniform_lsq_quantizer(x: nn.Parameter,
43
+ min_range: nn.Parameter,
44
+ max_range: nn.Parameter,
45
+ num_bits: int,
46
+ min_int: int,
47
+ max_int: int,
48
+ scale_factor: float) -> Union[nn.Parameter, torch.Tensor]:
49
+ """
50
+ Uniform quantizer according to LSQ algorithm: https://arxiv.org/pdf/1902.08153.pdf
51
+ Args:
52
+ x: input to quantize
53
+ min_range: min range of quantization values
54
+ max_range: min range of quantization values
55
+ num_bits: number of bits for quantization
56
+ min_int: min clipping integer value
57
+ max_int: max clipping integer value
58
+ scale_factor: grad scale of LSQ algorithm
59
+ Returns:
60
+ A quantized tensor
61
+ """
62
+ a, b = adjust_range_to_include_zero(min_range, max_range, num_bits)
63
+ delta = (b - a) / (2 ** num_bits - 1)
64
+ delta_scaled = grad_scale(delta, scale_factor)
65
+ rounded = ste_round((x - a) / delta_scaled)
66
+ clipped = torch.clip(rounded, min=min_int, max=max_int)
67
+ quantized = delta_scaled * clipped + a
68
+ return quantized
69
+
70
+
71
+ @mark_quantizer(quantization_target=QuantizationTarget.Weights,
72
+ quantization_method=[QuantizationMethod.UNIFORM],
73
+ identifier=TrainingMethod.LSQ)
74
+ class LSQUniformWeightQATQuantizer(BasePytorchQATTrainableQuantizer):
75
+ """
76
+ Trainable constrained quantizer to quantize layer's weights.
77
+ """
78
+
79
+ def __init__(self, quantization_config: TrainableQuantizerWeightsConfig):
80
+ """
81
+ Initialize a LSQUniformWeightQATQuantizer object with parameters to use
82
+ for the quantization.
83
+
84
+ Args:
85
+ quantization_config: trainable quantizer config class
86
+ """
87
+ super().__init__(quantization_config)
88
+ self.num_bits = self.quantization_config.weights_n_bits
89
+ self.min_int = 0
90
+ self.max_int = 2 ** self.num_bits - 1
91
+ self.min_values = np.array(quantization_config.weights_quantization_params[RANGE_MIN])
92
+ self.max_values = np.array(quantization_config.weights_quantization_params[RANGE_MAX])
93
+ self.scale_factor = 1.0 / np.sqrt(self.max_int * self.min_values.size)
94
+
95
+ def initialize_quantization(self,
96
+ tensor_shape: torch.Size,
97
+ name: str,
98
+ layer: PytorchQuantizationWrapper):
99
+ """
100
+ Add quantizer parameters to the quantizer parameters dictionary
101
+
102
+ Args:
103
+ tensor_shape: tensor shape of the quantized tensor.
104
+ name: Tensor name.
105
+ layer: Layer to quantize.
106
+ """
107
+
108
+ # Add min and max variables to layer.
109
+ layer.register_parameter(name+"_"+FQ_MIN, nn.Parameter(to_torch_tensor(self.min_values), requires_grad=True))
110
+ layer.register_parameter(name+"_"+FQ_MAX, nn.Parameter(to_torch_tensor(self.max_values), requires_grad=True))
111
+
112
+ # Save the quantizer parameters for later calculations
113
+ self.add_quantizer_variable(FQ_MIN, layer.get_parameter(name+"_"+FQ_MIN), VariableGroup.QPARAMS)
114
+ self.add_quantizer_variable(FQ_MAX, layer.get_parameter(name+"_"+FQ_MAX), VariableGroup.QPARAMS)
115
+
116
+
117
+ def __call__(self,
118
+ inputs: nn.Parameter,
119
+ training: bool) -> torch.Tensor:
120
+ """
121
+ Quantize a tensor
122
+ Args:
123
+ inputs: Input tensor to quantize.
124
+ training: whether in training mode or not
125
+ Returns:
126
+ quantized tensor
127
+ """
128
+ min_range = self.get_quantizer_variable(FQ_MIN)
129
+ max_range = self.get_quantizer_variable(FQ_MAX)
130
+ weight_quantized = uniform_lsq_quantizer(inputs, min_range, max_range, self.num_bits, self.min_int, self.max_int, self.scale_factor)
131
+ return weight_quantized
132
+
133
+ def convert2inferable(self) -> WeightsUniformInferableQuantizer:
134
+ """
135
+ Convert quantizer to inferable quantizer.
136
+
137
+ Returns:
138
+ A pytorch inferable quanizer object.
139
+ """
140
+ min_range = self.get_quantizer_variable(FQ_MIN).cpu().detach().numpy()
141
+ max_range = self.get_quantizer_variable(FQ_MAX).cpu().detach().numpy()
142
+ min_range, max_range = fix_range_to_include_zero(min_range, max_range, self.num_bits)
143
+ return WeightsUniformInferableQuantizer(num_bits=self.num_bits,
144
+ min_range=min_range.tolist(),
145
+ max_range=max_range.tolist(),
146
+ per_channel=self.quantization_config.weights_per_channel_threshold,
147
+ channel_axis=self.quantization_config.weights_channels_axis)
148
+
149
+
150
+ @mark_quantizer(quantization_target=QuantizationTarget.Activation,
151
+ quantization_method=[QuantizationMethod.UNIFORM],
152
+ identifier=TrainingMethod.LSQ)
153
+ class LSQUniformActivationQATQuantizer(BasePytorchQATTrainableQuantizer):
154
+ """
155
+ Trainable constrained quantizer to quantize layer activations.
156
+ """
157
+
158
+ def __init__(self, quantization_config: TrainableQuantizerActivationConfig):
159
+ """
160
+ Initialize a LSQUniformActivationQATQuantizer object with parameters to use
161
+ for uniform quantization.
162
+
163
+ Args:
164
+ quantization_config: trainable quantizer config class
165
+ """
166
+ super().__init__(quantization_config)
167
+ self.num_bits = self.quantization_config.activation_n_bits
168
+ self.min_int = 0
169
+ self.max_int = 2 ** self.num_bits - 1
170
+ self.min_range = np.array([quantization_config.activation_quantization_params[C.RANGE_MIN]])
171
+ self.max_range = np.array([quantization_config.activation_quantization_params[C.RANGE_MAX]])
172
+
173
+ def initialize_quantization(self,
174
+ tensor_shape: torch.Size,
175
+ name: str,
176
+ layer: PytorchQuantizationWrapper):
177
+ """
178
+ Add quantizer parameters to the quantizer parameters dictionary
179
+
180
+ Args:
181
+ tensor_shape: tensor shape of the quantized tensor.
182
+ name: Tensor name.
183
+ layer: Layer to quantize.
184
+ """
185
+ layer.register_parameter(name+"_"+FQ_MIN, nn.Parameter(to_torch_tensor(self.min_range), requires_grad=True))
186
+ layer.register_parameter(name+"_"+FQ_MAX, nn.Parameter(to_torch_tensor(self.max_range), requires_grad=True))
187
+
188
+ # Save the quantizer parameters for later calculations
189
+ self.add_quantizer_variable(FQ_MIN, layer.get_parameter(name+"_"+FQ_MIN), VariableGroup.QPARAMS)
190
+ self.add_quantizer_variable(FQ_MAX, layer.get_parameter(name+"_"+FQ_MAX), VariableGroup.QPARAMS)
191
+
192
+ def __call__(self,
193
+ inputs: torch.Tensor,
194
+ training: bool = True) -> torch.Tensor:
195
+ """
196
+ Quantize a tensor.
197
+ Args:
198
+ inputs: Input tensor to quantize.
199
+ training: Whether the graph is in training mode.
200
+
201
+ Returns:
202
+ The quantized tensor.
203
+ """
204
+ min_range = self.get_quantizer_variable(FQ_MIN)
205
+ max_range = self.get_quantizer_variable(FQ_MAX)
206
+ n_channels = inputs.shape[1]
207
+ scale_factor = 1.0 / np.sqrt(self.max_int * n_channels)
208
+ inputs_quantized = uniform_lsq_quantizer(inputs, min_range, max_range, self.num_bits, self.min_int, self.max_int, scale_factor)
209
+ return inputs_quantized
210
+
211
+ def convert2inferable(self) -> ActivationUniformInferableQuantizer:
212
+ """
213
+ Convert quantizer to inferable quantizer.
214
+
215
+ Returns:
216
+ A pytorch inferable quanizer object.
217
+ """
218
+ min_range = self.get_quantizer_variable(FQ_MIN).cpu().detach().numpy()
219
+ max_range = self.get_quantizer_variable(FQ_MAX).cpu().detach().numpy()
220
+ min_range, max_range = fix_range_to_include_zero(min_range, max_range, self.num_bits)
221
+ return ActivationUniformInferableQuantizer(num_bits=self.num_bits,
222
+ min_range=min_range.tolist(),
223
+ max_range=max_range.tolist())
@@ -40,9 +40,22 @@ def ste_clip(x: torch.Tensor, min_val=-1.0, max_val=1.0) -> torch.Tensor:
40
40
  return (torch.clip(x, min=min_val, max=max_val) - x).detach() + x
41
41
 
42
42
 
43
- def fix_range_to_include_zero(range_min: torch.Tensor,
44
- range_max: torch.Tensor,
45
- n_bits: int) -> Tuple[torch.Tensor, torch.Tensor]:
43
+ def grad_scale(x: torch.Tensor, scale=1.0) -> torch.Tensor:
44
+ """
45
+ Gradient scale
46
+ Args:
47
+ x: input variable
48
+ scale: scale factor
49
+ Returns:
50
+ x in forward and x*scale in backward (for scaling the gradients).
51
+ """
52
+ x_scaled = x * scale
53
+ return (x - x_scaled).detach() + x_scaled
54
+
55
+
56
+ def adjust_range_to_include_zero(range_min: torch.Tensor,
57
+ range_max: torch.Tensor,
58
+ n_bits: int) -> Tuple[torch.Tensor, torch.Tensor]:
46
59
  """
47
60
  Adjusting the quantization range to include representation of 0.0 in the quantization grid.
48
61
  If quantization per-channel, then range_min and range_max should be tensors in the specific shape that allows
@@ -120,7 +133,7 @@ def uniform_quantizer(tensor_data: torch.Tensor,
120
133
  Quantized data.
121
134
  """
122
135
  # adjusts the quantization range so the quantization grid includes zero.
123
- a, b = fix_range_to_include_zero(range_min, range_max, n_bits)
136
+ a, b = adjust_range_to_include_zero(range_min, range_max, n_bits)
124
137
 
125
138
  # Compute the step size of quantized values.
126
139
  delta_tensor = (b - a) / (2 ** n_bits - 1)
@@ -0,0 +1,14 @@
1
+ # Copyright 2023 Sony Semiconductor Israel, Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  description-file = README.md
3
- version = 1.10.0.20231018-000358
3
+ version = 1.10.0.20231019-000424
4
4
 
5
5
  [egg_info]
6
6
  tag_build =