mct-nightly 1.10.0.20231205.post412__tar.gz → 1.10.0.20231206.post417__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 (461) hide show
  1. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/PKG-INFO +1 -1
  2. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/mct_nightly.egg-info/SOURCES.txt +1 -0
  4. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/framework_implementation.py +8 -0
  5. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/base_node.py +10 -1
  6. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +2 -2
  7. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +1 -1
  8. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +1 -1
  9. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +82 -5
  10. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +3 -0
  11. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +1 -3
  12. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/graph_prep_runner.py +1 -0
  13. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/constants.py +2 -0
  14. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +72 -2
  15. mct-nightly-1.10.0.20231206.post417/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +108 -0
  16. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/keras_implementation.py +10 -1
  17. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +6 -0
  18. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/setup.cfg +1 -1
  19. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/LICENSE.md +0 -0
  20. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/README.md +0 -0
  21. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/mct_nightly.egg-info/dependency_links.txt +0 -0
  22. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/mct_nightly.egg-info/requires.txt +0 -0
  23. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/mct_nightly.egg-info/top_level.txt +0 -0
  24. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/__init__.py +0 -0
  25. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/constants.py +0 -0
  26. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/__init__.py +0 -0
  27. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/analyzer.py +0 -0
  28. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/__init__.py +0 -0
  29. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  30. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  31. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  32. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  33. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  34. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  35. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  36. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  37. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  38. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/collectors/statistics_collector_generator.py +0 -0
  39. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/data_loader.py +0 -0
  40. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/defaultdict.py +0 -0
  41. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/framework_info.py +0 -0
  42. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  43. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  44. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  45. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  46. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  47. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  48. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  49. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  50. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  51. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  52. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  53. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  54. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  55. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  56. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  57. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  58. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  59. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  60. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  61. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/hessian/trace_hessian_calculator.py +0 -0
  62. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/hessian/trace_hessian_request.py +0 -0
  63. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  64. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  65. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  66. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  67. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  68. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  69. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  70. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  71. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  72. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  73. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  74. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  75. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  76. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/__init__.py +0 -0
  77. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi.py +0 -0
  78. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_aggregation_methods.py +0 -0
  79. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_data.py +0 -0
  80. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_functions_mapping.py +0 -0
  81. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_methods.py +0 -0
  82. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  83. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  84. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  85. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  86. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  87. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  88. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  89. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  90. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  91. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/model_collector.py +0 -0
  92. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/model_validation.py +0 -0
  93. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  94. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  95. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  96. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  97. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  98. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  99. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  100. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  101. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  102. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  103. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
  104. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_analyzer.py +0 -0
  105. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  106. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  107. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  108. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  109. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  110. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/kmeans_params.py +0 -0
  111. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
  112. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  113. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
  114. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  115. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  116. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
  117. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  118. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
  119. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
  120. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  121. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  122. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  123. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantizers/kmeans_quantizer.py +0 -0
  124. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  125. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  126. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  127. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  128. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
  129. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  130. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  131. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  132. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  133. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  134. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  135. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  136. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  137. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  138. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  139. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  140. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  141. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/user_info.py +0 -0
  142. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  143. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  144. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  145. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  146. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/exporter.py +0 -0
  147. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/__init__.py +0 -0
  148. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  149. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  150. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  151. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  152. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  153. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  154. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  155. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  156. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  157. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  158. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  159. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  160. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  161. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  162. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  163. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  164. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  165. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  166. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  167. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_relu_upper_bound.py +0 -0
  168. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  169. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  170. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  171. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  172. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  173. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  174. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  175. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  176. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/hessian/activation_trace_hessian_calculator_keras.py +0 -0
  177. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/hessian/trace_hessian_calculator_keras.py +0 -0
  178. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/hessian/weights_trace_hessian_calculator_keras.py +0 -0
  179. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  180. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  181. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/kpi_data_facade.py +0 -0
  182. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  183. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  184. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  185. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  186. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
  187. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  188. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  189. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  190. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  191. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  192. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  193. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  194. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  195. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  196. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  197. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
  198. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  199. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  200. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  201. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  202. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  203. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  204. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  205. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  206. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  207. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  208. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  209. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
  210. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  211. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  212. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  213. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  214. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  215. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  216. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  217. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  218. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  219. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  220. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  221. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  222. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  223. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  224. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/permute_call_method.py +0 -0
  225. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  226. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  227. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  228. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  229. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  230. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  231. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  232. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  233. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  234. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/hessian/activation_trace_hessian_calculator_pytorch.py +0 -0
  235. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/hessian/trace_hessian_calculator_pytorch.py +0 -0
  236. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/hessian/weights_trace_hessian_calculator_pytorch.py +0 -0
  237. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/kpi_data_facade.py +0 -0
  238. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  239. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  240. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  241. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  242. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  243. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  244. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  245. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  246. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  247. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  248. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  249. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  250. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  251. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  252. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  253. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/core/runner.py +0 -0
  254. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/__init__.py +0 -0
  255. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  256. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  257. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  258. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  259. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  260. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  261. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  262. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  263. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  264. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  265. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  266. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  267. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  268. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  269. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  270. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  271. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  272. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  273. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  274. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  275. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  276. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  277. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  278. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  279. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  280. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  281. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  282. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  283. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  284. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  285. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  286. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  287. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/__init__.py +0 -0
  288. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  289. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  290. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  291. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  292. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  293. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  294. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  295. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  296. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  297. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  298. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  299. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  300. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  301. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  302. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  303. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  304. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  305. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  306. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  307. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  308. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  309. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizers.py +0 -0
  310. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  311. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  312. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  313. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
  314. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  315. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizers.py +0 -0
  316. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  317. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/__init__.py +0 -0
  318. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  319. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  320. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  321. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  322. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  323. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  324. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  325. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  326. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  327. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  328. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  329. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  330. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  331. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  332. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  333. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  334. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
  335. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  336. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  337. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  338. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  339. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  340. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  341. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  342. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  343. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  344. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  345. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  346. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  347. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  348. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  349. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  350. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  351. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
  352. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  353. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  354. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  355. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  356. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  357. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  358. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/gptq/runner.py +0 -0
  359. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/legacy/__init__.py +0 -0
  360. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/legacy/keras_quantization_facade.py +0 -0
  361. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/legacy/pytorch_quantization_facade.py +0 -0
  362. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/logger.py +0 -0
  363. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/ptq/__init__.py +0 -0
  364. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  365. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  366. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  367. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  368. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/ptq/runner.py +0 -0
  369. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/__init__.py +0 -0
  370. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/common/__init__.py +0 -0
  371. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  372. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  373. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  374. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  375. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
  376. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  377. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  378. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  379. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  380. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  381. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  382. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  383. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  384. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  385. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  386. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  387. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
  388. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  389. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  390. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  391. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  392. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
  393. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  394. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  395. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  396. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  397. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  398. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  399. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
  400. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
  401. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
  402. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +0 -0
  403. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
  404. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/quantization_format.py +0 -0
  405. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
  406. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
  407. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
  408. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
  409. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
  410. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
  411. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
  412. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
  413. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
  414. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  415. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  416. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  417. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  418. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -0
  419. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  420. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
  421. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
  422. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
  423. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
  424. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -0
  425. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
  426. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
  427. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
  428. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -0
  429. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
  430. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
  431. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  432. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  433. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
  434. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  435. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
  436. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
  437. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
  438. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  439. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  440. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
  441. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  442. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
  443. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
  444. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
  445. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  446. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  447. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  448. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  449. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  450. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  451. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  452. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  453. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  454. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  455. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  456. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  457. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  458. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  459. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  460. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  461. {mct-nightly-1.10.0.20231205.post412 → mct-nightly-1.10.0.20231206.post417}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 1.10.0.20231205.post412
