mct-nightly 2.0.0.20240408.430__tar.gz → 2.0.0.20240410.422__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 (483) hide show
  1. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/PKG-INFO +1 -1
  2. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/mct_nightly.egg-info/SOURCES.txt +2 -0
  4. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/__init__.py +1 -1
  5. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/analyzer.py +22 -12
  6. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +17 -15
  7. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_config.py +3 -1
  8. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +5 -4
  9. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/similarity_analyzer.py +4 -1
  10. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +31 -4
  11. mct-nightly-2.0.0.20240410.422/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +66 -0
  12. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/keras_implementation.py +6 -3
  13. mct-nightly-2.0.0.20240410.422/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +69 -0
  14. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +4 -0
  15. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/gptq_training.py +6 -2
  16. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantization_facade.py +10 -1
  17. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/gptq_training.py +6 -2
  18. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +9 -1
  19. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/ptq/keras/quantization_facade.py +22 -5
  20. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +28 -9
  21. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/LICENSE.md +0 -0
  22. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/README.md +0 -0
  23. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/mct_nightly.egg-info/dependency_links.txt +0 -0
  24. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/mct_nightly.egg-info/requires.txt +0 -0
  25. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/mct_nightly.egg-info/top_level.txt +0 -0
  26. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/constants.py +0 -0
  27. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/__init__.py +0 -0
  28. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/__init__.py +0 -0
  29. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  30. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  31. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  32. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  33. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  34. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  35. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  36. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  37. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  38. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  39. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/framework_info.py +0 -0
  40. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  41. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  42. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  43. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
  44. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
  45. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  46. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
  47. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  48. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  49. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  50. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  51. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  52. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  53. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  54. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  55. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  56. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  57. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  58. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  59. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  60. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/hessian/trace_hessian_calculator.py +0 -0
  61. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/hessian/trace_hessian_request.py +0 -0
  62. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  63. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  64. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  65. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  66. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  67. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  68. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  69. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  70. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  71. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  72. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  73. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  74. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  75. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  76. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  77. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  78. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
  79. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
  80. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
  81. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py +0 -0
  82. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py +0 -0
  83. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py +0 -0
  84. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  85. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  86. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  87. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  88. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  89. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  90. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/model_collector.py +0 -0
  91. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/model_validation.py +0 -0
  92. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  93. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  94. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  95. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
  96. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  97. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
  98. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
  99. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
  100. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
  101. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
  102. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
  103. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
  104. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
  105. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
  106. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
  107. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
  108. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
  109. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
  110. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
  111. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
  112. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
  113. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
  114. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  115. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  116. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  117. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  118. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  119. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  120. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  121. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  122. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  123. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +0 -0
  124. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  125. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
  126. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  127. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  128. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
  129. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  130. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
  131. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
  132. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  133. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  134. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  135. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  136. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  137. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  138. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  139. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  140. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  141. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  142. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  143. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  144. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  145. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  146. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  147. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  148. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  149. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  150. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  151. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  152. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  153. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  154. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  155. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  156. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/user_info.py +0 -0
  157. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  158. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  159. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  160. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  161. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/__init__.py +0 -0
  162. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  163. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  164. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  165. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  166. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
  167. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  168. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  169. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/constants.py +0 -0
  170. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  171. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  172. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  173. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  174. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  175. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  176. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  177. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  178. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  179. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  180. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  181. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
  182. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  183. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  184. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  185. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  186. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  187. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  188. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  189. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  190. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  191. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  192. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/hessian/activation_trace_hessian_calculator_keras.py +0 -0
  193. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/hessian/trace_hessian_calculator_keras.py +0 -0
  194. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/hessian/weights_trace_hessian_calculator_keras.py +0 -0
  195. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  196. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
  197. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  198. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  199. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  200. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
  201. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +0 -0
  202. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  203. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
  204. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  205. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  206. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  207. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/common.py +0 -0
  208. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  209. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  210. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  211. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  212. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  213. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  214. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
  215. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  216. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
  217. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  218. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  219. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
  220. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  221. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  222. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  223. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  224. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  225. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  226. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  227. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
  228. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  229. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  230. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  231. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  232. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  233. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  234. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  235. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  236. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
  237. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  238. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  239. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
  240. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
  241. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
  242. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
  243. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  244. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/permute_call_method.py +0 -0
  245. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  246. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  247. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
  248. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  249. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  250. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  251. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  252. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  253. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  254. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/hessian/activation_trace_hessian_calculator_pytorch.py +0 -0
  255. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/hessian/trace_hessian_calculator_pytorch.py +0 -0
  256. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/hessian/weights_trace_hessian_calculator_pytorch.py +0 -0
  257. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  258. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  259. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  260. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
  261. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +0 -0
  262. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
  263. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
  264. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  265. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  266. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  267. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  268. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  269. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  270. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  271. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
  272. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  273. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  274. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  275. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  276. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/core/runner.py +0 -0
  277. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/__init__.py +0 -0
  278. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  279. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  280. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  281. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  282. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  283. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  284. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  285. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  286. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  287. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  288. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  289. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  290. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  291. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  292. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  293. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  294. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  295. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  296. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  297. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  298. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  299. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  300. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  301. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  302. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  303. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  304. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  305. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  306. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  307. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  308. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  309. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  310. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/defaultdict.py +0 -0
  311. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/__init__.py +0 -0
  312. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  313. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  314. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  315. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
  316. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  317. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  318. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  319. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  320. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  321. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  322. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  323. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
  324. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  325. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  326. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  327. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  328. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  329. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  330. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  331. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
  332. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
  333. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  334. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  335. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
  336. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  337. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  338. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  339. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  340. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
  341. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  342. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  343. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/__init__.py +0 -0
  344. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  345. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  346. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  347. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  348. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  349. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  350. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  351. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  352. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  353. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  354. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  355. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  356. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  357. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  358. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
  359. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  360. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  361. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  362. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  363. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  364. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  365. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  366. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  367. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  368. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  369. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  370. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  371. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  372. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  373. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
  374. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  375. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  376. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  377. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  378. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  379. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  380. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/gptq/runner.py +0 -0
  381. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/logger.py +0 -0
  382. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/pruning/__init__.py +0 -0
  383. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
  384. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
  385. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
  386. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
  387. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/ptq/__init__.py +0 -0
  388. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  389. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  390. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/ptq/runner.py +0 -0
  391. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/__init__.py +0 -0
  392. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/common/__init__.py +0 -0
  393. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  394. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  395. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  396. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  397. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
  398. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  399. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  400. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  401. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  402. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  403. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  404. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  405. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  406. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  407. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  408. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  409. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
  410. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  411. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  412. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  413. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  414. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
  415. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  416. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  417. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  418. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  419. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  420. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  421. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
  422. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
  423. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
  424. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +0 -0
  425. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
  426. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
  427. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
  428. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
  429. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
  430. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
  431. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
  432. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
  433. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
  434. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
  435. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  436. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  437. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  438. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  439. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -0
  440. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  441. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
  442. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
  443. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
  444. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
  445. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -0
  446. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
  447. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
  448. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
  449. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -0
  450. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
  451. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
  452. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  453. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  454. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
  455. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  456. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
  457. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
  458. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
  459. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  460. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  461. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
  462. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  463. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
  464. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
  465. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
  466. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  467. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  468. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  469. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  470. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  471. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  472. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  473. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  474. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  475. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  476. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  477. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  478. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  479. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  480. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  481. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  482. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/setup.cfg +0 -0
  483. {mct-nightly-2.0.0.20240408.430 → mct-nightly-2.0.0.20240410.422}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.0.0.20240408.430
