mct-nightly 2.0.0.20240418.439__tar.gz → 2.0.0.20240420.357__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 (495) hide show
  1. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/PKG-INFO +1 -1
  2. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/mct_nightly.egg-info/PKG-INFO +1 -1
  3. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/__init__.py +1 -1
  4. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/base_graph.py +2 -2
  5. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/base_node.py +25 -8
  6. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/functional_node.py +18 -1
  7. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/network_editors/node_filters.py +4 -3
  8. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -5
  9. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +4 -3
  10. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/similarity_analyzer.py +2 -2
  11. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +4 -1
  12. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +7 -7
  13. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +1 -1
  14. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +1 -1
  15. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/keras_implementation.py +10 -10
  16. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/keras_node_prior_info.py +4 -4
  17. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +4 -5
  18. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/common.py +2 -2
  19. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/node_builder.py +28 -9
  20. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +5 -2
  21. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +34 -21
  22. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +8 -8
  23. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +2 -2
  24. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +1 -1
  25. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +4 -4
  26. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +1 -1
  27. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +8 -8
  28. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +4 -5
  29. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +2 -2
  30. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +5 -1
  31. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +9 -2
  32. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +1 -1
  33. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py +20 -6
  34. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py +1 -1
  35. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py +22 -8
  36. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py +1 -1
  37. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/LICENSE.md +0 -0
  38. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/README.md +0 -0
  39. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/mct_nightly.egg-info/SOURCES.txt +0 -0
  40. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/mct_nightly.egg-info/dependency_links.txt +0 -0
  41. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/mct_nightly.egg-info/requires.txt +0 -0
  42. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/mct_nightly.egg-info/top_level.txt +0 -0
  43. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/constants.py +0 -0
  44. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/__init__.py +0 -0
  45. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/analyzer.py +0 -0
  46. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/__init__.py +0 -0
  47. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
  48. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
  49. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
  50. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
  51. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
  52. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
  53. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
  54. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
  55. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
  56. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
  57. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/framework_info.py +0 -0
  58. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
  59. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
  60. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
  61. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/edge.py +0 -0
  62. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
  63. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
  64. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
  65. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
  66. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
  67. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
  68. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
  69. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
  70. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
  71. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
  72. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
  73. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +0 -0
  74. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
  75. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/hessian/trace_hessian_calculator.py +0 -0
  76. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/hessian/trace_hessian_request.py +0 -0
  77. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
  78. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
  79. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
  80. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
  81. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/function.py +0 -0
  82. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
  83. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
  84. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/memory_computation.py +0 -0
  85. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
  86. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
  87. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
  88. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
  89. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
  90. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
  91. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
  92. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
  93. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py +0 -0
  94. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +0 -0
  95. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +0 -0
  96. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py +0 -0
  97. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py +0 -0
  98. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py +0 -0
  99. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
  100. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
  101. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
  102. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
  103. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
  104. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
  105. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/model_collector.py +0 -0
  106. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/model_validation.py +0 -0
  107. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
  108. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
  109. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
  110. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
  111. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
  112. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
  113. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +0 -0
  114. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
  115. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
  116. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
  117. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +0 -0
  118. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
  119. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +0 -0
  120. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +0 -0
  121. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/memory_calculator.py +0 -0
  122. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/prune_graph.py +0 -0
  123. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/pruner.py +0 -0
  124. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/pruning_config.py +0 -0
  125. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
  126. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/pruning_info.py +0 -0
  127. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
  128. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
  129. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
  130. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
  131. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
  132. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
  133. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
  134. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
  135. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
  136. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
  137. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
  138. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
  139. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
  140. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
  141. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
  142. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
  143. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
  144. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
  145. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
  146. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
  147. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
  148. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
  149. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
  150. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +0 -0
  151. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
  152. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
  153. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
  154. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
  155. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
  156. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
  157. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
  158. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
  159. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
  160. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
  161. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
  162. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
  163. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
  164. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
  165. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/remove_identity.py +0 -0
  166. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
  167. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
  168. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
  169. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
  170. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
  171. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
  172. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/user_info.py +0 -0
  173. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
  174. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
  175. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
  176. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
  177. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
  178. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/__init__.py +0 -0
  179. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
  180. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
  181. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
  182. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
  183. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
  184. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
  185. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/constants.py +0 -0
  186. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
  187. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
  188. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
  189. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
  190. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
  191. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  192. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  193. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  194. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
  195. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
  196. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +0 -0
  197. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  198. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
  199. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_identity.py +0 -0
  200. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
  201. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
  202. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  203. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
  204. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  205. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  206. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
  207. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/hessian/activation_trace_hessian_calculator_keras.py +0 -0
  208. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/hessian/trace_hessian_calculator_keras.py +0 -0
  209. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/hessian/weights_trace_hessian_calculator_keras.py +0 -0
  210. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
  211. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
  212. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
  213. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
  214. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
  215. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
  216. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
  217. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
  218. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
  219. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
  220. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
  221. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
  222. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
  223. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
  224. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
  225. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
  226. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
  227. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +0 -0
  228. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
  229. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
  230. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
  231. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
  232. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
  233. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
  234. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
  235. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
  236. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
  237. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
  238. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
  239. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
  240. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
  241. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/constants.py +0 -0
  242. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
  243. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
  244. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
  245. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
  246. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
  247. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/concat_threshold_update.py +0 -0
  248. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +0 -0
  249. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
  250. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
  251. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/permute_call_method.py +0 -0
  252. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py +0 -0
  253. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
  254. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
  255. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
  256. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
  257. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
  258. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
  259. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
  260. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/hessian/activation_trace_hessian_calculator_pytorch.py +0 -0
  261. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/hessian/trace_hessian_calculator_pytorch.py +0 -0
  262. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/hessian/weights_trace_hessian_calculator_pytorch.py +0 -0
  263. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
  264. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
  265. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
  266. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
  267. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
  268. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
  269. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
  270. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
  271. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
  272. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
  273. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
  274. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
  275. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +0 -0
  276. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
  277. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
  278. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/pytorch/utils.py +0 -0
  279. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
  280. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/core/runner.py +0 -0
  281. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/__init__.py +0 -0
  282. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
  283. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/constants.py +0 -0
  284. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/data_generation.py +0 -0
  285. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
  286. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/enums.py +0 -0
  287. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
  288. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +0 -0
  289. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
  290. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
  291. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
  292. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
  293. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +0 -0
  294. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +0 -0
  295. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
  296. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
  297. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
  298. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +0 -0
  299. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +0 -0
  300. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
  301. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
  302. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
  303. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
  304. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
  305. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +0 -0
  306. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
  307. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
  308. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
  309. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
  310. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
  311. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
  312. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
  313. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +0 -0
  314. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/defaultdict.py +0 -0
  315. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/__init__.py +0 -0
  316. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
  317. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
  318. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
  319. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
  320. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
  321. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
  322. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
  323. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
  324. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
  325. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
  326. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
  327. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
  328. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
  329. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
  330. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
  331. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
  332. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
  333. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
  334. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
  335. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
  336. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
  337. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
  338. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
  339. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +0 -0
  340. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
  341. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
  342. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
  343. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +0 -0
  344. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
  345. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/__init__.py +0 -0
  346. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/common/__init__.py +0 -0
  347. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
  348. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
  349. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
  350. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
  351. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
  352. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
  353. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
  354. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
  355. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
  356. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
  357. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
  358. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
  359. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
  360. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
  361. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
  362. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
  363. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
  364. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  365. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  366. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  367. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
  368. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  369. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
  370. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
  371. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
  372. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
  373. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
  374. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
  375. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
  376. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
  377. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
  378. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
  379. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
  380. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
  381. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
  382. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
  383. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
  384. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  385. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  386. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/gptq/runner.py +0 -0
  387. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/logger.py +0 -0
  388. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/metadata.py +0 -0
  389. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/pruning/__init__.py +0 -0
  390. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
  391. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/pruning/keras/pruning_facade.py +0 -0
  392. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
  393. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +0 -0
  394. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/ptq/__init__.py +0 -0
  395. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
  396. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
  397. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
  398. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
  399. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/ptq/runner.py +0 -0
  400. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/__init__.py +0 -0
  401. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/common/__init__.py +0 -0
  402. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/common/qat_config.py +0 -0
  403. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/__init__.py +0 -0
  404. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
  405. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
  406. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
  407. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
  408. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
  409. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
  410. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
  411. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
  412. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
  413. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
  414. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
  415. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
  416. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
  417. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
  418. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
  419. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
  420. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
  421. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
  422. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
  423. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
  424. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
  425. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
  426. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
  427. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
  428. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
  429. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
  430. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
  431. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
  432. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
  433. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +0 -0
  434. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
  435. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
  436. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
  437. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
  438. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
  439. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
  440. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
  441. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
  442. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
  443. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
  444. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
  445. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
  446. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
  447. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
  448. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -0
  449. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
  450. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
  451. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
  452. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
  453. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
  454. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
  455. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
  456. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
  457. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -0
  458. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
  459. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
  460. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py +0 -0
  461. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py +0 -0
  462. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py +0 -0
  463. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py +0 -0
  464. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
  465. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
  466. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
  467. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
  468. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
  469. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
  470. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
  471. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
  472. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
  473. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
  474. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
  475. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
  476. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
  477. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
  478. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
  479. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
  480. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
  481. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
  482. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
  483. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
  484. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
  485. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
  486. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
  487. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
  488. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
  489. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
  490. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +0 -0
  491. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
  492. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
  493. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
  494. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/setup.cfg +0 -0
  495. {mct-nightly-2.0.0.20240418.439 → mct-nightly-2.0.0.20240420.357}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.0.0.20240418.439