3
+ Version: 1.10.0.20231206.post417
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.20231205.post412
3
+ Version: 1.10.0.20231206.post417
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -167,6 +167,7 @@ model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm
167
167
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py
168
168
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py
169
169
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py
170
+ model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py
170
171
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py
171
172
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py
172
173
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_relu_upper_bound.py
@@ -235,6 +235,14 @@ class FrameworkImplementation(ABC):
235
235
  raise NotImplemented(f'{self.__class__.__name__} have to implement the '
236
236
  f'framework\'s get_linear_collapsing_substitution method.') # pragma: no cover
237
237
 
238
+ @abstractmethod
239
+ def get_op2d_add_const_collapsing_substitution(self) -> common.BaseSubstitution:
240
+ """
241
+ Returns: conv2d add const collapsing substitution
242
+ """
243
+ raise NotImplemented(f'{self.__class__.__name__} have to implement the '
244
+ f'framework\'s get_op2d_add_const_collapsing_substitution method.') # pragma: no cover
245
+
238
246
  @abstractmethod
239
247
  def get_substitutions_statistics_correction(self, quant_config: QuantizationConfig) -> \
240
248
  List[common.BaseSubstitution]:
@@ -79,7 +79,8 @@ class BaseNode:
79
79
  def type(self):
80
80
  """
81
81
  A function to get the node's layer_class op for convenient comparison
82
- :return: the node's layer_class
82
+ Returns:
83
+ the node's layer_class
83
84
  """