3
+ Version: 2.0.0.20240410.422
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.0.0.20240408.430
3
+ Version: 2.0.0.20240410.422
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -175,6 +175,7 @@ model_compression_toolkit/core/keras/graph_substitutions/substitutions/activatio
175
175
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py
176
176
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py
177
177
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py
178
+ model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py
178
179
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py
179
180
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py
180
181
  model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py
@@ -237,6 +238,7 @@ model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init_
237
238
  model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py
238
239
  model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py
239
240
  model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py
241
+ model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py
240
242
  model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py
241
243
  model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py
242
244
  model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py
@@ -27,4 +27,4 @@ from model_compression_toolkit import data_generation
27
27
  from model_compression_toolkit import pruning
28
28
  from model_compression_toolkit.trainable_infrastructure.keras.load_model import keras_load_quantized_model
29
29
 
30
- __version__ = "2.0.0.20240408.000430"
30
+ __version__ = "2.0.0.20240410.000422"
@@ -30,7 +30,8 @@ from model_compression_toolkit.logger import Logger
30
30
 
31
31
  def analyzer_model_quantization(representative_data_gen: Callable,
32
32
  tb_w: TensorboardWriter,
33
- tg: Graph,
33
+ float_graph: Graph,
34
+ quantized_graph: Graph,
34
35
  fw_impl: FrameworkImplementation,
35
36
  fw_info: FrameworkInfo):