3
+ Version: 2.0.0.20240420.357
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.20240418.439
3
+ Version: 2.0.0.20240420.357
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -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.20240418.000439"
30
+ __version__ = "2.0.0.20240420.000357"
@@ -98,8 +98,8 @@ class Graph(nx.MultiDiGraph, GraphSearches):
98
98
  tpc_layers = tpc.op_sets_to_layers.get_layers()
99
99
  tpc_filtered_layers = [layer for layer in tpc_layers if isinstance(layer, LayerFilterParams)]
100
100
  for n in self.nodes:
101
- is_node_in_tpc = n.type in tpc_layers or any([n.is_match_filter_params(filtered_layer)
102
- for filtered_layer in tpc_filtered_layers])
101
+ is_node_in_tpc = any([n.is_match_type(_type) for _type in tpc_layers]) or \
102
+ any([n.is_match_filter_params(filtered_layer) for filtered_layer in tpc_filtered_layers])
103
103
  if n.is_custom:
104
104
  if not is_node_in_tpc:
105
105
  Logger.critical(f'MCT does not support optimizing Keras custom layers. Found a layer of type {n.type}. '
@@ -151,7 +151,21 @@ class BaseNode:
151
151
  """
152
152
  return self.reuse or self.reuse_group is not None
153
153
 
154
- def get_weights_by_keys(self, name: str) -> np.ndarray:
154
+ def _get_weight_name(self, name: Union[str, int]) -> List[Union[str, int]]:
155
+ """
156
+ Get weight names that match argument name (either string weights or integer for
157
+ positional weights).
158
+ Args:
159
+ name: weight name
160
+
161
+ Returns:
162
+ A list of weight names that match input "name"
163
+
164
+ """
165
+ return [k for k in self.weights.keys()
166
+ if (isinstance(k, int) and name == k) or (isinstance(k, str) and name in k)]
167
+
168
+ def get_weights_by_keys(self, name: Union[str, int]) -> np.ndarray:
155
169
  """
156
170
  Get a node's weight by its name.
157
171
  Args:
@@ -163,7 +177,7 @@ class BaseNode:
163
177
  if name is None:
164
178
  return None
165
179
 
166
- res = [k for k in self.weights.keys() if name in k]
180
+ res = self._get_weight_name(name)
167
181
  if len(res) == 1: # Make sure there are no duplicates
168
182
  return self.weights[res[0]]
169
183
  else:
@@ -179,7 +193,7 @@ class BaseNode:
179
193
 
180
194
  """
181
195
 
182
- res = [k for k in self.weights.keys() if name in k]
196
+ res = self._get_weight_name(name)
183
197
  if len(res) == 1:
184
198
  self.weights[res[0]] = tensor
185
199
  else: # Add if not exist
@@ -552,14 +566,17 @@ class BaseNode:
552
566
  for fl, qco in tpc.filterlayer2qco.items():
553
567
  if self.is_match_filter_params(fl):
554
568
  return qco
555
- if self.type in tpc.layer2qco:
556
- return tpc.layer2qco.get(self.type)
569
+ # Extract qco with is_match_type to overcome mismatch of function types in TF 2.15
570
+ matching_qcos = [_qco for _type, _qco in tpc.layer2qco.items() if self.is_match_type(_type)]
571
+ if matching_qcos:
572
+ if len(matching_qcos) > 1:
573
+ Logger.error('Found duplicate qco types!')
574
+ return matching_qcos[0]
557
575
  return tpc.tp_model.default_qco
558
576
 
559
577
  def is_match_type(self, _type: Type) -> bool:
560
578
  """
561
- Check if input type matches the node type, either in instance type or in type name. Checking the
562
- name string is required because of function types changes that occurred in TF 2.15.
579
+ Check if input type matches the node type, either in instance type or in type name.
563
580
 
564
581
  Args:
565
582
  _type: other node type
@@ -567,7 +584,7 @@ class BaseNode:
567
584
  Whether _type matches the self node type
568
585
 
569
586
  """
570
- return _type == self.type or _type.__name__ == self.type.__name__
587
+ return _type == self.type
571
588
 
572
589
  def is_match_filter_params(self, layer_filter_params: LayerFilterParams) -> bool:
573
590
  """
@@ -1,5 +1,6 @@
1
- from typing import Dict, Any, Tuple, List
1
+ from typing import Dict, Any, Tuple, Type
2
2
 
3
+ from model_compression_toolkit.constants import FOUND_TF
3
4
  from model_compression_toolkit.core.common.graph.base_node import BaseNode
4
5
  import numpy as np
5
6
 
@@ -71,3 +72,19 @@ class FunctionalNode(BaseNode):
71
72
  :return: the node's functional_op
72
73
  """
73
74
  return self.functional_op
75
+
76
+ def is_match_type(self, _type: Type) -> bool:
77
+ """
78
+ Check if input type matches the node type, either in instance type or in type name. Checking the
79
+ name string is required because of function types changes that occurred in TF 2.15, because it
80
+ changes the "function" attribute object (e.g. a different tf.add function that will fail the
81
+ equal operation).
82
+
83
+ Args:
84
+ _type: other node type
85
+ Returns:
86
+ Whether _type matches the self node type
87
+
88
+ """
89
+ names_match = _type.__name__ == self.type.__name__ if FOUND_TF else False
90
+ return super().is_match_type(_type) or names_match
@@ -15,6 +15,7 @@
15
15
 
16
16
  from typing import Any
17
17
  from model_compression_toolkit.core.common.matchers.node_matcher import BaseNodeMatcher
18
+ from model_compression_toolkit.core.common.graph.base_node import BaseNode
18
19
 
19
20
 
20
21
  class NodeTypeFilter(BaseNodeMatcher):
@@ -30,7 +31,7 @@ class NodeTypeFilter(BaseNodeMatcher):
30
31
  """
31
32
  self.node_type = node_type
32
33
 
33
- def apply(self, input_object: Any) -> bool:
34
+ def apply(self, input_object: BaseNode) -> bool:
34
35
  """
35
36
  Check if input_object is of the type that NodeTypeFilter contains.
36
37
 
@@ -38,9 +39,9 @@ class NodeTypeFilter(BaseNodeMatcher):
38
39
  input_object: Node object to check for its type.
39
40
 
40
41
  Returns:
41
- True if the node if of the type that was passed during the initialization of NodeTypeFilter.
42
+ True if the node is of the type that was passed during the initialization of NodeTypeFilter.
42
43
  """
43
- if input_object.type == self.node_type:
44
+ if input_object.is_match_type(self.node_type):
44
45
  return True
45
46
 
46
47
 
@@ -265,8 +265,6 @@ class WeightsAttrQuantizationConfig:
265
265
  self.enable_weights_quantization = weights_attr_cfg.enable_weights_quantization
266
266
  self.l_p_value = qc.l_p_value
267
267
 
268
-
269
-
270
268
  @property
271
269
  def weights_error_method(self) -> QuantizationErrorMethod:
272
270
  """
@@ -412,9 +410,6 @@ class NodeWeightsQuantizationConfig(BaseNodeQuantizationConfig):
412
410
  for attr in node_attrs_list:
413
411
  if isinstance(attr, int):
414
412
  # this is a positional attribute, so it needs to be handled separately.
415
- # we assume that a positional attribute is quantized with the default configuration provided in the TPC.
416
- if op_cfg.default_weight_attr_config.enable_weights_quantization:
417
- Logger.critical(f"Quantizing constant weights is not supported.")
418
413
  self.pos_attributes_config_mapping[attr] = WeightsAttrQuantizationConfig(qc=qc,
419
414
  weights_attr_cfg=op_cfg.default_weight_attr_config,
420
415
  weights_channels_axis=weights_channels_axis)
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
 
16
+ from typing import Dict
16
17
  import numpy as np
17
18
  from sklearn.cluster import KMeans
18
19
 
@@ -38,10 +39,10 @@ def lut_kmeans_tensor(tensor_data: np.ndarray,
38
39
  n_iter: int = 10,
39
40
  min_threshold: float = MIN_THRESHOLD,
40
41
  quant_error_method: qc.QuantizationErrorMethod = None,
41
- is_symmetric=False,
42
+ is_symmetric: bool = False,
42
43
  node=None,
43
44
  hessian_info_service: HessianInfoService = None,
44
- num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES) -> dict:
45
+ num_hessian_samples: int = NUM_QPARAM_HESSIAN_SAMPLES) -> Dict:
45
46
  """
46
47
  The quantizer first finds the closest max value per channel of tensor_data.
47
48
  Now, we divide tensor_data with the threshold vector per channel. In addition, we scale the result to the range
@@ -101,7 +102,7 @@ def lut_kmeans_histogram(bins: np.ndarray,
101
102
  constrained: bool = True,
102
103
  n_iter: int = 20,
103
104
  min_threshold: float = MIN_THRESHOLD,
104
- quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE) -> dict:
105
+ quant_error_method: qc.QuantizationErrorMethod = qc.QuantizationErrorMethod.MSE) -> Dict:
105
106
  """
106
107
  Finds quantization cluster points for non-uniform activation quantization.
107
108
  The quantizer first finds the closest power-of-two number to the max value of the given histogram,
@@ -235,7 +235,7 @@ def compute_kl_divergence(float_tensor: np.ndarray, fxp_tensor: np.ndarray, batc
235
235
  axis: int = None) -> float:
236
236
  """