84
85
  return self.layer_class
85
86
 
@@ -130,6 +131,14 @@ class BaseNode:
130
131
  """
131
132
  return f'{self.type.__name__}:{self.name}'
132
133
 
134
+ def is_reused(self) -> bool:
135
+ """
136
+ Check whether the node is reused or not
137
+ Returns:
138
+ True if node is reused, else False
139
+ """
140
+ return self.reuse or self.reuse_group is not None
141
+
133
142
  def get_weights_by_keys(self, name: str) -> np.ndarray:
134
143
  """
135
144
  Get a node's weight by its name.
@@ -93,7 +93,7 @@ class BatchNormalizationFolding(common.BaseSubstitution):
93
93
 
94
94
  # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
95
95
  # we should skip the substitution.
96
- if conv_node.reuse or conv_node.reuse_group is not None:
96
+ if conv_node.is_reused():
97
97
  return graph
98
98
 
99
99
  bn_node = edge_nodes[1]
@@ -230,7 +230,7 @@ class BatchNormalizationForwardFolding(common.BaseSubstitution):
230
230
 
231
231
  # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
232
232
  # we should skip the substitution.
233
- if conv_node.reuse or conv_node.reuse_group is not None or bn_node.reuse or bn_node.reuse_group is not None:
233
+ if conv_node.is_reused() or bn_node.is_reused():
234
234
  return graph
235
235
 
236
236
  if len(graph.get_next_nodes(bn_node)) > 1 or len(graph.get_prev_nodes(conv_node)) > 1:
@@ -79,7 +79,7 @@ class BatchNormalizationReconstruction(common.BaseSubstitution):
79
79
 
80
80
  # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
81
81
  # we should skip the substitution.
82
- if source_node.reuse or source_node.reuse_group is not None:
82
+ if source_node.is_reused():
83
83
  for qc in source_node.candidates_quantization_cfg:
84
84
  qc.weights_quantization_cfg.weights_second_moment_correction = False
85
85
  return graph
@@ -102,7 +102,7 @@ class BatchNormalizationRefusing(common.BaseSubstitution):
102
102
 
103
103
  # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
104
104
  # we should skip the substitution.
105
- if source_node.reuse or source_node.reuse_group is not None:
105
+ if source_node.is_reused():
106
106
  Logger.exception("If the linear operator is part of a reused group we should skip the the BN folding "
107
107
  "substitution and SMC feature") # pragma: no cover
108
108
 
@@ -91,14 +91,11 @@ class Conv2DCollapsing(common.BaseSubstitution):
91
91
  Graph after applying the substitution.