36
37
  """
@@ -41,23 +42,32 @@ def analyzer_model_quantization(representative_data_gen: Callable,
41
42
  Args:
42
43
  representative_data_gen: Dataset used for calibration.
43
44
  tb_w: TensorBoardWriter object to log events.
44
- tg: Graph of quantized model.
45
+ float_graph: Graph of float model.
46
+ quantized_graph: Graph of quantized model.
45
47
  fw_impl: FrameworkImplementation object with a specific framework methods implementation.
46
48
  fw_info: Information needed for quantization about the specific framework.
47
49
 
48
50
  """
49
51
  if tb_w is not None:
50
- visual = NNVisualizer(tg,
52
+ visual = NNVisualizer(float_graph,
53
+ quantized_graph,
51
54
  fw_impl=fw_impl,
52
55
  fw_info=fw_info)
53
-
54
- for i, _data in enumerate(representative_data_gen()):
55
- if i >= NUM_SAMPLES_DISTANCE_TENSORBOARD:
56
- break
57
- figure = visual.plot_distance_graph(_data,
58
- distance_fn=compute_cs,
59
- convert_to_range=lambda a: 1 - 2 * a)
60
- tb_w.add_figure(figure, f'similarity_distance_sample_{i}')
56
+ if not visual.has_compare_points():
57
+ Logger.error(f'No comparing points were found to plot analyze similarity.')
61
58
  else:
62
- Logger.warning(f'Not enough batches in representative dataset to generate {NUM_SAMPLES_DISTANCE_TENSORBOARD} figures')
59
+ visualized_samples = 0
60
+ for _data in representative_data_gen():
61
+ batch_size = _data[0].shape[0]
62
+ for sample_index in range(batch_size):
63
+ if visualized_samples >= NUM_SAMPLES_DISTANCE_TENSORBOARD:
64
+ break
65
+ figure = visual.plot_distance_graph(_data,
66
+ sample_index=sample_index,
67
+ distance_fn=compute_cs,
68
+ convert_to_range=lambda a: 1 - 2 * a)
69
+ tb_w.add_figure(figure, f'similarity_distance_sample_{visualized_samples}')
70
+ visualized_samples += 1
71
+ if visualized_samples < NUM_SAMPLES_DISTANCE_TENSORBOARD:
72
+ Logger.error(f'Not enough batches in representative dataset to generate {NUM_SAMPLES_DISTANCE_TENSORBOARD} figures')
63
73
  tb_w.close()
@@ -41,24 +41,24 @@ class BaseNodeQuantizationConfig(object):
41
41
  Base class for node quantization configuration
42
42
  """
43
43
 
44
- def set_quant_config_attr(self, parameter_name: str, parameter_value: Any,
44
+ def set_quant_config_attr(self, config_parameter_name: str, config_parameter_value: Any,
45
45
  *args: List[Any], **kwargs: Dict[str, Any]):
46
46
  """
47
47
  Changes a BaseNodeQuantizationConfig's parameter.
48
48
  Note that arg and kwargs are only to allow clean override in the child classes.
49
49
 
50
50
  Args:
51
- parameter_name: parameter name to change.
52
- parameter_value: parameter value to change.
51
+ config_parameter_name: parameter name to change.
52
+ config_parameter_value: parameter value to change.
53
53
  args: A list of additional arguments.
54
54
  kwargs: A dictionary with additional key arguments.
55
55
 
56
56
  """
57
57
 
58
- if hasattr(self, parameter_name):
59
- setattr(self, parameter_name, parameter_value)
58
+ if hasattr(self, config_parameter_name):
59
+ setattr(self, config_parameter_name, config_parameter_value)
60
60
  else:
61
- Logger.warning(f"Parameter {parameter_name} could not be found in the node quantization config and "
61
+ Logger.warning(f"Parameter {config_parameter_name} could not be found in the node quantization config and "
62
62
  f"was not updated!")
63
63
 
64
64
  def __repr__(self) -> str:
@@ -106,6 +106,7 @@ class NodeActivationQuantizationConfig(BaseNodeQuantizationConfig):
106
106
  self.z_threshold = qc.z_threshold
107
107
  self.shift_negative_ratio = qc.shift_negative_ratio
108
108
  self.shift_negative_threshold_recalculation = qc.shift_negative_threshold_recalculation
109
+ self.concat_threshold_update = qc.concat_threshold_update
109
110
 
110
111
  def quantize_node_output(self,
111
112
  tensors: Any) -> Any:
@@ -219,7 +220,7 @@ class NodeActivationQuantizationConfig(BaseNodeQuantizationConfig):
219
220
  self.shift_negative_activation_correction == other.shift_negative_activation_correction and \
220
221
  self.z_threshold == other.z_threshold and \
221
222
  self.shift_negative_ratio == other.shift_negative_ratio and \
222
- self.shift_negative_threshold_recalculation == other.shift_negative_threshold_recalculation
223
+ self.shift_negative_threshold_recalculation == other.shift_negative_threshold_recalculation
223
224
 
224
225
  def __hash__(self):
225
226
  return hash((self.activation_quantization_fn,
@@ -521,7 +522,7 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
521
522
  f"{list(attrs_with_name.keys())}.")
522
523
  return attrs_with_name
523
524
 
524
- def set_quant_config_attr(self, parameter_name: str, parameter_value: Any, attr_name: str = None,
525
+ def set_quant_config_attr(self, config_parameter_name: str, config_parameter_value: Any, attr_name: str = None,
525
526
  *args: List[Any], **kwargs: Dict[str, Any]):
526
527
  """
527
528
  This method overrides the parent class set_quant_config_attr to enable setting a specific weights
@@ -529,26 +530,27 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
529
530
 
530
531
  Args:
531
532
  attr_name: attribute name to change.
532
- parameter_name: parameter name to change.
533
- parameter_value: parameter value to change.
533
+ config_parameter_name: parameter name to change.
534
+ config_parameter_value: parameter value to change.
534
535
  args: A list of additional arguments.
535
536
  kwargs: A dictionary with additional key arguments.
536
537
 
537
538
  """
538
539
 
539
540
  if attr_name is None:
540
- super(NodeWeightsQuantizationConfig, self).set_quant_config_attr(parameter_name, parameter_value,
541
+ super(NodeWeightsQuantizationConfig, self).set_quant_config_attr(config_parameter_name,
542
+ config_parameter_value,
541
543
  *args, **kwargs)
542
544
  else:
543
545
  if self.has_attribute_config(attr_name):
544
546
  attr_cfg = self.get_attr_config(attr_name)
545
- if hasattr(attr_cfg, parameter_name):
546
- setattr(attr_cfg, parameter_name, parameter_value)
547
+ if hasattr(attr_cfg, config_parameter_name):
548
+ setattr(attr_cfg, config_parameter_name, config_parameter_value)
547
549
  else:
548
- Logger.warning(f"Parameter {parameter_name} could not be found in the node quantization config of "
550
+ Logger.warning(f"Parameter {config_parameter_name} could not be found in the node quantization config of "
549
551
  f"weights attribute {attr_name} and was not updated!")
550
552
  else:
551
- Logger.error(f"Weights attribute {attr_name} could not be found to set parameter {parameter_name}.")
553
+ Logger.error(f"Weights attribute {attr_name} could not be found to set parameter {config_parameter_name}.")
552
554
 
553
555
  def __eq__(self, other: Any) -> bool:
554
556
  """
@@ -62,7 +62,8 @@ class QuantizationConfig:
62
62
  residual_collapsing: bool = True,
63
63
  shift_negative_ratio: float = 0.05,
64
64
  shift_negative_threshold_recalculation: bool = False,
65
- shift_negative_params_search: bool = False):
65
+ shift_negative_params_search: bool = False,
66
+ concat_threshold_update: bool = False):
66
67
  """
67
68
  Class to wrap all different parameters the library quantize the input model according to.
68
69
 
@@ -117,6 +118,7 @@ class QuantizationConfig:
117
118
  self.shift_negative_ratio = shift_negative_ratio
118
119
  self.shift_negative_threshold_recalculation = shift_negative_threshold_recalculation
119
120
  self.shift_negative_params_search = shift_negative_params_search
121
+ self.concat_threshold_update = concat_threshold_update
120
122
 
121
123
  def __repr__(self):
122
124
  return str(self.__dict__)
@@ -23,7 +23,7 @@ from model_compression_toolkit.core.common.quantization.quantize_node import get
23
23
  from model_compression_toolkit.logger import Logger
24
24
 
25
25
 
26
- def quantize_graph_weights(graph: Graph) -> Graph:
26
+ def quantize_graph_weights(graph_to_quantize: Graph) -> Graph:
27
27
  """