237
237
  Compute the similarity between two tensor using KL-divergence.
238
- The returned values is between 0 to 1: the smaller returned value,
238
+ The returned values is between 0 and 1: the smaller returned value,
239
239
  the greater similarity there is between the two tensors.
240
240
 
241
241
  Args:
@@ -257,6 +257,6 @@ def compute_kl_divergence(float_tensor: np.ndarray, fxp_tensor: np.ndarray, batc
257
257
  non_zero_fxp_tensor[non_zero_fxp_tensor == 0] = EPS
258
258
 
259
259
  prob_distance = np.where(float_flat != 0, float_flat * np.log(float_flat / non_zero_fxp_tensor), 0)
260
- # The sum is part of the KL-Divergance function.
260
+ # The sum is part of the KL-Divergence function.
261
261
  # The mean is to aggregate the distance between each output probability vectors.
262
262
  return np.mean(np.sum(prob_distance, axis=-1), axis=-1)
@@ -39,6 +39,7 @@ from model_compression_toolkit.core.common import BaseNode
39
39
  from model_compression_toolkit.core.common.graph.edge import EDGE_SINK_INDEX
40
40
  from model_compression_toolkit.core.keras.back2framework.instance_builder import OperationHandler
41
41
  from model_compression_toolkit.core.keras.reader.connectivity_handler import OutTensor
42
+ from mct_quantizers import KerasQuantizationWrapper
42
43
 
43
44
  # In tf2.3 fake quant node is implemented as TensorFlowOpLayer, while in tf2.4 as TFOpLambda.
44
45
  FQ_NODE_OP_V2_3 = 'FakeQuantWithMinMaxVars'
@@ -270,7 +271,9 @@ class KerasModelBuilder(BaseModelBuilder):
270
271
  out_tensors_of_n_float)