92
92
  """
93
93
 
94
- first_node = edge_nodes[0]
95
- second_node = edge_nodes[1]
94
+ first_node, second_node, _ = edge_nodes
96
95
 
97
96
  # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
98
97
  # we should skip the substitution.
99
- if first_node.reuse or first_node.reuse_group is not None:
100
- return graph
101
- if second_node.reuse or second_node.reuse_group is not None:
98
+ if first_node.is_reused() or second_node.is_reused():
102
99
  return graph
103
100
 
104
101
  # If there is an extra connection between these two nodes skip the substitution
@@ -182,3 +179,83 @@ class Conv2DCollapsing(common.BaseSubstitution):
182
179
  assert num_edges_before_substition - len(graph.edges) == 1
183
180
 
184
181
  return graph
182
+
183
+
184
+ class Op2DAddConstCollapsing(common.BaseSubstitution):
185
+ """
186
+ Collapse Add-const into preceding Op2D (Not non-linear activation between them)
187
+ """
188
+ def __init__(self,
189
+ first_node: NodeOperationMatcher,
190
+ second_node: NodeOperationMatcher,
191
+ op2d_collapsing_fn: Callable,
192
+ bias_str: str,
193
+ use_bias_str: str,
194
+ layer_name_str: str = None):
195
+ """
196
+ Collapsing Add-const node (2nd node) to Op2D node (first node).
197
+ Args:
198
+ first_node: Node matcher for Op2d type nodes.
199
+ second_node: Node matcher for add type nodes.
200
+ op2d_collapsing_fn: Function for updating the convolution kernel and bias
201
+ bias_str: The framework specific attribute name of the convolution layer's bias.
202
+ use_bias_str: The framework specific attribute name of the convolution layer's bias flag.
203
+ layer_name_str: The framework specific attribute name of layer's name.
204
+ """
205
+ super().__init__(matcher_instance=EdgeMatcher(first_node, second_node))
206
+ self.op2d_collapsing_fn = op2d_collapsing_fn
207
+ self.bias_str = bias_str
208
+ self.use_bias_str = use_bias_str
209
+ self.layer_name_str = layer_name_str
210
+
211
+ def substitute(self,
212
+ graph: Graph,
213
+ edge_nodes: Tuple[BaseNode, BaseNode]) -> Graph:
214
+ """
215
+ Collapse linear layer into preceding linear layers.
216
+ Convolution condition:
217
+ |-------------------------| |------|
218
+ | Op2D | ---> | Add-const | -> | Op2D |
219
+ |-------------------------| |------|
220
+ Args:
221
+ graph: Graph we apply the substitution on.
222
+ edge_nodes: Tuple of linear node and add nodes
223
+ Returns:
224
+ Graph after applying the substitution.
225
+ """
226
+
227
+ first_node, second_node, _ = edge_nodes
228
+
229
+ # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
230
+ # we should skip the substitution.
231
+ if first_node.is_reused() or second_node.is_reused():
232
+ return graph
233
+
234
+ # If there is an extra connection between these two nodes skip the substitution
235
+ if len(graph.get_next_nodes(first_node)) > 1 or len(graph.get_prev_nodes(second_node)) > 1:
236
+ return graph
237
+
238
+ # New collapsed bias
239
+ bias = self.op2d_collapsing_fn(first_node, second_node, self.bias_str)
240
+
241
+ # New collapsed node
242
+ op2d_collapsed = copy.deepcopy(first_node)
243
+ op2d_collapsed_name = first_node.name + '_collapsed'
244
+ op2d_collapsed.name = op2d_collapsed_name
245
+ op2d_collapsed.framework_attr[self.use_bias_str] = True
246
+ op2d_collapsed.set_weights_by_keys(self.bias_str, bias)
247
+
248
+ if self.layer_name_str is not None:
249
+ op2d_collapsed.framework_attr[self.layer_name_str] = op2d_collapsed_name
250
+
251
+ # Update graph
252
+ graph.add_node(op2d_collapsed)
253
+ graph.reconnect_out_edges(current_node=second_node, new_node=op2d_collapsed)
254
+ graph.reconnect_in_edges(current_node=first_node, new_node=op2d_collapsed)
255
+ graph.replace_output_node(current_node=second_node, new_node=op2d_collapsed)
256
+
257
+ graph.remove_edge(first_node, second_node)
258
+ graph.remove_node(first_node)
259
+ graph.remove_node(second_node)
260
+
261
+ return graph
@@ -30,6 +30,9 @@ def linear_collapsing_substitute(graph: common.Graph,
30
30
  Returns:
31
31
  Transformed graph after applying all linear collapsing substitutions.
32
32
  """
33
+ # TODO: remove this if after adding Op2d-add_const collapse substitution in PyTorch
34
+ if linear_collapsing_substitution is None:
35
+ return graph
33
36
  matched_nodes = graph.filter(linear_collapsing_substitution.matcher_instance)
34
37
  matched_nodes_list = []
35
38
  match_indicator = True
@@ -63,9 +63,7 @@ class ResidualCollapsing(common.BaseSubstitution):
63
63
 
64
64
  # If the linear operator is part of a reused group (it is the "base" node, or a reused node),
65
65
  # we should skip the substitution.
66
- if first_node.reuse or first_node.reuse_group is not None:
67
- return graph
68
- if second_node.reuse or second_node.reuse_group is not None:
66
+ if first_node.is_reused() or second_node.is_reused():
69
67
  return graph