28
28
  Get a graph representing a model, and quantize its nodes' weights.
29
29
  Each node is quantized according to the passed framework info and quantization configuration.
@@ -31,12 +31,13 @@ def quantize_graph_weights(graph: Graph) -> Graph:
31
31
  is calculated and subtracted from the original node's bias. The graph is quantized in-place.
32
32
 
33
33
  Args:
34
- graph: Graph to quantize its nodes.
34
+ graph_to_quantize: Graph to quantize its nodes.
35
35
 
36
36
  """
37
+ _quantized_graph = copy.deepcopy(graph_to_quantize)
37
38
  # Iterate over nodes in the graph and quantize each node's weights and activations
38
39
  # (according to operators groups in framework info).
39
- for n in graph.nodes():
40
+ for n in _quantized_graph.nodes():
40
41
  for attr in n.get_node_weights_attributes():
41
42
  if n.is_weights_quantization_enabled(attr):
42
43
  quantized_attr, io_channels_axes = \
@@ -51,4 +52,4 @@ def quantize_graph_weights(graph: Graph) -> Graph:
51
52
  # Set the attribute to be the quantized attribute.
52
53
  n.set_weights_by_keys(attr, quantized_attr)
53
54
 
54
- return graph
55
+ return _quantized_graph
@@ -146,7 +146,10 @@ def compute_mae(float_tensor: np.ndarray,
146
146
  return error
147
147
 
148
148
 
149
- def compute_cs(float_tensor: np.ndarray, fxp_tensor: np.ndarray, eps: float = 1e-8, batch: bool = False,
149
+ def compute_cs(float_tensor: np.ndarray,
150
+ fxp_tensor: np.ndarray,
151
+ eps: float = 1e-8,
152
+ batch: bool = False,
150
153
  axis: int = None) -> float:
151
154
  """