271
272
  else:
272
273
  input_tensors = [tensor for tensor_list in input_tensors for tensor in tensor_list] # flat list of lists
273
- input_tensors = n.insert_positional_weights_to_input_list(input_tensors)
274
+ if not isinstance(op_func, KerasQuantizationWrapper):
275
+ # The KerasQuantizationWrapper will insert the quantized positional weights internally.
276
+ input_tensors = n.insert_positional_weights_to_input_list(input_tensors)
274
277
  # Build a functional node using its args
275
278
  if isinstance(n, FunctionalNode):
276
279
  if n.inputs_as_list: # If the first argument should be a list of tensors:
@@ -70,9 +70,9 @@ def update_kernel_for_bn_folding_fn(conv_node: BaseNode,
70
70
  Returns:
71
71
  The modified convolution node's weight/kernel/
72
72
  """
73
- if conv_node.type == DepthwiseConv2D:
73
+ if conv_node.is_match_type(DepthwiseConv2D):
74
74
  kernel = kernel * weights_scale.reshape((1, 1, kernel.shape[-2], kernel.shape[-1]))
75
- elif conv_node.type == Conv2DTranspose:
75
+ elif conv_node.is_match_type(Conv2DTranspose):
76
76
  kernel = kernel * weights_scale.reshape((1, 1, -1, 1))
77
77
  else:
78
78
  kernel = kernel * weights_scale.reshape((1, 1, 1, -1))
@@ -98,10 +98,10 @@ def update_weights_for_bn_forward_folding_fn(conv_node: BaseNode,
98
98
  Returns:
99
99
  The modified convolution node's weight/kernel/
100
100
  """
101
- if conv_node.type == DepthwiseConv2D:
101
+ if conv_node.is_match_type(DepthwiseConv2D):
102
102
  bias_update = kernel * bias_factor.reshape((1, 1, -1, 1))
103
103
  kernel = kernel * weights_scale.reshape((1, 1, -1, 1))
104
- elif conv_node.type == Conv2DTranspose:
104
+ elif conv_node.is_match_type(Conv2DTranspose):
105
105
  bias_update = (kernel * bias_factor.reshape((1, 1, 1, -1))).sum(3)
106
106
  kernel = kernel * weights_scale.reshape((1, 1, 1, -1))
107
107
  else:
@@ -133,7 +133,7 @@ def is_group_conv_fn(node: BaseNode) -> bool:
133
133
  Returns:
134
134
  True if the node is a group convolution, else False
135
135
  """
136
- return (node.type == Conv2D) and node.framework_attr[GROUPS] > 1
136
+ return (node.is_match_type(Conv2D)) and node.framework_attr[GROUPS] > 1
137
137
 
138
138
 
139
139
  def get_foldable_node_type_and_validity_fn(node: BaseNode) -> [bool, bool]:
@@ -147,8 +147,8 @@ def get_foldable_node_type_and_validity_fn(node: BaseNode) -> [bool, bool]:
147
147
  is_bn: True if the node is a batch norm, else False
148
148
  is_dw_valid: True if the node is a dw-convolution valid for folding or a batch-norm node, else False
149
149
  """
150
- is_bn = node.type is BatchNormalization
151
- is_dw = node.type is DepthwiseConv2D
150
+ is_bn = node.is_match_type(BatchNormalization)
151
+ is_dw = node.is_match_type(DepthwiseConv2D)
152
152
  is_dw_valid = is_dw and np.all(np.array(node.get_weights_by_keys(DEPTHWISE_KERNEL).shape[:2]) == 1)
153
153
  return is_bn, is_dw_valid
154
154
 
@@ -58,7 +58,7 @@ def conv2d_collapsing_fn(first_node: BaseNode,
58
58
  Returns:
59
59
  The modified layer node's weights: kernel, bias
60
60
  """
61
- if first_node.type == Conv2D and second_node.type == Conv2D:
61
+ if first_node.is_match_type(Conv2D) and second_node.is_match_type(Conv2D):
62
62
  # Get nodes attributes
63
63
  kernel1 = first_node.get_weights_by_keys(kernel_str)
64
64
  kernel2 = second_node.get_weights_by_keys(kernel_str)
@@ -49,7 +49,7 @@ def residual_collapsing_fn(first_node: BaseNode,
49
49
  Returns:
50
50
  The modified layer node's weights: kernel
51
51
  """
52
- if first_node.type == Conv2D:
52
+ if first_node.is_match_type(Conv2D):
53
53
  # Get nodes attributes
54
54
  kernel = first_node.get_weights_by_keys(kernel_str)
55
55
  (kH, kW, Cin, Cout) = kernel.shape
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
15
  from functools import partial
16
- from typing import List, Any, Tuple, Callable, Dict
16
+ from typing import List, Any, Tuple, Callable, Dict, Union
17
17
 
18
18
  import numpy as np
19
19
  import tensorflow as tf
@@ -412,12 +412,13 @@ class KerasImplementation(FrameworkImplementation):
412
412
  Returns: True if the node should be considered an interest point, False otherwise.
413
413
  """
414
414
 
415
- if node.type == Activation:
415
+ if node.is_match_type(Activation):
416
416
  node_type_name = node.framework_attr[keras_constants.ACTIVATION]
417
417
  if node_type_name in [keras_constants.SOFTMAX, keras_constants.SIGMOID]:
418
418
  return True
419
- elif node.type in [tf.nn.softmax, tf.keras.layers.Softmax, tf.nn.sigmoid, Conv2D, DepthwiseConv2D, Conv2DTranspose, Dense, Concatenate,
420
- tf.concat, Add, tf.add]:
419
+ elif any([node.is_match_type(_type) for _type in [tf.nn.softmax, tf.keras.layers.Softmax, tf.nn.sigmoid, Conv2D,
420
+ DepthwiseConv2D, Conv2DTranspose, Dense, Concatenate, tf.concat,
421
+ Add, tf.add]]):
421
422
  return True
422
423
 
423
424
  return False
@@ -529,18 +530,18 @@ class KerasImplementation(FrameworkImplementation):
529
530
  kernel_shape = node.get_weights_by_keys(fw_info.get_kernel_op_attributes(node.type)[0]).shape
530
531
  output_channel_axis, input_channel_axis = fw_info.kernel_channels_mapping.get(node.type)
531
532
 
532
- if node.type is Conv2D or node.type is Conv2DTranspose:
533
+ if node.is_match_type(Conv2D) or node.is_match_type(Conv2DTranspose):
533
534
  # (C_out * W_out * H_out) * C_in * (W_kernel * H_kernel)
534
535
  return np.prod([x for x in output_shape if x is not None]) * \
535
536
  kernel_shape[input_channel_axis] * \
536
537
  (kernel_shape[0] * kernel_shape[1])
537
- elif node.type is DepthwiseConv2D:
538
+ elif node.is_match_type(DepthwiseConv2D):
538
539
  # Depth * (W_out * H_out) * C_in * (W_kernel * H_kernel)
539
540
  return node.framework_attr.get(DEPTH_MULTIPLIER) * \
540
541
  np.prod([x for x in output_shape if x is not None]) / output_shape[output_channel_axis] * \
541
542
  kernel_shape[input_channel_axis] * \
542
543
  (kernel_shape[0] * kernel_shape[1])
543
- elif node.type is Dense:
544
+ elif node.is_match_type(Dense):
544
545
  # IN * OUT
545
546
  return kernel_shape[0] * kernel_shape[1]
546
547
  else:
@@ -593,10 +594,9 @@ class KerasImplementation(FrameworkImplementation):
593
594
  Returns:
594
595
  weight_quantizers: A dictionary between a weight's name to its quantizer.
595
596
  activation_quantizers: A list of activations quantization, one for each layer output.
596
-
597
597
  """
598
598
 
599
- def _weight_name(w: str) -> str:
599
+ def _weight_name(w: Union[str, int]) -> Union[str, int]:
600
600
  """
601
601
  Extracts the weight name from the full TensorFlow variable name.
602
602
 
@@ -609,7 +609,7 @@ class KerasImplementation(FrameworkImplementation):
609
609
  Extracted weight name.
610
610
  """
611
611
 
612
- return w.split(':')[0].split('/')[-1]
612
+ return w.split(':')[0].split('/')[-1] if isinstance(w, str) else w
613
613
 
614
614
  attribute_names = [_weight_name(wn) for wn in node.get_node_weights_attributes()
615
615
  if node.is_weights_quantization_enabled(wn)]
@@ -56,13 +56,13 @@ def _get_min_max_outputs(node: BaseNode,
56
56
  """
57
57
  min_output, max_output = None, None
58
58
 
59
- if node.type == ReLU:
59
+ if node.is_match_type(ReLU):
60
60
  min_output = node.framework_attr[THRESHOLD] if node.framework_attr[NEGATIVE_SLOPE] == 0 else None
61
61
 
62
62
  elif fw_info.layers_has_min_max(node.type):
63
63
  min_output, max_output = fw_info.layer_min_max_mapping[node.type]
64
64
 
65
- elif node.type == Activation and fw_info.activation_has_min_max(node.framework_attr[ACTIVATION]):
65
+ elif node.is_match_type(Activation) and fw_info.activation_has_min_max(node.framework_attr[ACTIVATION]):
66
66
  min_output, max_output = fw_info.activation_min_max_mapping[node.framework_attr[ACTIVATION]]
67
67
 
68
68
  return min_output, max_output
@@ -82,7 +82,7 @@ def _get_mean_std_outputs(node: BaseNode,
82
82
  """
83
83
  mean_output, std_output = None, None
84
84
 
85
- if node.type == BatchNormalization:
85
+ if node.is_match_type(BatchNormalization):
86
86
  mean_output = node.get_weights_by_keys(BETA)
87
87
  if node.get_weights_by_keys(GAMMA) is None:
88
88
  std_output = 1.0
@@ -92,7 +92,7 @@ def _get_mean_std_outputs(node: BaseNode,
92
92
  mean_output = 0.0
93
93
  else:
94
94
  next_node_list = graph.get_next_nodes(node)
95
- bn_nodes = [bn_node for bn_node in next_node_list if bn_node.type == BatchNormalization]
95
+ bn_nodes = [bn_node for bn_node in next_node_list if bn_node.is_match_type(BatchNormalization)]
96
96
  if len(bn_nodes) != 0:
97
97
  bn_node = bn_nodes[0]
98
98
  moving_variance = bn_node.get_weights_by_keys(MOVING_VARIANCE)
@@ -209,10 +209,9 @@ def _is_keras_node_pruning_section_edge(node: BaseNode) -> bool:
209
209
  """
210
210
 
211
211
  # Check if the node is a Conv2D or Conv2DTranspose layer with groups set to 1.
212
- if node.type in [keras.layers.Conv2D, keras.layers.Conv2DTranspose]:
212
+ if node.is_match_type(keras.layers.Conv2D) or node.is_match_type(keras.layers.Conv2DTranspose):
213
213
  return node.framework_attr[GROUPS] == 1
214
- return node.type == keras.layers.Dense
215
-
214
+ return node.is_match_type(keras.layers.Dense)
216
215
 
217
216
 
218
217
  def _prune_keras_edge_node(node: BaseNode,
@@ -250,9 +249,9 @@ def _prune_keras_edge_node(node: BaseNode,
250
249
 
251
250
  if not is_exit_node:
252
251
  # Update 'filters' or 'units' attributes for entry node Conv2D/Conv2DTranspose layers.
253
- if node.type in [keras.layers.Conv2D, keras.layers.Conv2DTranspose]:
252
+ if node.is_match_type(keras.layers.Conv2D) or node.is_match_type(keras.layers.Conv2DTranspose):
254
253
  node.framework_attr[FILTERS] = int(np.sum(mask))
255
- elif node.type == keras.layers.Dense:
254
+ elif node.is_match_type(keras.layers.Dense):
256
255
  node.framework_attr[UNITS] = int(np.sum(mask))
257
256
 
258
257
  if is_exit_node:
@@ -43,7 +43,7 @@ def is_node_an_input_layer(node: BaseNode) -> bool:
43
43
  Whether the node represents an input layer or not.
44
44
  """
45
45
  if isinstance(node, BaseNode):
46
- return node.type == InputLayer
46
+ return node.is_match_type(InputLayer)
47
47
  elif isinstance(node, KerasNode):
48
48
  return isinstance(node.layer, InputLayer)
49
49
  else:
@@ -60,7 +60,7 @@ def is_node_a_model(node: BaseNode) -> bool:
60
60
  Whether the node represents a Keras model or not.
61
61
  """
62
62
  if isinstance(node, BaseNode):
63
- return node.type in [Functional, Sequential]
63
+ return node.is_match_type(Functional) or node.is_match_type(Sequential)
64
64
  elif isinstance(node, KerasNode):
65
65
  return isinstance(node.layer, Functional) or isinstance(node.layer, Sequential)
66
66
  else:
@@ -41,7 +41,7 @@ layers = keras.layers
41
41
 
42
42
  REUSED_IDENTIFIER = '_reused_'
43
43
 
44
- is_const = lambda x: isinstance(x, (tf.Variable, tf.Tensor, np.ndarray))
44
+ is_const = lambda x: isinstance(x, (tf.Variable, tf.Tensor, np.ndarray, float))
45
45
  is_tensor = lambda x: isinstance(x, KerasTensor)
46
46
 
47
47
 
@@ -61,18 +61,36 @@ def get_kwargs2index(tfoplambda_layer: TFOpLambda) -> Dict[str, int]:
61
61
  """
62
62
  Positional weights are saved according to their index in the node's call arguments, so
63
63
  need to know the function arguments' names in case the weights are in the kwargs.
64
+
65
+ Note: the kwargs2index dictionary is initialized manually (and not with tf_inspect) so
66
+ it will only include the arguments that may contain constants. For example, we don't
67
+ want the transpose_a attribute of tf.matmul to be saved as a constant.
68
+
69
+ Every operation we add support to, needs to be added here.
70
+
64
71
  Args:
65
72
  tfoplambda_layer: TFOpLambda layer.
66
73
 
67
74
  Returns:
68
75
  A dictionary with argument number and index: {arg_name: arg_index}.
69
76
  """
70
- if tfoplambda_layer.function in [tf.add, tf.subtract, tf.divide, tf.truediv, tf.multiply, tf.pow,
71
- tf.matmul, tf.image.crop_and_resize, tf.image.combined_non_max_suppression] or \
72
- tfoplambda_layer.symbol in ['__operators__.add', 'math.add', 'math.multiply', 'linalg.matmul', 'concat']:
73
- return {arg_name: i for i, arg_name in enumerate(tf_inspect.getfullargspec(tfoplambda_layer.function).args)}
74
- else:
75
- return {}
77
+ kwargs2index = {tf.add: {'x': 0, 'y': 1},
78
+ tf.subtract: {'x': 0, 'y': 1},
79
+ tf.divide: {'x': 0, 'y': 1},
80
+ tf.truediv: {'x': 0, 'y': 1},
81
+ tf.multiply: {'x': 0, 'y': 1},
82
+ tf.pow: {'x': 0, 'y': 1},
83
+ tf.matmul: {'a': 0, 'b': 1}}.get(tfoplambda_layer.function)
84
+ if not kwargs2index:
85
+ # In TF 2.15 the function attribute is different and doesn't match the original
86
+ # operation object we use. Therefore, we extract kwargs2index with the symbol.
87
+ kwargs2index = {'__operators__.add': {'x': 0, 'y': 1},
88
+ 'math.add': {'x': 0, 'y': 1},
89
+ 'math.multiply': {'x': 0, 'y': 1},
90
+ 'linalg.matmul': {'a': 0, 'b': 1},
91
+ 'concat': {'values': 0}}.get(tfoplambda_layer.symbol, {})
92
+
93
+ return kwargs2index
76
94
 
77
95
 
78
96
  def build_node(node: KerasNode,
@@ -154,8 +172,9 @@ def build_node(node: KerasNode,
154
172
  if is_const(v) or (keras_layer.function in [tf.add, tf.multiply, tf.subtract, tf.divide, tf.truediv, tf.pow,
155
173
  tf.matmul] and
156
174
  isinstance(v, (tuple, list))):
157
- weights.update({kwarg2index[k]: to_numpy(v, is_single_tensor=True)})
158
- weight_keys.append(k)
175
+ if k in kwarg2index:
176
+ weights.update({kwarg2index[k]: to_numpy(v, is_single_tensor=True)})
177
+ weight_keys.append(k)
159
178
  # remove weights and KerasTensors and weights from op_call_kwargs
160
179
  op_call_kwargs = {k: v for k, v in op_call_kwargs.items()
161
180
  if not (kwarg2index.get(k) in weights or is_tensor(v))}
@@ -40,7 +40,7 @@ def to_tf_tensor(tensor):
40
40
  Logger.critical(f'Unsupported type for conversion to TF tensor: {type(tensor)}.')
41
41
 
42
42
 
43
- def tf_tensor_to_numpy(tensor: Union[List, Tuple, np.ndarray, tf.Tensor],
43
+ def tf_tensor_to_numpy(tensor: Union[List, Tuple, np.ndarray, tf.Tensor, float],
44
44
  is_single_tensor=False) -> np.ndarray:
45
45
  """
46
46
  Convert a TF tensor to a Numpy array.
@@ -65,6 +65,9 @@ def tf_tensor_to_numpy(tensor: Union[List, Tuple, np.ndarray, tf.Tensor],
65
65
  else:
66
66
  return (tf_tensor_to_numpy(t) for t in tensor)
67
67
  elif isinstance(tensor, tf.Tensor):
68
- return tensor.numpy()
68
+ np_tensor = tensor.numpy()
69
+ return np.array([np_tensor]) if np.isscalar(np_tensor) else np_tensor
70
+ elif isinstance(tensor, float):
71
+ return np.array([tensor])
69
72
  else:
70
73
  Logger.critical(f'Unsupported type for conversion to Numpy array: {type(tensor)}.')