70
68
 
71
69
  # Check if convolution and residual satisfy the collapsing conditions, otherwise skip substitution
@@ -129,6 +129,7 @@ def get_finalized_graph(initial_graph: Graph,
129
129
  transformed_graph = substitute(graph, fw_impl.get_substitutions_pre_statistics_collection(quant_config))
130
130
  if quant_config.linear_collapsing:
131
131
  transformed_graph = linear_collapsing_substitute(transformed_graph, fw_impl.get_linear_collapsing_substitution())
132
+ transformed_graph = linear_collapsing_substitute(transformed_graph, fw_impl.get_op2d_add_const_collapsing_substitution())
132
133
  if quant_config.residual_collapsing:
133
134
  transformed_graph = substitute(transformed_graph, fw_impl.get_residual_collapsing_substitution())
134
135
 
@@ -53,6 +53,8 @@ DIMS = 'dims'
53
53
  TARGET_SHAPE = 'target_shape'
54
54
  TRANSPOSE_A = 'transpose_a'
55
55
  TRANSPOSE_B = 'transpose_b'
56
+ ADJOINT_A = 'adjoint_a'
57
+ ADJOINT_B = 'adjoint_b'
56
58
  DEPTH_MULTIPLIER = 'depth_multiplier'
57
59
  DEPTHWISE_INITIALIZER = 'depthwise_initializer'
58
60
  DEPTHWISE_REGULARIZER = 'depthwise_regularizer'
@@ -15,10 +15,14 @@
15
15
  from typing import Tuple
16
16
  import numpy as np
17
17
  import tensorflow as tf
18
- from tensorflow.keras.layers import Conv2D
18
+ if tf.__version__ < "2.6":
19
+ from tensorflow.keras.layers import Conv2D, DepthwiseConv2D, Conv2DTranspose, Dense
20
+ else:
21
+ from keras.layers import Conv2D, DepthwiseConv2D, Conv2DTranspose, Dense
22
+
19
23
  from model_compression_toolkit.core.common import BaseNode
20
24
  from model_compression_toolkit.core.common.graph.graph_matchers import NodeOperationMatcher, NodeFrameworkAttrMatcher
21
- from model_compression_toolkit.core.common.substitutions.linear_collapsing import Conv2DCollapsing
25
+ from model_compression_toolkit.core.common.substitutions.linear_collapsing import Conv2DCollapsing, Op2DAddConstCollapsing
22
26
  from model_compression_toolkit.core.keras.constants import KERNEL, KERNEL_SIZE, STRIDES, DILATIONS, LINEAR, \
23
27
  ACTIVATION, BIAS, USE_BIAS, LAYER_NAME, FILTERS, PADDING, GROUPS, DATA_FORMAT
24
28
  from model_compression_toolkit.logger import Logger
@@ -123,3 +127,69 @@ def keras_linear_collapsing() -> Conv2DCollapsing:
123
127
  FILTERS,
124
128
  data_format_str=DATA_FORMAT,
125
129
  layer_name_str=LAYER_NAME)