152
155
  Compute the similarity between two tensor using cosine similarity.
@@ -12,19 +12,20 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
+
15
16
  from typing import Tuple, List, Callable
16
17
 
17
18
  import numpy as np
18
19
  from matplotlib import pyplot as plt
19
20
  from matplotlib.figure import Figure
20
21
 
21
- from model_compression_toolkit.core.common.quantization.quantize_graph_weights import quantize_graph_weights
22
22
  from model_compression_toolkit.core.common import Graph
23
23
  from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
24
24
  from model_compression_toolkit.core.common.framework_info import FrameworkInfo
25
25
  from model_compression_toolkit.core.common.graph.base_node import BaseNode
26
26
  from model_compression_toolkit.core.common.model_builder_mode import ModelBuilderMode
27
27
  from model_compression_toolkit.core.common.similarity_analyzer import compute_cs
28
+ from model_compression_toolkit.logger import Logger
28
29
 
29
30
 
30
31
  def _get_compare_points(input_graph: Graph) -> Tuple[List[BaseNode], List[str]]:
@@ -57,17 +58,21 @@ class NNVisualizer:
57
58
 
58
59
  def __init__(self,
59
60
  graph_float: Graph,
61
+ graph_quantized: Graph,
60
62
  fw_impl: FrameworkImplementation,
61
63
  fw_info: FrameworkInfo):
62
64
  """
63
65
  Initialize a NNVisualizer object.
64
66
  Args:
65
67
  graph_float: Float version of the graph.
68
+ graph_quantized: Quantized version of the graph.
69
+ fw_impl: Framework implementation with framework-specific methods implementation.
70
+ fw_info: Framework info with framework-specific information.
66
71
 
67
72
  """
68
73
 
69
74
  self.graph_float = graph_float
70
- self.graph_quantized = quantize_graph_weights(graph_float)
75
+ self.graph_quantized = graph_quantized
71
76
  self.fw_impl = fw_impl
72
77
  self.fw_info = fw_info
73
78
 
@@ -75,6 +80,16 @@ class NNVisualizer:
75
80
  self.compare_points, self.compare_points_name = _get_compare_points(self.graph_quantized)
76
81
  self.compare_points_float, self.compare_points_name_float = _get_compare_points(self.graph_float)
77
82
 
83
+ if len(self.compare_points) != len(self.compare_points_float):
84
+ Logger.critical(f"Number of compare points in float and quantized models must be equal but "
85
+ f"num of quantized compare points: {len(self.compare_points)} and "
86
+ f"num of float compare points: {len(self.compare_points_float)}")
87
+ if len(self.compare_points_name) != len(self.compare_points_name_float):
88
+ Logger.critical(f"Number of compare points in float and quantized models must be equal "
89
+ f"but num of quantized compare points: {len(self.compare_points_name)}"
90
+ f" and num of float compare points: "
91
+ f"{len(self.compare_points_name_float)}")
92
+
78
93
  self.quantized_model, _ = self.fw_impl.model_builder(self.graph_quantized,
79
94
  mode=ModelBuilderMode.QUANTIZED,
80
95
  append2output=self.compare_points,
@@ -85,8 +100,19 @@ class NNVisualizer:
85
100
  append2output=self.compare_points_float,
86
101
  fw_info=self.fw_info)
87
102
 