130
+
131
+
132
+ def op2d_add_const_collapsing_node_matchers() -> Tuple[NodeOperationMatcher, NodeOperationMatcher]:
133
+ """
134
+ Function generates matchers for matching:
135
+ (Op2D, Add(const)) -> Op2D. (Op2D is one of [DepthwiseConv2D, Conv2D, Conv2DTranspose, Dense)
136
+ Returns:
137
+ Matcher for Op2D followed by Add const
138
+ """
139
+ first_node = NodeOperationMatcher(DepthwiseConv2D) | \
140
+ NodeOperationMatcher(Conv2D) | \
141
+ NodeOperationMatcher(Conv2DTranspose) | \
142
+ NodeOperationMatcher(Dense)
143
+ second_node = NodeOperationMatcher(tf.math.add)
144
+ return first_node, second_node
145
+
146
+
147
+ def op2d_add_const_collapsing_fn(op2d_node: BaseNode,
148
+ add_node: BaseNode,
149
+ bias_str: str) -> np.ndarray:
150
+ """
151
+ Collapsing Add-Const to previous node's bias
152
+ Args:
153
+ op2d_node: Op2d layer node
154
+ add_node: Add layer to collapse
155
+ bias_str: The framework specific attribute name of the convolution layer's bias.
156
+ Returns:
157
+ The modified conv layer node's bias
158
+ """
159
+ bias = op2d_node.get_weights_by_keys(bias_str)
160
+
161
+ # read constant from add node
162
+ if len(add_node.op_call_args) > 0:
163
+ const = add_node.op_call_args[0]
164
+ elif 'y' in add_node.op_call_kwargs:
165
+ const = add_node.op_call_kwargs['y']
166
+ else:
167
+ Logger.error(f'Unable to read constant from add node: {add_node.name}') # pragma: no cover
168
+
169
+ # convert constant to numpy array
170
+ if isinstance(const, tf.Tensor):
171
+ const = const.numpy()
172
+ elif isinstance(const, list):
173
+ const = np.array(const)
174
+ else:
175
+ Logger.error(f'Unable to convert constant to numpy array: {add_node.name}') # pragma: no cover
176
+
177
+ # return new bias
178
+ if bias is None:
179
+ return const
180
+ else:
181
+ return const + bias
182
+
183
+
184
+ def keras_op2d_add_const_collapsing() -> Op2DAddConstCollapsing:
185
+ """
186
+ Returns:
187
+ An Op2DCollapsing initialized for Keras models.
188
+ """
189
+ first_node, second_node = op2d_add_const_collapsing_node_matchers()
190
+ return Op2DAddConstCollapsing(first_node,
191
+ second_node,
192
+ op2d_add_const_collapsing_fn,
193
+ BIAS,
194
+ USE_BIAS,
195
+ layer_name_str=LAYER_NAME)
@@ -0,0 +1,108 @@
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
+
16
+ import numpy as np
17
+ import tensorflow as tf
18
+ from model_compression_toolkit.logger import Logger
19
+ from model_compression_toolkit.core import common
20
+ from model_compression_toolkit.core.common.graph.base_graph import Graph
21
+ from model_compression_toolkit.core.common.graph.graph_matchers import NodeOperationMatcher
22
+ from model_compression_toolkit.core.common.graph.base_node import BaseNode
23
+ from model_compression_toolkit.core.common.graph.functional_node import FunctionalNode
24
+ from model_compression_toolkit.core.keras.constants import TRANSPOSE_A, TRANSPOSE_B, \
25
+ ADJOINT_A, ADJOINT_B, UNITS, USE_BIAS, KERNEL
26
+
27
+
28
+ class MatmulToDenseSubstitution(common.BaseSubstitution):
29
+ """
30
+ Replace a linear layer that has an activation function, with two nodes: same linear layer without
31
+ an activation function, and a new activation layer to replace the function the linear node had.
32
+ """
33
+
34
+ def __init__(self):
35
+ """
36
+ Matches: tf.linalg.matmul
37
+ """
38
+ super().__init__(matcher_instance=NodeOperationMatcher(tf.linalg.matmul))
39
+
40
+ def substitute(self,
41
+ graph: Graph,
42
+ matmul_node: FunctionalNode) -> Graph:
43
+ """
44
+ Replace tf.linalg.matmul with Tensor and const with Dense layer
45
+
46
+ Args:
47
+ graph: Graph we apply the substitution on.
48
+ matmul_node: Node to replace.
49
+
50
+ Returns:
51
+ Graph after applying the substitution.
52
+ """
53
+
54
+ if len(graph.get_prev_nodes(matmul_node)) > 1:
55
+ # matmul of 2 activation tensors -> can't replace with Dense layer
56
+ return graph
57
+
58
+ if matmul_node.framework_attr.get(ADJOINT_A, False) or matmul_node.framework_attr.get(ADJOINT_B, False):
59
+ # MCT doesn't support complex tensors
60
+ return graph
61
+
62
+ if matmul_node.framework_attr.get(TRANSPOSE_A, False):
63
+ # first input should be an activation tensor with batch axis, that shouldn't be transposed
64
+ return graph
65
+
66
+ # read const from matmul inputs
67
+ if len(matmul_node.op_call_args) > 0:
68
+ w = matmul_node.op_call_args[0]
69
+ elif 'b' in matmul_node.op_call_kwargs:
70
+ w = matmul_node.op_call_kwargs['b']
71
+ else:
72
+ Logger.error(f"Matmul substitution: can't locate weight for node {matmul_node.name}") # pragma: no cover
73
+
74
+ # Convert weight const to numpy array
75
+ if isinstance(w, tf.Tensor):
76
+ w = w.numpy()
77
+ elif isinstance(w, list):
78
+ w = np.array(w)
79
+ elif not isinstance(w, np.ndarray):
80
+ Logger.error(f'Unable to convert constant to numpy array: {matmul_node.name}') # pragma: no cover
81
+
82
+ if len(w.shape) != 2:
83
+ # weight tensor should be of shape (Cin, Cout)
84
+ return graph
85
+
86
+ # transpose const if "transpose_b" flag is True
87
+ if matmul_node.op_call_kwargs.get(TRANSPOSE_B, False) or (
88
+ len(matmul_node.op_call_args) >= 3 and matmul_node.op_call_args[2]):
89
+ w = w.transpose()
90
+
91
+ dense_node = BaseNode(matmul_node.name,
92
+ {UNITS: w.shape[1], USE_BIAS: False},
93
+ matmul_node.input_shape, matmul_node.output_shape,
94
+ {KERNEL: w}, tf.keras.layers.Dense,
95
+ reuse=matmul_node.reuse, reuse_group=matmul_node.reuse_group)
96
+
97
+ graph.add_node(dense_node)
98
+ graph.reconnect_in_edges(current_node=matmul_node,
99
+ new_node=dense_node)
100
+ graph.reconnect_out_edges(current_node=matmul_node,
101
+ new_node=dense_node)
102
+ graph.replace_output_node(current_node=matmul_node,
103
+ new_node=dense_node)
104
+ graph.remove_node(matmul_node)
105
+
106
+ return graph
107
+
108
+
@@ -68,6 +68,8 @@ from model_compression_toolkit.core.common.user_info import UserInformation
68
68
  from model_compression_toolkit.core.keras.default_framework_info import DEFAULT_KERAS_INFO
69
69
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.activation_decomposition import \
70
70
  ActivationDecomposition
71
+ from model_compression_toolkit.core.keras.graph_substitutions.substitutions.matmul_substitution import \
72
+ MatmulToDenseSubstitution
71
73
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.softmax_shift import \
72
74
  keras_softmax_shift
73
75
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.batchnorm_folding import \
@@ -75,7 +77,7 @@ from model_compression_toolkit.core.keras.graph_substitutions.substitutions.batc
75
77
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.batchnorm_refusing import \
76
78
  keras_batchnorm_refusing
77
79
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.linear_collapsing import \
78
- keras_linear_collapsing
80
+ keras_linear_collapsing, keras_op2d_add_const_collapsing
79
81
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.residual_collapsing import \
80
82
  keras_residual_collapsing
81
83
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.input_scaling import InputScaling, \
@@ -260,6 +262,7 @@ class KerasImplementation(FrameworkImplementation):
260
262
 
261
263
  """
262
264
  return [SeparableConvDecomposition(),
265
+ MatmulToDenseSubstitution(),
263
266
  MultiHeadAttentionDecomposition(),
264
267
  ActivationDecomposition(),
265
268
  DwconvToConv()]
@@ -311,6 +314,12 @@ class KerasImplementation(FrameworkImplementation):
311
314
  """
312
315
  return keras_linear_collapsing()
313
316
 
317
+ def get_op2d_add_const_collapsing_substitution(self) -> common.BaseSubstitution:
318
+ """
319
+ Returns: Op2d add-const collapsing substitution
320
+ """
321
+ return keras_op2d_add_const_collapsing()
322
+
314
323
  def get_substitutions_post_statistics_collection(self, quant_config: QuantizationConfig) \
315
324
  -> List[common.BaseSubstitution]:
316
325
  """
@@ -289,6 +289,12 @@ class PytorchImplementation(FrameworkImplementation):
289
289
  """
290
290
  return pytorch_linear_collapsing()
291
291
 
292
+ def get_op2d_add_const_collapsing_substitution(self) -> common.BaseSubstitution:
293
+ """
294
+ Returns: None, as Op2d add-const substitution is not supported in torch yet
295
+ """
296
+ return None
297
+
292
298
  def get_substitutions_post_statistics_collection(self,
293
299
  quant_config: QuantizationConfig) -> List[common.BaseSubstitution]:
294
300
  """
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  description-file = README.md
3
- version = 1.10.0.20231205-000412
3
+ version = 1.10.0.20231206-000417
4
4
 
5
5
  [egg_info]
6
6
  tag_build =