103
+ def has_compare_points(self) -> bool:
104
+ """
105
+
106
+ Returns: Whether or not compare points were found.
107
+
108
+ """
109
+ return len(self.compare_points_float) > 0 and len(self.compare_points) > 0 and len(
110
+ self.compare_points_name_float) > 0 and len(self.compare_points_name) > 0
111
+
112
+
88
113
  def plot_distance_graph(self,
89
114
  input_image: np.ndarray,
115
+ sample_index: int,
90
116
  distance_fn: Callable = compute_cs,
91
117
  convert_to_range: Callable = lambda a: a) -> Figure:
92
118
  """
@@ -95,6 +121,7 @@ class NNVisualizer:
95
121
 
96
122
  Args:
97
123
  input_image: Image to use as input to the networks.
124
+ sample_index: The index of the sample from input_image to use for comparison.
98
125
  distance_fn: Distance function to calculate the distance between two tensors.
99
126
  convert_to_range: Optional function to move the distance values into a specific range, e.g., when using
100
127
  cosine similarity for distance, use 'lambda a: 1 - 2 * a' to convert the distance values to the range
@@ -108,7 +135,7 @@ class NNVisualizer:
108
135
  # to make the difference more noticeable when exists
109
136
  new_inputs = []
110
137
  for single_input in input_image:
111
- img = single_input[0]
138
+ img = single_input[sample_index]
112
139
  new_inputs.append(np.expand_dims(img, axis=0))
113
140
 
114
141
  # Get outputs
@@ -123,7 +150,7 @@ class NNVisualizer:
123
150
 
124
151
  # Display the result: distance at every layer's output.
125
152
  fig = plt.figure()
126
- plt.plot(distance_array)
153
+ plt.plot(list(range(len(distance_array))), distance_array)
127
154
  eps = 0.5
128
155
  y_limits = (min(distance_array) - eps, max(distance_array) + eps)
129
156
  plt.ylim(y_limits)
@@ -0,0 +1,66 @@
1
+ # Copyright 2024 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
+
17
+ from tensorflow.keras.layers import Concatenate
18
+ import tensorflow as tf
19
+
20
+ from model_compression_toolkit.core import common
21
+ from model_compression_toolkit.core.common import Graph, BaseNode
22
+ from model_compression_toolkit.core.common.graph.graph_matchers import NodeOperationMatcher
23
+ from model_compression_toolkit.constants import THRESHOLD
24
+
25
+
26
+
27
+ class ConcatThresholdUpdate(common.BaseSubstitution):
28
+
29
+
30
+ """
31
+ Find concat layers and match their prior layers thresholds unless prior layer outputs to multiple layers.
32
+ """
33
+
34
+ def __init__(self):
35
+ """
36
+ Initialize a threshold_updater object.
37
+ """
38
+ concatination_node = NodeOperationMatcher(Concatenate) | \
39
+ NodeOperationMatcher(tf.concat)
40
+ super().__init__(matcher_instance=concatination_node)
41
+
42
+ def substitute(self,
43
+ graph: Graph,
44
+ node: BaseNode) -> Graph:
45
+ """
46
+ Update previous layers thresholds to match concatinations quantization thresholds. No change if
47
+ previous layer outputs to multiple layers. No change in case of uniform quantization.
48
+ No change in case of multiple quantization candidates (mixed precision).
49
+
50
+
51
+ Args:
52
+ graph: Graph we apply the substitution on.
53
+ node: Node refference to edit previous nodes thresholds.
54
+
55
+ Returns:
56
+ Graph after applying the substitution.
57
+ """
58
+
59
+ if len(node.candidates_quantization_cfg) == 1 and THRESHOLD in node.candidates_quantization_cfg[0].activation_quantization_cfg.activation_quantization_params:
60
+ concat_threshold = node.candidates_quantization_cfg[0].activation_quantization_cfg.activation_quantization_params[THRESHOLD]
61
+ prev_nodes = graph.get_prev_nodes(node)
62
+ for prev_node in prev_nodes:
63
+ if len(graph.get_next_nodes(prev_node))==1 and prev_node.type != Concatenate and prev_node.type != tf.concat:
64
+ prev_node.candidates_quantization_cfg[0].activation_quantization_cfg.activation_quantization_params[THRESHOLD] = concat_threshold
65
+
66
+ return graph
@@ -80,7 +80,8 @@ from model_compression_toolkit.core.keras.graph_substitutions.substitutions.line
80
80
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.residual_collapsing import \
81
81
  keras_residual_collapsing
82
82
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.input_scaling import InputScaling, \
83
- InputScalingWithPad
83
+ InputScalingWithPad
84
+ from model_compression_toolkit.core.keras.graph_substitutions.substitutions.concat_threshold_update import ConcatThresholdUpdate
84
85
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.relu_bound_to_power_of_2 import \
85
86
  ReLUBoundToPowerOfTwo
86
87
  from model_compression_toolkit.core.keras.graph_substitutions.substitutions.multi_head_attention_decomposition import \
@@ -300,8 +301,8 @@ class KerasImplementation(FrameworkImplementation):
300
301
  """
301
302
  return keras_op2d_add_const_collapsing()
302
303
 
303
- def get_substitutions_post_statistics_collection(self, quant_config: QuantizationConfig) \
304
- -> List[common.BaseSubstitution]:
304
+ def get_substitutions_post_statistics_collection(self,
305
+ quant_config: QuantizationConfig) -> List[common.BaseSubstitution]:
305
306
  """
306
307
  Return a list of the framework substitutions used after we collect statistics.
307
308
 
@@ -317,6 +318,8 @@ class KerasImplementation(FrameworkImplementation):
317
318
  if quant_config.input_scaling:
318
319
  substitutions_list.append(InputScaling())
319
320
  substitutions_list.append(InputScalingWithPad())
321
+ if quant_config.concat_threshold_update:
322
+ substitutions_list.append(ConcatThresholdUpdate())
320
323
  return substitutions_list
321
324
 
322
325
 
@@ -0,0 +1,69 @@
1
+ # Copyright 2024 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
+ from typing import List
17
+
18
+ import torch
19
+
20
+ from model_compression_toolkit.core import common
21
+ from model_compression_toolkit.core.common.graph.base_graph import Graph
22
+ from model_compression_toolkit.core.common.graph.graph_matchers import NodeOperationMatcher
23
+ from model_compression_toolkit.core.common.graph.base_node import BaseNode
24
+ from model_compression_toolkit.constants import THRESHOLD
25
+
26
+
27
+ class ConcatThresholdUpdate(common.BaseSubstitution):
28
+ """
29
+ Find concat layers and match their prior layers thresholds unless prior layer outputs to multiple layers.
30
+ """
31
+
32
+
33
+ def __init__(self):
34
+ """
35
+ Initialize a threshold_updater object.
36
+ """
37
+ concatination_node = NodeOperationMatcher(torch.cat) | \
38
+ NodeOperationMatcher(torch.concat)
39
+ super().__init__(matcher_instance=concatination_node)
40
+
41
+ def substitute(self,
42
+ graph: Graph,
43
+ node: BaseNode) -> Graph:
44
+ """
45
+ Update previous layers thresholds to match concatinations quantization thresholds. No change if
46
+ previous layer outputs to multiple layers. No change in case of uniform quantization.
47
+ No change in case of multiple quantization candidates (mixed precision).
48
+
49
+
50
+ Args:
51
+ graph: Graph we apply the substitution on.
52
+ node: Node refference to edit previous nodes thresholds.
53
+
54
+ Returns:
55
+ Graph after applying the substitution.
56
+ """
57
+
58
+ if len(node.candidates_quantization_cfg) == 1 and THRESHOLD in node.candidates_quantization_cfg[0].activation_quantization_cfg.activation_quantization_params:
59
+ concat_threshold = node.candidates_quantization_cfg[0].activation_quantization_cfg.activation_quantization_params[THRESHOLD]
60
+ prev_nodes = graph.get_prev_nodes(node)
61
+ for prev_node in prev_nodes:
62
+ if len(graph.get_next_nodes(prev_node))==1 and prev_node.type != torch.cat and prev_node.type != torch.concat:
63
+ prev_node.candidates_quantization_cfg[0].activation_quantization_cfg.activation_quantization_params[THRESHOLD] = concat_threshold
64
+
65
+ return graph
66
+
67
+
68
+
69
+
@@ -73,6 +73,8 @@ from model_compression_toolkit.core.pytorch.graph_substitutions.substitutions.vi
73
73
  VirtualActivationWeightsComposition
74
74
  from model_compression_toolkit.core.pytorch.graph_substitutions.substitutions.weights_activation_split import \
75
75
  WeightsActivationSplit
76
+ from model_compression_toolkit.core.pytorch.graph_substitutions.substitutions.concat_threshold_update import \
77
+ ConcatThresholdUpdate
76
78
  from model_compression_toolkit.core.pytorch.hessian.activation_trace_hessian_calculator_pytorch import \
77
79
  ActivationTraceHessianCalculatorPytorch
78
80
  from model_compression_toolkit.core.pytorch.hessian.weights_trace_hessian_calculator_pytorch import \
@@ -302,6 +304,8 @@ class PytorchImplementation(FrameworkImplementation):
302
304
  substitutions_list.append(pytorch_softmax_shift())
303
305
  if quant_config.input_scaling:
304
306
  Logger.critical('Input scaling is currently not supported for Pytorch.')
307
+ if quant_config.concat_threshold_update:
308
+ substitutions_list.append(ConcatThresholdUpdate())
305
309
  return substitutions_list
306
310
 
307
311
 
@@ -337,12 +337,16 @@ class KerasGPTQTrainer(GPTQTrainer):
337
337
  node = node[0]
338
338
  kernel_attribute = get_kernel_attribute_name_for_gptq(layer_type=node.type,
339
339
  fw_info=self.fw_info)
340
+ # TODO: only kernel attributes are currently trained in GPTQ, so only the kernel weights need to be updated.
341
+ # To enable GPTQ for other attributes, this code needs to be modified.
340
342
  weights, weight_quant_config, activation_quant_config = \
341
343
  layer.weights_quantizers[kernel_attribute].update_layer_quantization_params(layer)
342
344
  for weight_attr, weight in weights.items():
343
345
  node.set_weights_by_keys(weight_attr, weight.numpy())
344
- for config_attr, config_value in weight_quant_config.items():
345
- node.final_weights_quantization_cfg.set_quant_config_attr(config_attr, config_value)
346
+ for config_parameter_name, config_parameter_value in weight_quant_config.items():
347
+ node.final_weights_quantization_cfg.set_quant_config_attr(config_parameter_name,
348
+ config_parameter_value,
349
+ attr_name=kernel_attribute)
346
350
  for config_attr, config_value in activation_quant_config.items():
347
351
  node.final_activation_quantization_cfg.set_quant_config_attr(config_attr, config_value)
348
352
  if self.gptq_config.train_bias:
@@ -12,10 +12,12 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
+ import copy
15
16
 
16
17
  from typing import Callable, Tuple
17
18
  from packaging import version
18
19
 
20
+ from model_compression_toolkit.core.common.quantization.quantize_graph_weights import quantize_graph_weights
19
21
  from model_compression_toolkit.core.common.visualization.tensorboard_writer import init_tensorboard_writer
20
22
  from model_compression_toolkit.gptq.common.gptq_constants import REG_DEFAULT
21
23
  from model_compression_toolkit.logger import Logger
@@ -210,6 +212,8 @@ if FOUND_TF:
210
212
  target_resource_utilization=target_resource_utilization,
211
213
  tb_w=tb_w)
212
214
 
215
+ float_graph = copy.deepcopy(tg)
216
+
213
217
  tg_gptq = gptq_runner(tg,
214
218
  core_config,
215
219
  gptq_config,
@@ -223,7 +227,12 @@ if FOUND_TF:
223
227
  del hessian_info_service
224
228
 
225
229
  if core_config.debug_config.analyze_similarity:
226
- analyzer_model_quantization(representative_data_gen, tb_w, tg_gptq, fw_impl, fw_info)
230
+ analyzer_model_quantization(representative_data_gen,
231
+ tb_w,
232
+ float_graph,
233
+ tg_gptq,
234
+ fw_impl,
235
+ DEFAULT_KERAS_INFO)
227
236
 
228
237
  return get_exportable_keras_model(tg_gptq)
229
238
 
@@ -284,12 +284,16 @@ class PytorchGPTQTrainer(GPTQTrainer):
284
284
  node = node[0]
285
285
  kernel_attribute = get_kernel_attribute_name_for_gptq(layer_type=node.type,
286
286
  fw_info=self.fw_info)
287
+ # TODO: only kernel attributes are currently trained in GPTQ, so only the kernel weights need to be updated.
288
+ # To enable GPTQ for other attributes, this code needs to be modified.
287
289
  weights, weight_quant_config, activation_quant_config = \
288
290
  layer.weights_quantizers[kernel_attribute].update_layer_quantization_params(layer)
289
291
  for weight_attr, weight in weights.items():
290
292
  node.set_weights_by_keys(weight_attr, self.fw_impl.to_numpy(weight))
291
- for config_attr, config_value in weight_quant_config.items():
292
- node.final_weights_quantization_cfg.set_quant_config_attr(config_attr, config_value)
293
+ for config_parameter_name, config_parameter_value in weight_quant_config.items():
294
+ node.final_weights_quantization_cfg.set_quant_config_attr(config_parameter_name,
295
+ config_parameter_value,
296
+ attr_name=kernel_attribute)
293
297
  for config_attr, config_value in activation_quant_config.items():
294
298
  node.final_activation_quantization_cfg.set_quant_config_attr(config_attr, config_value)
295
299
  if self.gptq_config.train_bias and hasattr(layer.layer, BIAS):