mct-nightly 2.1.0.20240731.414__py3-none-any.whl → 2.1.0.20240802.429__py3-none-any.whl

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 (51) hide show
  1. {mct_nightly-2.1.0.20240731.414.dist-info → mct_nightly-2.1.0.20240802.429.dist-info}/METADATA +1 -1
  2. {mct_nightly-2.1.0.20240731.414.dist-info → mct_nightly-2.1.0.20240802.429.dist-info}/RECORD +51 -47
  3. model_compression_toolkit/__init__.py +1 -1
  4. model_compression_toolkit/constants.py +2 -1
  5. model_compression_toolkit/core/common/framework_implementation.py +5 -9
  6. model_compression_toolkit/core/common/graph/base_graph.py +1 -23
  7. model_compression_toolkit/core/common/graph/base_node.py +52 -33
  8. model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +6 -6
  9. model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +12 -12
  10. model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +2 -2
  11. model_compression_toolkit/core/common/quantization/node_quantization_config.py +17 -38
  12. model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +6 -4
  13. model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +19 -12
  14. model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +14 -14
  15. model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +14 -9
  16. model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +5 -27
  17. model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +25 -17
  18. model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +10 -6
  19. model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +1 -65
  20. model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +12 -5
  21. model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +7 -5
  22. model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +3 -3
  23. model_compression_toolkit/core/keras/keras_implementation.py +21 -17
  24. model_compression_toolkit/core/keras/tf_tensor_numpy.py +2 -2
  25. model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +3 -3
  26. model_compression_toolkit/core/pytorch/pytorch_implementation.py +15 -14
  27. model_compression_toolkit/core/pytorch/reader/node_holders.py +1 -1
  28. model_compression_toolkit/core/runner.py +1 -0
  29. model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +2 -2
  30. model_compression_toolkit/gptq/common/gptq_training.py +0 -35
  31. model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +1 -1
  32. model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +1 -1
  33. model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +32 -8
  34. model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +2 -2
  35. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +5 -0
  36. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +2 -0
  37. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +2 -0
  38. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +2 -0
  39. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py +2 -0
  40. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py +2 -0
  41. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py +2 -0
  42. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py +2 -0
  43. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/__init__.py +16 -0
  44. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py +235 -0
  45. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py +132 -0
  46. model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py +112 -0
  47. model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +2 -0
  48. model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +2 -0
  49. {mct_nightly-2.1.0.20240731.414.dist-info → mct_nightly-2.1.0.20240802.429.dist-info}/LICENSE.md +0 -0
  50. {mct_nightly-2.1.0.20240731.414.dist-info → mct_nightly-2.1.0.20240802.429.dist-info}/WHEEL +0 -0
  51. {mct_nightly-2.1.0.20240731.414.dist-info → mct_nightly-2.1.0.20240802.429.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.1.0.20240731.414
3
+ Version: 2.1.0.20240802.429
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,5 +1,5 @@
1
- model_compression_toolkit/__init__.py,sha256=xQfz3BqFj_l1X45XcGwTxKMYFT5ZaGgLshAtkHnFT5Y,1573
2
- model_compression_toolkit/constants.py,sha256=9pVleMwnhlM4QwIL2HcEq42I1uF4rlSw63RUjkxOF4w,3923
1
+ model_compression_toolkit/__init__.py,sha256=46reZlAK4UxbAFCsFmzkmbIZgViRYLtHvNxix7BMZA4,1573
2
+ model_compression_toolkit/constants.py,sha256=dexmfFCQ6VgoWuFBeM6MZykfgiVVdVxgkiSnpfjN8Dw,4005
3
3
  model_compression_toolkit/defaultdict.py,sha256=LSc-sbZYXENMCw3U9F4GiXuv67IKpdn0Qm7Fr11jy-4,2277
4
4
  model_compression_toolkit/logger.py,sha256=3DByV41XHRR3kLTJNbpaMmikL8icd9e1N-nkQAY9oDk,4567
5
5
  model_compression_toolkit/metadata.py,sha256=IyoON37lBv3TI0rZGCP4K5t3oYI4TOmYy-LRXOwHGpE,1136
@@ -7,10 +7,10 @@ model_compression_toolkit/core/__init__.py,sha256=TrRgkWpT1AN2Faw1M_1HXyJkJnbxfn
7
7
  model_compression_toolkit/core/analyzer.py,sha256=X-2ZpkH1xdXnISnw1yJvXnvV-ssoUh-9LkLISSWNqiY,3691
8
8
  model_compression_toolkit/core/graph_prep_runner.py,sha256=kM70wmNG3yMFiGQc0uO0wn9j4ZbSWxUEykpxDK55doc,10567
9
9
  model_compression_toolkit/core/quantization_prep_runner.py,sha256=K9eJ7VbB_rpeyxX4yEnorOmSxFW3DkvofzxS6QI8Hp8,6454
10
- model_compression_toolkit/core/runner.py,sha256=4TtOgyNb4cXr52dOlDqYxLm3rnLR6uHPDNoZiEFL9XA,12655
10
+ model_compression_toolkit/core/runner.py,sha256=JvX0Ht164BOKIsPPxp6z-Nlk1Vlhlg7wKBl6lc2yIaQ,12675
11
11
  model_compression_toolkit/core/common/__init__.py,sha256=Wh127PbXcETZX_d1PQqZ71ETK3J9XO5A-HpadGUbj6o,1447
12
12
  model_compression_toolkit/core/common/base_substitutions.py,sha256=xDFSmVVs_iFSZfajytI0cuQaNRNcwHX3uqOoHgVUvxQ,1666
13
- model_compression_toolkit/core/common/framework_implementation.py,sha256=zg2Sznd-uqpN8hy9C22jah_27qPYXNajYx3xMR3AlMw,20938
13
+ model_compression_toolkit/core/common/framework_implementation.py,sha256=kSg2f7wS7e2EyvX6y0eKfNTTFvVFVrB8lvldJvcPvN8,20724
14
14
  model_compression_toolkit/core/common/framework_info.py,sha256=1ZMMGS9ip-kSflqkartyNRt9aQ5ub1WepuTRcTy-YSQ,6337
15
15
  model_compression_toolkit/core/common/memory_computation.py,sha256=ixoSpV5ZYZGyzhre3kQcvR2sNA8KBsPZ3lgbkDnw9Cs,1205
16
16
  model_compression_toolkit/core/common/model_builder_mode.py,sha256=jll9-59OPaE3ug7Y9-lLyV99_FoNHxkGZMgcm0Vkpss,1324
@@ -30,8 +30,8 @@ model_compression_toolkit/core/common/collectors/statistics_collector.py,sha256=
30
30
  model_compression_toolkit/core/common/fusion/__init__.py,sha256=Rf1RcYmelmdZmBV5qOKvKWF575ofc06JFQSq83Jz99A,696
31
31
  model_compression_toolkit/core/common/fusion/layer_fusing.py,sha256=lOubqpc18TslhXZijWUJQAa1c3jIB2S-M-5HK78wJPQ,5548
32
32
  model_compression_toolkit/core/common/graph/__init__.py,sha256=Xr-Lt_qXMdrCnnOaUS_OJP_3iTTGfPCLf8_vSrQgCs0,773
33
- model_compression_toolkit/core/common/graph/base_graph.py,sha256=lmIw0srKiwCvz7KWqfwKTxyQHDy3s6rWMIXzFAa1UMo,38326
34
- model_compression_toolkit/core/common/graph/base_node.py,sha256=Hqv5lsEYT2uz5FYAX44Rsps_Ax73_kVoXy_DNaXIddU,29448
33
+ model_compression_toolkit/core/common/graph/base_graph.py,sha256=lg5QaBkRbmvM3tGZ0Q34S3m0CbFql3LUv5BaXLe5TG8,37824
34
+ model_compression_toolkit/core/common/graph/base_node.py,sha256=Tv_whLIy-Da0DWZIycnvZ2cf2Qa1rCwpcH8kTkkhv2s,31415
35
35
  model_compression_toolkit/core/common/graph/edge.py,sha256=buoSEUZwilWBK3WeBKpJ-GeDaUA1SDdOHxDpxU_bGpk,3784
36
36
  model_compression_toolkit/core/common/graph/functional_node.py,sha256=XvzydBSRxgpYdKS-aYVaWtH3FDzJPKGad3bai9wF3BI,3956
37
37
  model_compression_toolkit/core/common/graph/graph_matchers.py,sha256=CrDoHYq4iPaflgJWmoJ1K4ziLrRogJvFTVWg8P0UcDU,4744
@@ -64,12 +64,12 @@ model_compression_toolkit/core/common/mixed_precision/distance_weighting.py,sha2
64
64
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py,sha256=rppRZJdSCQGiZsd93QxoUIhj51eETvQbuI5JiC2TUeA,4963
65
65
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py,sha256=pk8HRoShDhiUprBC4m1AFQv1SacS4hOrj0MRdbq-5gY,7556
66
66
  model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py,sha256=TTTux4YiOnQqt-2h7Y38959XaDwNZc0eufLMx_yws5U,37578
67
- model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py,sha256=PNGWP0bPkQNP1jCORP6FQgGIr616Kg1YSe_hy-BDg0I,27546
67
+ model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py,sha256=QdxFQ0JxsrcSfk5LlUU_3oZpEK7bYwKelGzEHh0mnJY,27558
68
68
  model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py,sha256=P8QtKgFXtt5b2RoubzI5OGlCfbEfZsAirjyrkFzK26A,2846
69
69
  model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py,sha256=KifDMbm7qkSfvSl6pcZzQ82naIXzeKL6aT-VsvWZYyc,7901
70
70
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py,sha256=Rf1RcYmelmdZmBV5qOKvKWF575ofc06JFQSq83Jz99A,696
71
71
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py,sha256=HILF7CIn-GYPvPmTFyvjWLhuLDwSGwdBcAaKFgVYrwk,4745
72
- model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py,sha256=MhmYgsybWJ2dlCwbZjDKJB8QlDHHy--zOBs2DwJB2e0,13820
72
+ model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py,sha256=az0XfBPVm1kAfxNCPb0Z-Q05-F-vqnmyRpKm6SBLa6c,13826
73
73
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py,sha256=ttc8wPa_9LZansutQ2f1ss-RTzgTv739wy3qsdLzyyk,4217
74
74
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py,sha256=QhuqaECEGLnYC08iD6-2XXcU7NXbPzYf1sQcjYlGak8,1682
75
75
  model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py,sha256=WC1EHoNuo_lrzy4NRhGJ1cgmJ2IsFsbmP86mrVO3AVA,21506
@@ -97,31 +97,31 @@ model_compression_toolkit/core/common/pruning/mask/__init__.py,sha256=huHoBUcKNB
97
97
  model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py,sha256=APY8BsM9B7ZxVCH6n1xs9fSCTB_A9ou9gHrCQl1DOdI,5131
98
98
  model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py,sha256=4ohJrJHNzZk5uMnZEYkwLx2TDGzkh5kRhLGNVYNC6dc,5978
99
99
  model_compression_toolkit/core/common/quantization/__init__.py,sha256=sw7LOPN1bM82o3SkMaklyH0jw-TLGK0-fl2Wq73rffI,697
100
- model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py,sha256=8RfAaVITnYpWQUvFnDDzLOteBtc5bN6JOzdyb-l768U,4900
100
+ model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py,sha256=yU-Cr6S4wOSkDk57iH2NVe-WII0whOhLryejkomCOt4,4940
101
101
  model_compression_toolkit/core/common/quantization/core_config.py,sha256=KYdyfSmjSL4ye24nKlC_c4_AxYb14qoqaeMnZj4-8kE,2257
102
102
  model_compression_toolkit/core/common/quantization/debug_config.py,sha256=HtkMmneN-EmAzgZK4Vp4M8Sqm5QKdrvNyyZMpaVqYzY,1482
103
103
  model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py,sha256=fwF4VILaX-u3ZaFd81xjbJuhg8Ef-JX_KfMXW0TPV-I,7136
104
- model_compression_toolkit/core/common/quantization/node_quantization_config.py,sha256=u0JkdRqBXG0RvvYyLyvYknEVtB2-gxpqUJnUw3loLmE,26851
104
+ model_compression_toolkit/core/common/quantization/node_quantization_config.py,sha256=Vk37nN4owenWJVZO-ycPQknwXUqp7v5HKKfdBhlDu1A,26393
105
105
  model_compression_toolkit/core/common/quantization/quantization_config.py,sha256=du0VdsxfkOSYaP1EU9gHA5qbXpfQNZL0jXrjk1wBA0U,7106
106
106
  model_compression_toolkit/core/common/quantization/quantization_fn_selection.py,sha256=eyosbVdnCwed7oMQ19tqnh0VoyGZ_UAuD_UnNoXyBpo,2210
107
107
  model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py,sha256=MwIOBZ4BlZSTIOG75PDvlI3JmZ6t8YjPc1VP9Adei60,3847
108
108
  model_compression_toolkit/core/common/quantization/quantize_graph_weights.py,sha256=N005MSvx8UypVpa7XrxNrB2G732n2wHj3RmLyjTgd3I,2728
109
109
  model_compression_toolkit/core/common/quantization/quantize_node.py,sha256=cdzGNWfT4MRogIU8ehs0tr3lVjnzAI-jeoS9b4TwVBo,2854
110
- model_compression_toolkit/core/common/quantization/set_node_quantization_config.py,sha256=O4qFJw3nBYUD4cGbO8haGXZ2-piSqoRpDKDD74iXSxw,12417
110
+ model_compression_toolkit/core/common/quantization/set_node_quantization_config.py,sha256=9Y4eVDWCXFvCaXy2gbb-1880sp52M8wqH0M3KgAw8rM,12834
111
111
  model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py,sha256=eCDGwsWYLU6z7qbEVb4TozMW_nd5VEP_iCJ6PcvyEPw,1486
112
112
  model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py,sha256=Fd_gxr5js-mqEwucaRR1CQAZ1W_wna19L1gAPeOzxRQ,23610
113
- model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py,sha256=t0XSwjfOxcq2Sj2PGzccntz1GGv2eqVn9oR3OI0t9wo,8533
113
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py,sha256=RL-PklAjGyC-26anSt8fU07a6pB_LBQFQy9o4e9giN0,8739
114
114
  model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py,sha256=9gnfJV89jpGwAx8ImJ5E9NjCv3lDtbyulP4OtgWb62M,1772
115
- model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py,sha256=HfnhQ4MxGpb95gOWXD1vnroTxxjFt9VFd4jIdo-rvAQ,10623
116
- model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py,sha256=noEdvGiyyW7acgQ2OFWLedCODibTGYJifC9qo8YIU5U,4558
115
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py,sha256=y-mEST-0fVbyLiprQu7elOQawSc70TkVdpPsL7o1BmM,11197
116
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py,sha256=I-2CT8KtQr6KSJ11D94nPma8tIedm5mP1jEqA0xjdao,4594
117
117
  model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py,sha256=oME8T6Slgl1SJNpXV4oY3UhuX0YmKYbcWDsLiCYq7oE,8651
118
- model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py,sha256=o2XNY_0pUUyId02TUVQBtkux_i40NCcnzuobSeQLy3E,42863
119
- model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py,sha256=zSNda0jN8cP41m6g5TOv5WvATwIhV8z6AVM1Es6rq1s,4419
120
- model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py,sha256=4TP41wPYC0azIzFxUt-lNlKUPIIXQeE4H1SYHkON75k,11875
121
- model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py,sha256=E83BU4wZEOY-Q-HTo04ABftv22Y6fWEdNYkGA-MZLMU,10494
118
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py,sha256=Nv_b3DECVjQnlrUet2kbuSvSKVnxcc-gf2zhFb2jSZk,43482
119
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py,sha256=UI-NW9K-yA6qxtk3Uin1wKmo59FNy0LUnySpxodgeEs,3796
120
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py,sha256=iPukBikpzuJhKfwnnBgyJ71HhaDIpSoTUuYsjt4rR7w,12587
121
+ model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py,sha256=St2wmWOxsFMP2e8gOy6Gf-L-2x-IiskMD_lOyE4jwiI,10860
122
122
  model_compression_toolkit/core/common/quantization/quantizers/__init__.py,sha256=mjbqLD-KcG3eNeCYpu1GBS7VclGVOQ63x2p6mAAuba4,698
123
123
  model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py,sha256=P0x_y18LypBxP2tV9OWizheYfILqvaMC8RwHo04sUpQ,2761
124
- model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py,sha256=CCFhi5LUIcHCCIzDyORvm0FDZLknrctdNwNlPphOQgI,14245
124
+ model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py,sha256=iEoWUPFQMcvZXHtLMe2_7L7IK25XcKiY6-d1_gArZs0,11880
125
125
  model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py,sha256=wXExWHf5-0He7L4bpvFpKlx7FG4u3DAfNZiXPpOs_SQ,5521
126
126
  model_compression_toolkit/core/common/statistics_correction/__init__.py,sha256=sw7LOPN1bM82o3SkMaklyH0jw-TLGK0-fl2Wq73rffI,697
127
127
  model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py,sha256=xSWVDOODgbN0k4mjJWWtpawilOsqdm4O7Uw2hbA75EA,4669
@@ -138,7 +138,7 @@ model_compression_toolkit/core/common/substitutions/linear_collapsing_substituti
138
138
  model_compression_toolkit/core/common/substitutions/remove_identity.py,sha256=TKU1TIU52UIkVnl0EZvWnDhLV9nIVZ4hqi-w1i4NXMk,2637
139
139
  model_compression_toolkit/core/common/substitutions/residual_collapsing.py,sha256=N82mso5j3EJQlKt9EMHjjEJ67FmdGQeCfN8U5grOFXo,4830
140
140
  model_compression_toolkit/core/common/substitutions/scale_equalization.py,sha256=p57u25qdW2pimxzGwgMXEBV4S-LzXuTVAlIM7830WfU,10966
141
- model_compression_toolkit/core/common/substitutions/shift_negative_activation.py,sha256=cyy4qnlD-v1Gou62oHNDsf1hWLWkYfcjVv1otFrUltY,29865
141
+ model_compression_toolkit/core/common/substitutions/shift_negative_activation.py,sha256=AqQ0cTMz0d1qziQD5uUeYJON0wfXKvRIADuonF8Hobs,29969
142
142
  model_compression_toolkit/core/common/substitutions/softmax_shift.py,sha256=R-0ZqhYAuZLEFWHvB2UTPm52L6gWHGdRdEnwGxKSeGI,2625
143
143
  model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py,sha256=aXzUOJfgKPfQpEGfiIun26fgfCqazBG1mBpzoc4Ezxs,3477
144
144
  model_compression_toolkit/core/common/substitutions/weights_activation_split.py,sha256=h85L2VlDOqbLd-N98wA3SdYWiblBgSsPceNuLanJd70,4737
@@ -150,13 +150,13 @@ model_compression_toolkit/core/keras/__init__.py,sha256=mjbqLD-KcG3eNeCYpu1GBS7V
150
150
  model_compression_toolkit/core/keras/constants.py,sha256=Uv3c0UdW55pIVQNW_1HQlgl-dHXREkltOLyzp8G1mTQ,3163
151
151
  model_compression_toolkit/core/keras/custom_layer_validation.py,sha256=f-b14wuiIgitBe7d0MmofYhDCTO3IhwJgwrh-Hq_t_U,1192
152
152
  model_compression_toolkit/core/keras/default_framework_info.py,sha256=HcHplb7IcnOTyK2p6uhp3OVG4-RV3RDo9C_4evaIzkQ,4981
153
- model_compression_toolkit/core/keras/keras_implementation.py,sha256=qrmFzs749gVCEanw-paEsbM50zECtMV8qDMxKFTmyj0,29906
153
+ model_compression_toolkit/core/keras/keras_implementation.py,sha256=hzNC6wz1gtL2EqmRCMCQYl8AqIDJPu6rdOX6nvPgjCM,30193
154
154
  model_compression_toolkit/core/keras/keras_model_validation.py,sha256=1wNV2clFdC9BzIELRLSO2uKf0xqjLqlkTJudwtCeaJk,1722
155
155
  model_compression_toolkit/core/keras/keras_node_prior_info.py,sha256=HUmzEXDQ8LGX7uOYSRiLZ2TNbYxLX9J9IeAa6QYlifg,3927
156
156
  model_compression_toolkit/core/keras/resource_utilization_data_facade.py,sha256=Xmk2ZL5CaYdb7iG62HdtZ1F64vap7ffnrsuR3e3G5hc,4851
157
- model_compression_toolkit/core/keras/tf_tensor_numpy.py,sha256=moMFP7hOagAbd09bWa2AX5uxN7XOJqLB-mV3mA30kLQ,2651
157
+ model_compression_toolkit/core/keras/tf_tensor_numpy.py,sha256=AJMPD_cAwf7nzTlLMf_Y1kofXkh_xm8Ji7J6yDpbAKc,2691
158
158
  model_compression_toolkit/core/keras/back2framework/__init__.py,sha256=rhIiXg_nBgUZ-baE3M6SzCuQbcnq4iebY1jtJBvKHOM,808
159
- model_compression_toolkit/core/keras/back2framework/factory_model_builder.py,sha256=urpfyHvIzD08QzPBWusVBT_dKZ8ZUf1I1zIQNb4qe5Y,2233
159
+ model_compression_toolkit/core/keras/back2framework/factory_model_builder.py,sha256=UIQgOOdexycrSKombTMJVvTthR7MlrCihoqM8Kg-rnE,2293
160
160
  model_compression_toolkit/core/keras/back2framework/float_model_builder.py,sha256=9SFHhX-JnkB8PvYIIHRYlReBDI_RkZY9LditzW_ElLk,2444
161
161
  model_compression_toolkit/core/keras/back2framework/instance_builder.py,sha256=fBj13c6zkVoWX4JJG18_uXPptiEJqXClE_zFbaFB6Q8,4517
162
162
  model_compression_toolkit/core/keras/back2framework/keras_model_builder.py,sha256=XFSSaET4oPWB_cx-Q_c9pDJfWyQ1qXT9JXBl5FJCTa4,18137
@@ -213,12 +213,12 @@ model_compression_toolkit/core/pytorch/__init__.py,sha256=Rf1RcYmelmdZmBV5qOKvKW
213
213
  model_compression_toolkit/core/pytorch/constants.py,sha256=YwD_joIF0vK8UG2vW1NVvg36pCNWA0vHOXjAgy_XWn0,2794
214
214
  model_compression_toolkit/core/pytorch/default_framework_info.py,sha256=r1XyzUFvrjGcJHQM5ETLsMZIG2yHCr9HMjqf0ti9inw,4175
215
215
  model_compression_toolkit/core/pytorch/pytorch_device_config.py,sha256=S25cuw10AW3SEN_fRAGRcG_I3wdvvQx1ehSJzPnn-UI,4404
216
- model_compression_toolkit/core/pytorch/pytorch_implementation.py,sha256=XL_RZcfnb_ZY2jdCjOxxz7SbRBzMokbOWsTuYOSjyRU,27569
216
+ model_compression_toolkit/core/pytorch/pytorch_implementation.py,sha256=xmcJyU-rkIDX1a_X9LILzf2Ko2z_4I4xnlHkezKH-2w,27669
217
217
  model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py,sha256=2LDQ7qupglHQ7o1Am7LWdfYVacfQnl-aW2N6l9det1w,3264
218
218
  model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py,sha256=E6ifk1HdO60k4IRH2EFBzAYWtwUlrGqJoQ66nknpHoQ,4983
219
219
  model_compression_toolkit/core/pytorch/utils.py,sha256=GE7T8q93I5C4As0iOias_dk9HpOvXM1N6---dJlyD60,3863
220
220
  model_compression_toolkit/core/pytorch/back2framework/__init__.py,sha256=H_WixgN0elVWf3exgGYsi58imPoYDj5eYPeh6x4yfug,813
221
- model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py,sha256=DwNO8WO3JiMawKGKDhlrwCoCjMSBIw5BMbsFFF7eDS4,2279
221
+ model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py,sha256=bwppTPRs6gL96nm7qPiKrNcBj4Krr0yEsOWjRF0aXmQ,2339
222
222
  model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py,sha256=tLrlUyYhxVKVjkad1ZAtbRra0HedB3iVfIkZ_dYnQ-4,3419
223
223
  model_compression_toolkit/core/pytorch/back2framework/instance_builder.py,sha256=BBHBfTqeWm7L3iDyPBpk0jxvj-rBg1QWI23imkjfIl0,1467
224
224
  model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py,sha256=D7lU1r9Uq_7fdNuKk2BMF8ho5GrsY-8gyGN6yYoHaVg,15060
@@ -262,7 +262,7 @@ model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py,sha256=D8
262
262
  model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py,sha256=uyeBtNokyDUikk-YkDP_mN_2DX0J5oPm3kSfdSUT2Ck,4420
263
263
  model_compression_toolkit/core/pytorch/reader/__init__.py,sha256=Rf1RcYmelmdZmBV5qOKvKWF575ofc06JFQSq83Jz99A,696
264
264
  model_compression_toolkit/core/pytorch/reader/graph_builders.py,sha256=ESL8k7RLZogTyG_oTTFDmm4RauZvx2gU-UvnOnEsH6Q,15948
265
- model_compression_toolkit/core/pytorch/reader/node_holders.py,sha256=TaolORuwBZEddWe-q0Mg79Nmswz-Sq3-9-4o8UxFQ50,1028
265
+ model_compression_toolkit/core/pytorch/reader/node_holders.py,sha256=7XNc7-l1MZPJGcOESvtAwfIMxrU6kvt3YjF5B7qOqK4,1048
266
266
  model_compression_toolkit/core/pytorch/reader/reader.py,sha256=GEJE0QX8XJFWbYCkbRBtzttZtmmuoACLx8gw9KyAQCE,6015
267
267
  model_compression_toolkit/core/pytorch/statistics_correction/__init__.py,sha256=Rf1RcYmelmdZmBV5qOKvKWF575ofc06JFQSq83Jz99A,696
268
268
  model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py,sha256=VgU24J3jf7QComHH7jonOXSkg6mO4TOch3uFkOthZvM,3261
@@ -326,7 +326,7 @@ model_compression_toolkit/exporter/model_wrapper/__init__.py,sha256=7CF2zvpTrIEm
326
326
  model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py,sha256=pKAdbTCFM_2BrZXUtTIw0ouKotrWwUDF_hP3rPwCM2k,696
327
327
  model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py,sha256=Bd3QhAR__YC9Xmobd5qHv9ofh_rPn_eTFV0sXizcBnY,2297
328
328
  model_compression_toolkit/exporter/model_wrapper/keras/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
329
- model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py,sha256=YffgbVYJG5LKeIsW84Pi7NqzQcvJMeQRnAKQCCmIL6c,3776
329
+ model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py,sha256=llQJ8yY4buSMNue_UnEhGhT5lHpXU7iMqWwCrUt6L08,3816
330
330
  model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
331
331
  model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py,sha256=T2wgd7b86cpA5Ffq5eVCb8YlmnJ7vDxtmFeRkZtpLZc,5422
332
332
  model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py,sha256=uL6tJWC4s2IWUy8GJVwtMWpwZZioRRztfKyPJHo14xI,9442
@@ -342,7 +342,7 @@ model_compression_toolkit/gptq/common/gptq_config.py,sha256=U-NiVEedkOsVaFq-iXU2
342
342
  model_compression_toolkit/gptq/common/gptq_constants.py,sha256=QSm6laLkIV0LYmU0BLtmKp3Fi3SqDfbncFQWOGA1cGU,611
343
343
  model_compression_toolkit/gptq/common/gptq_framework_implementation.py,sha256=n3mSf4J92kFjekzyGyrJULylI-8Jf5OVWJ5AFoVnEx0,1266
344
344
  model_compression_toolkit/gptq/common/gptq_graph.py,sha256=-bL5HhPcKqV8nj4dZPXc5QmQJbFBel6etrioikP0tEo,3039
345
- model_compression_toolkit/gptq/common/gptq_training.py,sha256=nI_XVa7WbfCcbgHMFgnPtnD77m5ezAB306z7VE0XFvU,16527
345
+ model_compression_toolkit/gptq/common/gptq_training.py,sha256=CtSpjG27BQ3rLPGWeBnZYYiGnMREpdBd6dx7SQf_wDk,14965
346
346
  model_compression_toolkit/gptq/keras/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
347
347
  model_compression_toolkit/gptq/keras/gptq_keras_implementation.py,sha256=axBwnCSjq5xk-xGymOwSOqjp39It-CVtGcCTRTf0E_4,1248
348
348
  model_compression_toolkit/gptq/keras/gptq_loss.py,sha256=rbRkF15MYd6nq4G49kcjb_dPTa-XNq9cTkrb93mXawo,6241
@@ -394,7 +394,7 @@ model_compression_toolkit/qat/common/qat_config.py,sha256=zoq0Vb74vCY7WlWD8JH_KP
394
394
  model_compression_toolkit/qat/keras/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
395
395
  model_compression_toolkit/qat/keras/quantization_facade.py,sha256=AXwY6p1XFjPUzal_r_c1_su5Ji3ARtVTZYYWpDPZ09k,17026
396
396
  model_compression_toolkit/qat/keras/quantizer/__init__.py,sha256=zmYyCa25_KLCSUCGUDRslh3RCIjcRMxc_oXa54Aui-4,996
397
- model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py,sha256=TIFdLEeUUTH-ZKoqfbqmL8rq2iuFCwb8CZ61rIJDOIM,2065
397
+ model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py,sha256=0CB5M68zjPXv4yJZ-DzaYP9yYYWX_8J2gJLunxupOAM,2085
398
398
  model_compression_toolkit/qat/keras/quantizer/quant_utils.py,sha256=cBULOgWUodcBO1lHevZggdTevuDYI6tQceV86U2x6DA,2543
399
399
  model_compression_toolkit/qat/keras/quantizer/quantization_builder.py,sha256=HD0JIOiqnrpqj5qk6RyzuCsSGZsDUVohdCYSePmJBNQ,5872
400
400
  model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py,sha256=lNJ29DYxaLUPDstRDA1PGI5r9Fulq_hvrZMlhst1Z5g,697
@@ -406,7 +406,7 @@ model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py,sha256
406
406
  model_compression_toolkit/qat/pytorch/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
407
407
  model_compression_toolkit/qat/pytorch/quantization_facade.py,sha256=pRy2B5OsaLi33p4hozjr0rzAooT8Gic3_qxTl66J900,13375
408
408
  model_compression_toolkit/qat/pytorch/quantizer/__init__.py,sha256=xYa4C8pr9cG1f3mQQcBXO_u3IdJN-zl7leZxuXDs86w,1003
409
- model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py,sha256=soxP4moJxQaziq5ccP3Du34fSIVSFyZq6hD8YuaDn88,2187
409
+ model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py,sha256=2I_WcINn63lpT3mN_skXNL4Rfbm955_wzhYHaiwH2q4,2207
410
410
  model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py,sha256=sFWGu76PZ9dSRf3L0uZI6YwLIs0biBND1tl76I1piBQ,5721
411
411
  model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py,sha256=nO7IrDRo5b9Asf21WJacE4vf5voD3UzF_oGjBoGusD4,5335
412
412
  model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py,sha256=huHoBUcKNB6BnY6YaUCcFvdyBtBI172ZoUD8ZYeNc6o,696
@@ -421,9 +421,9 @@ model_compression_toolkit/target_platform_capabilities/immutable.py,sha256=YhROB
421
421
  model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py,sha256=bD2xE101rRw7pGarGiBzYraeFF7FUnzyWtAVzwu5JT4,1724
422
422
  model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py,sha256=1Glr4qKDJfdk5TwM5fzZ12XzgbpQFioDOxb475905gk,2013
423
423
  model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py,sha256=f3xBAI6ivPvEj4lw8cAvTKdIbs7CRdLAa_0LvhGw3Dg,3924
424
- model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py,sha256=tpy19ZwFCqPWCFtTc76K_kv2dEzFqojdsnWhYxjdDUA,15015
424
+ model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py,sha256=w7VBBgvhiOcHjn_OcrWnER8LPa1uhIIYaMEROLFF1xA,16441
425
425
  model_compression_toolkit/target_platform_capabilities/target_platform/operators.py,sha256=rRmrmPBY4rxCWVpEc6FxeOPUFh8MkfwgQsqD82U9a7w,3108
426
- model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py,sha256=55EQyP4McJBwsw9_l9eseEZ-V2ygQfdRXjjJLF6HdIM,9482
426
+ model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py,sha256=mU4djXodftvTqJnFH6-9ISuY1uECjj1xi6SijJWpiRg,9477
427
427
  model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py,sha256=TDbNQwmF7Id-FoIQZlR7ZOcz_nRb4XKBmDihAgKT0u8,1392
428
428
  model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py,sha256=WCP1wfFZgM4eFm-pPeUinr5R_aSx5qwfSQqLZCXUNBA,1513
429
429
  model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py,sha256=jfhszvuD2Fyy6W2KjlLzXBQKFzTqGAaDZeFVr4-ONQw,8776
@@ -435,48 +435,52 @@ model_compression_toolkit/target_platform_capabilities/target_platform/targetpla
435
435
  model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
436
436
  model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py,sha256=-jCL-meZWFBF-Dp9wBYTX_14SKmyyUJE-BZ2IQDJIAk,3336
437
437
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py,sha256=lNJ29DYxaLUPDstRDA1PGI5r9Fulq_hvrZMlhst1Z5g,697
438
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py,sha256=mjPFr6Z-PLzqQta8mW7dK31mbbBZsJo4MdpJQmxlSt4,4640
438
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py,sha256=KOSrFJAheWk360kU4UKQRVOaM0xIUaVdEdnU6b3t7Ww,5046
439
439
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py,sha256=F5RG4MnuAwKcNXbfVbPFLQu30-lNax-7knqu20B6udQ,1522
440
440
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py,sha256=1mMOREEMoNHu_KTMGDp4crN61opKWX6aFn1DrDLvqcc,717
441
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py,sha256=S-GwMI-JiuPpbtOdd6TSOEjiUFiIs6M2RAiJNJ3O950,10883
441
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py,sha256=XF5djXt1kOz6pAKStNlcRfSESLZZAjKikF0Pdoq3MUY,10973
442
442
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py,sha256=bPBWxopMUHFgiaJjaAfoompwShvfH2wHAouN56PQn0A,6484
443
443
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py,sha256=iCBfBmIRozoeGVPC3MjZpVyp-Nx4fC94_PKILC82K-Y,5731
444
444
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py,sha256=vFDyiMymNZSRCdTgAyWn4A-tZD3vzze_PTLBSF2OYe8,721
445
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py,sha256=InFx2Uh6dG30U9YIvVH_1jb34r1wJw7ms3J295lRKvM,10619
445
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py,sha256=ptqH5KGE5XJ35rYXb7zWyfP9Zbfq-Qa35IKyq0E1hrw,10709
446
446
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py,sha256=bU74t-ZIkIptXuNaPI_YIC5w9TX6nDgJUpJwxHAPOSI,6493
447
447
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py,sha256=09fbd5vEnSQDWfCkMRtYZYy7kIYiWkXDcH_dT1cAmoY,5739
448
448
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py,sha256=NUuczImqUxzdfflqSdqkeAN8aCU6Tuiu6U0Fnj9Tzmw,721
449
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py,sha256=o1KloA8WPw1MbtZ-4p-kxQuroBAL67z77dPpliZyH9o,10369
449
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py,sha256=zx39TEVxMwBYWa7CaUVi3kPxIIC_ID8pnamibkCQer4,10459
450
450
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py,sha256=NkAGCZbSgXYeRAiJRzt19h2cxkrVQJaHu8-2jHZLOYg,6505
451
451
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py,sha256=X853xDEF-3rcPoqxbrlYN28vvW3buSdM36c_eN_LKx8,5758
452
452
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py,sha256=vKWAoQ2KkhuptS5HZB50zHG6KY8wHpHTxPugw_nGCRo,717
453
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py,sha256=uMGN6TbyRMSGL01_i4M3z6eeI8PqC4qYZSTEACpo9io,10958
453
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py,sha256=0-_lLUqQAvl19ySSeDp40hLmD7GYuQmmnAHHoE_e1Us,11048
454
454
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py,sha256=U5lYwk6vJkRt5fo5v_1_h5POTwf9zfia1XQ_cDoOZAI,6587
455
455
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py,sha256=jAyTXhcChO124odtWC3bYKRH4ZyqLPkKQluJFOoyPIM,5726
456
456
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py,sha256=wUk4Xsg7jpxOWYjq2K3WUwLcI185p_sVPK-ttG0ydhA,721
457
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py,sha256=dmi2lCT0dw6RnWVw73tcnqgsVSgINSWaIWfgZhEli4Q,10691
457
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py,sha256=VTK3dC5-_Ps2AsoQwfAg9ATVTlz6yUvrXYX02jc7X0U,10781
458
458
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py,sha256=6PVKQKGpJpM2B1qvmf6fID_-MACaSQZkaL_9J_fj2SQ,6595
459
459
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py,sha256=dFQjzFlLDwoUqKNP1at1fS1N1WJadSSasRyzHl6vaB8,5733
460
460
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/__init__.py,sha256=gAeebYCKyIXH9-Qwze7FwvTihudzAHk_Qsg94fQbkjQ,717
461
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py,sha256=edMH4lM7Bq7FaPAFZLU5UMX-bWSWiaaAIXnQE7lZ7rI,11844
461
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py,sha256=ku_hfhd_VaqyC3yjQEiG6dJN-V6ADSBGF-YBpB5I54w,11934
462
462
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py,sha256=T5YMv-RzgYlzBaagnMO7WnKgbZ7PrOvm29Nn4vUhCHI,6587
463
463
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_pytorch.py,sha256=HRo0W5l4IJesr_np4ZhXoMk_xfdiV53LgamquQIryJA,5800
464
464
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/__init__.py,sha256=C2kwyDE1-rtukkbNSoKRv9q8Nt2GOCaBbl0BdOr3goA,721
465
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py,sha256=HoGjDwoSx2Y4dQua5v1qzzlnSl_HfDMK6bGWuZhPOzQ,11577
465
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py,sha256=8SHk1Ws9nLU9mDq6YV4pxDgeIH3n6NfKrRZk_Zv-JIk,11667
466
466
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py,sha256=LvqUkvpJKXBb9QETcHsmp9OGDwl9KWr457deag8GVuM,6595
467
467
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py,sha256=nP05jqvh6uaj30a3W7zEkJfKtqfP0Nz5bobwRqbYrdM,5807
468
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/__init__.py,sha256=tHTUvsaerSfbe22pU0kIDauPpFD7Pq5EmZytVIDkHz4,717
469
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py,sha256=Wi_pLHFcY3p_HlooT7e0uLE1wUpp4LsbfI2DN445tu8,12731
470
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py,sha256=VSPTv6pt6OX8Zpjdit5GK9WattHpKAi4sVByBzTwsgw,6626
471
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py,sha256=HRU8CRkmzfsvzw9AwhiB33HyRnR5oXxw__hD2OqfmN8,5800
468
472
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
469
473
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py,sha256=7KVcuz0LfngRKOsfcvBysxGVb9fqgoAO6MVTl1CmB5c,2082
470
474
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py,sha256=UUvUCcTots_sehdRnDfgkaE8WPQ7dPbeuhDF4Qy2nzw,1510
471
475
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py,sha256=t4JKsPcor-7KSCKzIwuaBv0NLNwfhuewAQGlDl6iBeo,717
472
- model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py,sha256=InHTtUwHxh8KeC430SX9gP17hUvXJ-REGCXIUCQBVhI,8106
476
+ model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py,sha256=czKvlJaa1tRllQSlzFBeyJF4u3ktwJG3LT0NUDK9yVg,8196
473
477
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py,sha256=h_hePXCggG2qktLuoNAOE1XNtc0qEwMyky7om1c8eC8,4483
474
478
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py,sha256=65WJPRCjliXEUL4AjZRxcyVS3y7KHTMDdkqy6D95kRw,3814
475
479
  model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
476
480
  model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py,sha256=Go0RJ1KcKoynCUSwGhxA1nsYsMmZEFSrxiL59iyE6LA,2077
477
481
  model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py,sha256=sK9PnyB2R9g0rqHr_9vyUFX7wSyrZe7x9yqYUlbaiqo,1505
478
482
  model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py,sha256=t4JKsPcor-7KSCKzIwuaBv0NLNwfhuewAQGlDl6iBeo,717
479
- model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py,sha256=PSoSEgn2Gprc3TpLyl2BCcn7tYW0KrFN-CXM7l8dwOo,9864
483
+ model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py,sha256=7Qn5PPAMm9-NNQq2SDJqXABW0dqOzjyGYB1LZFf4l3k,9954
480
484
  model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py,sha256=-4vNf2Q6c_rgaac19AFO8hG4ANaPfgNPf0kN44mL6TQ,6830
481
485
  model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py,sha256=YVJJvqGPBdkKnug99p9bjqtbfecDXZKIB2iWVCe7RUY,5960
482
486
  model_compression_toolkit/trainable_infrastructure/__init__.py,sha256=DwWh0lXiLNNzqHHNEy-Py6_5OtseNGJDGNV3SYm8rYQ,1224
@@ -521,8 +525,8 @@ model_compression_toolkit/xquant/pytorch/model_analyzer.py,sha256=b93o800yVB3Z-i
521
525
  model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py,sha256=yrZNVRm2IRU7r7R-hjS2lOQ6wvEEvbeunvf2jKoWjXk,3277
522
526
  model_compression_toolkit/xquant/pytorch/similarity_functions.py,sha256=CERxq5K8rqaiE-DlwhZBTUd9x69dtYJlkHOPLB54vm8,2354
523
527
  model_compression_toolkit/xquant/pytorch/tensorboard_utils.py,sha256=eyMoXt5o5EnMr6d-rpCwQdX5mAiYiymvbgKv4tf7-a0,4576
524
- mct_nightly-2.1.0.20240731.414.dist-info/LICENSE.md,sha256=aYSSIb-5AFPeITTvXm1UAoe0uYBiMmSS8flvXaaFUks,10174
525
- mct_nightly-2.1.0.20240731.414.dist-info/METADATA,sha256=osIwNW5CD1PapJbDjeK7m2qBoBHCrvGdh8HUCyGVRmU,19719
526
- mct_nightly-2.1.0.20240731.414.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
527
- mct_nightly-2.1.0.20240731.414.dist-info/top_level.txt,sha256=gsYA8juk0Z-ZmQRKULkb3JLGdOdz8jW_cMRjisn9ga4,26
528
- mct_nightly-2.1.0.20240731.414.dist-info/RECORD,,
528
+ mct_nightly-2.1.0.20240802.429.dist-info/LICENSE.md,sha256=aYSSIb-5AFPeITTvXm1UAoe0uYBiMmSS8flvXaaFUks,10174
529
+ mct_nightly-2.1.0.20240802.429.dist-info/METADATA,sha256=dD5-lDxpR3yswbdzzD-j_t_ak-HyK3-m2RgSaZnyAec,19719
530
+ mct_nightly-2.1.0.20240802.429.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
531
+ mct_nightly-2.1.0.20240802.429.dist-info/top_level.txt,sha256=gsYA8juk0Z-ZmQRKULkb3JLGdOdz8jW_cMRjisn9ga4,26
532
+ mct_nightly-2.1.0.20240802.429.dist-info/RECORD,,
@@ -27,4 +27,4 @@ from model_compression_toolkit import data_generation
27
27
  from model_compression_toolkit import pruning
28
28
  from model_compression_toolkit.trainable_infrastructure.keras.load_model import keras_load_quantized_model
29
29
 
30
- __version__ = "2.1.0.20240731.000414"
30
+ __version__ = "2.1.0.20240802.000429"
@@ -69,7 +69,8 @@ FLOAT_BITWIDTH = 32
69
69
  # that are shared among different candidates:
70
70
  WEIGHTS_NBITS_ATTRIBUTE = 'weights_n_bits'
71
71
  CORRECTED_BIAS_ATTRIBUTE = 'corrected_bias'
72
- ACTIVATION_NBITS_ATTRIBUTE = 'activation_n_bits'
72
+ ACTIVATION_N_BITS_ATTRIBUTE = 'activation_n_bits'
73
+ SUPPORTED_INPUT_ACTIVATION_NBITS_ATTRIBUTE = 'supported_input_activation_n_bits'
73
74
 
74
75
  # Quantization Parameters Iterative Search Defaults:
75
76
  SYMMETRIC_TENSOR_N_ITER = 40
@@ -348,24 +348,20 @@ class FrameworkImplementation(ABC):
348
348
  raise NotImplemented(f'{self.__class__.__name__} have to implement the '
349
349
  f'framework\'s count_node_for_mixed_precision_interest_points method.') # pragma: no cover
350
350
 
351
- def get_mp_node_distance_fn(self, layer_class: type,
352
- framework_attrs: Dict[str, Any],
353
- compute_distance_fn: Callable = None,
354
- axis: int = None,
355
- norm_mse: bool = False) -> Callable:
351
+ def get_mp_node_distance_fn(self, n: BaseNode,
352
+ compute_distance_fn: Callable = None,
353
+ norm_mse: bool = False) -> Tuple[Callable, int]:
356
354
  """
357
355
  A mapping between layers' types and a distance function for computing the distance between
358
356
  two tensors in mixed precision (for loss computation purposes). Returns a specific function if node of specific types is
359
357
  given, or a default (normalized MSE) function otherwise.
360
358
 
361
359
  Args:
362
- layer_class: Class path of a model's layer.
363
- framework_attrs: Framework attributes the layer had which the graph node holds.
360
+ n: Node to choose distance function for.
364
361
  compute_distance_fn: An optional distance function to use globally for all nodes.
365
- axis: The axis on which the operation is preformed (if specified).
366
362
  norm_mse: whether to normalize mse distance function.
367
363
 
368
- Returns: A distance function between two tensors.
364
+ Returns: A distance function between two tensors and a axis on which the distance is computed (if exists).
369
365
  """
370
366
 
371
367
  raise NotImplemented(f'{self.__class__.__name__} have to implement the '
@@ -440,7 +440,7 @@ class Graph(nx.MultiDiGraph, GraphSearches):
440
440
 
441
441
  output_nodes = [ot.node for ot in self.get_outputs()] # get output nodes from namedtuples
442
442
  if node_to_remove in output_nodes: # If node is in the graph's outputs, the outputs should be updated
443
- if new_graph_outputs is None:
443
+ if new_graph_outputs is None: # pragma: no cover
444
444
  Logger.critical(
445
445
  f"{node_to_remove.name} is among the graph outputs; however, it cannot be removed without providing a new output.") # pragma: no cover
446
446
  self.set_outputs(new_graph_outputs)
@@ -506,28 +506,6 @@ class Graph(nx.MultiDiGraph, GraphSearches):
506
506
  output_edges.sort(key=lambda e: getattr(e, sort_by_attr))
507
507
  return output_edges
508
508
 
509
- def get_memory(self) -> float:
510
- """
511
-
512
- Returns: Total memory consumption of the graph in bytes.
513
-
514
- """
515
- memory = 0
516
- for n in self.nodes:
517
- memory += n.get_memory_bytes(self.fw_info)
518
- return memory
519
-
520
- def get_float_memory(self) -> float:
521
- """
522
-
523
- Returns: Total memory consumption of the float graph in bytes.
524
-
525
- """
526
- memory = 0
527
- for n in self.nodes:
528
- memory += n.get_float_memory_bytes(self.fw_info)
529
- return memory
530
-
531
509
  def get_configurable_sorted_nodes_names(self,
532
510
  fw_info: FrameworkInfo,
533
511
  include_reused_nodes: bool = False) -> List[str]:
@@ -19,11 +19,11 @@ from typing import Dict, Any, Tuple, List, Type, Union
19
19
  import numpy as np
20
20
 
21
21
  from model_compression_toolkit.constants import WEIGHTS_NBITS_ATTRIBUTE, CORRECTED_BIAS_ATTRIBUTE, \
22
- ACTIVATION_NBITS_ATTRIBUTE, FP32_BYTES_PER_PARAMETER
22
+ ACTIVATION_N_BITS_ATTRIBUTE, FP32_BYTES_PER_PARAMETER
23
23
  from model_compression_toolkit.core.common.quantization.node_quantization_config import WeightsAttrQuantizationConfig
24
24
  from model_compression_toolkit.logger import Logger
25
25
  from model_compression_toolkit.target_platform_capabilities.target_platform import QuantizationConfigOptions, \
26
- TargetPlatformCapabilities, LayerFilterParams
26
+ TargetPlatformCapabilities, LayerFilterParams, OpQuantizationConfig
27
27
 
28
28
 
29
29
  class BaseNode:
@@ -297,19 +297,6 @@ class BaseNode:
297
297
 
298
298
  return memory
299
299
 
300
- def get_float_memory_bytes(self, fw_info) -> float:
301
- """
302
- Compute the number of bytes the node's memory requires.
303
-
304
- Args:
305
- fw_info: Framework info to decide which attributes should be quantized.
306
-
307
- Returns: Number of bytes the node's memory requires when in floating point (32 bit).
308
-
309
- """
310
- q_params, f_params = self.get_num_parameters(fw_info)
311
- return (f_params + q_params) * FP32_BYTES_PER_PARAMETER
312
-
313
300
  def get_unified_weights_candidates_dict(self, fw_info) -> Dict[str, Any]:
314
301
  """
315
302
  In Mixed-Precision, a node's kernel can have multiple candidates for weights quantization configuration.
@@ -355,7 +342,7 @@ class BaseNode:
355
342
  Returns: A dictionary containing information from node's activation quantization configuration candidates.
356
343
 
357
344
  """
358
- shared_attributes = [ACTIVATION_NBITS_ATTRIBUTE]
345
+ shared_attributes = [ACTIVATION_N_BITS_ATTRIBUTE]
359
346
  attr = dict()
360
347
  if self.is_activation_quantization_enabled():
361
348
  attr = copy.deepcopy(self.candidates_quantization_cfg[0].activation_quantization_cfg.__dict__)
@@ -436,20 +423,6 @@ class BaseNode:
436
423
 
437
424
  return sum([np.prod([x for x in output_shape if x is not None]) for output_shape in output_shapes])
438
425
 
439
- def get_total_input_params(self) -> float:
440
- """
441
- Calculates the total parameters in the node's input tensors.
442
-
443
- Returns: Input size (i.e., total number of parameters).
444
- """
445
-
446
- input_shapes = self.input_shape if isinstance(self.input_shape, List) else [self.input_shape]
447
-
448
- # remove batch size (first element) from input shape
449
- input_shapes = [s[1:] for s in input_shapes]
450
-
451
- return sum([np.prod([x for x in input_shape if x is not None]) for input_shape in input_shapes])
452
-
453
426
  def find_min_candidates_indices(self) -> List[int]:
454
427
  """
455
428
  Returns a list with potential minimal candidates.
@@ -565,7 +538,7 @@ class BaseNode:
565
538
  to the mappings from layers/LayerFilterParams to the OperatorsSet in the TargetPlatformModel.
566
539
 
567
540
  Args:
568
- tpc: TPC to extract the QuantizationConfigOptions for the node
541
+ tpc: TPC to extract the QuantizationConfigOptions for the node.
569
542
 
570
543
  Returns:
571
544
  QuantizationConfigOptions of the node.
@@ -585,6 +558,52 @@ class BaseNode:
585
558
  return matching_qcos[0]
586
559
  return tpc.tp_model.default_qco
587
560
 
561
+ def filter_node_qco_by_graph(self, tpc: TargetPlatformCapabilities,
562
+ next_nodes: List, node_qc_options: QuantizationConfigOptions
563
+ ) -> Tuple[OpQuantizationConfig, List[OpQuantizationConfig]]:
564
+ """
565
+ Filter quantization config options that don't match the graph.
566
+ A node may have several quantization config options with 'activation_n_bits' values, and
567
+ the next nodes in the graph may support different bit-width as input activation. This function
568
+ filters out quantization config that don't comply to these attributes.
569
+
570
+ Args:
571
+ tpc: TPC to extract the QuantizationConfigOptions for the next nodes.
572
+ next_nodes: Output nodes of current node.
573
+ node_qc_options: Node's QuantizationConfigOptions.
574
+
575
+ Returns:
576
+
577
+ """
578
+ # Filter quantization config options that don't match the graph.
579
+ _base_config = node_qc_options.base_config
580
+ _node_qc_options = node_qc_options.quantization_config_list
581
+ if len(next_nodes):
582
+ next_nodes_qc_options = [_node.get_qco(tpc) for _node in next_nodes]
583
+ next_nodes_supported_input_bitwidth = min([op_cfg.max_input_activation_n_bits
584
+ for qc_opts in next_nodes_qc_options
585
+ for op_cfg in qc_opts.quantization_config_list])
586
+
587
+ # Filter node's QC options that match next nodes input bit-width.
588
+ _node_qc_options = [_option for _option in _node_qc_options
589
+ if _option.activation_n_bits <= next_nodes_supported_input_bitwidth]
590
+ if len(_node_qc_options) == 0:
591
+ Logger.critical(f"Graph doesn't match TPC bit configurations: {self} -> {next_nodes}.") # pragma: no cover
592
+
593
+ # Verify base config match
594
+ if any([node_qc_options.base_config.activation_n_bits > qc_opt.base_config.max_input_activation_n_bits
595
+ for qc_opt in next_nodes_qc_options]):
596
+ # base_config activation bits doesn't match next node supported input bit-width -> replace with
597
+ # a qco from quantization_config_list with maximum activation bit-width.
598
+ if len(_node_qc_options) > 0:
599
+ output_act_bitwidth = {qco.activation_n_bits: i for i, qco in enumerate(_node_qc_options)}
600
+ _base_config = _node_qc_options[output_act_bitwidth[max(output_act_bitwidth)]]
601
+ Logger.warning(f"Node {self} base quantization config changed to match Graph and TPC configuration.\nCause: {self} -> {next_nodes}.")
602
+ else:
603
+ Logger.critical(f"Graph doesn't match TPC bit configurations: {self} -> {next_nodes}.") # pragma: no cover
604
+
605
+ return _base_config, _node_qc_options
606
+
588
607
  def is_match_type(self, _type: Type) -> bool:
589
608
  """
590
609
  Check if input type matches the node type, either in instance type or in type name.
@@ -644,10 +663,10 @@ class BaseNode:
644
663
  if len(simd_list) > 1:
645
664
  Logger.warning(f"More than one pruning SIMD option is available."
646
665
  f" Min SIMD is used: {min(simd_list)}")
647
- if len(simd_list) == 0:
666
+ if len(simd_list) == 0: # pragma: no cover
648
667
  Logger.critical(f"No SIMD option is available for {self}")
649
668
  _simd = min(simd_list)
650
- if _simd <= 0 or int(_simd) != _simd:
669
+ if _simd <= 0 or int(_simd) != _simd: # pragma: no cover
651
670
  Logger.critical(f"SIMD is expected to be a non-positive integer but found: {_simd}")
652
671
  return _simd
653
672
 
@@ -195,12 +195,12 @@ def compute_total_bops(graph: Graph, fw_info: FrameworkInfo, fw_impl: FrameworkI
195
195
 
196
196
 
197
197
  def requires_mixed_precision(in_model: Any,
198
- target_resource_utilization: ResourceUtilization,
199
- representative_data_gen: Callable,
200
- core_config: CoreConfig,
201
- tpc: TargetPlatformCapabilities,
202
- fw_info: FrameworkInfo,
203
- fw_impl: FrameworkImplementation) -> bool:
198
+ target_resource_utilization: ResourceUtilization,
199
+ representative_data_gen: Callable,
200
+ core_config: CoreConfig,
201
+ tpc: TargetPlatformCapabilities,
202
+ fw_info: FrameworkInfo,
203
+ fw_impl: FrameworkImplementation) -> bool:
204
204
  """
205
205
  The function checks whether the model requires mixed precision to meet the requested target resource utilization.
206
206
  This is determined by whether the target memory usage of the weights is less than the available memory,
@@ -77,7 +77,8 @@ class SensitivityEvaluation:
77
77
  self.disable_activation_for_metric = disable_activation_for_metric
78
78
  if self.quant_config.use_hessian_based_scores:
79
79
  if not isinstance(hessian_info_service, HessianInfoService):
80
- Logger.critical(f"When using Hessian-based approximations for sensitivity evaluation, a valid HessianInfoService object is required; found {type(hessian_info_service)}.")
80
+ Logger.critical(
81
+ f"When using Hessian-based approximations for sensitivity evaluation, a valid HessianInfoService object is required; found {type(hessian_info_service)}.")
81
82
  self.hessian_info_service = hessian_info_service
82
83
 
83
84
  self.sorted_configurable_nodes_names = graph.get_configurable_sorted_nodes_names(self.fw_info)
@@ -94,7 +95,8 @@ class SensitivityEvaluation:
94
95
  self.ips_distance_fns, self.ips_axis = self._init_metric_points_lists(self.interest_points, use_normalized_mse)
95
96
 
96
97
  self.output_points = get_output_nodes_for_metric(graph)
97
- self.out_ps_distance_fns, self.out_ps_axis = self._init_metric_points_lists(self.output_points, use_normalized_mse)
98
+ self.out_ps_distance_fns, self.out_ps_axis = self._init_metric_points_lists(self.output_points,
99
+ use_normalized_mse)
98
100
 
99
101
  # Setting lists with relative position of the interest points
100
102
  # and output points in the list of all mp model activation tensors
@@ -130,7 +132,8 @@ class SensitivityEvaluation:
130
132
  self.interest_points_hessians = self._compute_hessian_based_scores()
131
133
  self.quant_config.distance_weighting_method = lambda d: self.interest_points_hessians
132
134
 
133
- def _init_metric_points_lists(self, points: List[BaseNode], norm_mse: bool = False) -> Tuple[List[Callable], List[int]]:
135
+ def _init_metric_points_lists(self, points: List[BaseNode], norm_mse: bool = False) -> Tuple[
136
+ List[Callable], List[int]]:
134
137
  """
135
138
  Initiates required lists for future use when computing the sensitivity metric.
136
139
  Each point on which the metric is computed uses a dedicated distance function based on its type.
@@ -146,16 +149,12 @@ class SensitivityEvaluation:
146
149
  distance_fns_list = []
147
150
  axis_list = []
148
151
  for n in points:
149
- axis = n.framework_attr.get(AXIS) if not isinstance(n, FunctionalNode) else n.op_call_kwargs.get(AXIS)
150
- distance_fn = self.fw_impl.get_mp_node_distance_fn(
151
- layer_class=n.layer_class,
152
- framework_attrs=n.framework_attr,
153
- compute_distance_fn=self.quant_config.compute_distance_fn,
154
- axis=axis,
155
- norm_mse=norm_mse)
152
+ distance_fn, axis = self.fw_impl.get_mp_node_distance_fn(n,
153
+ compute_distance_fn=self.quant_config.compute_distance_fn,
154
+ norm_mse=norm_mse)
156
155
  distance_fns_list.append(distance_fn)
157
156
  # Axis is needed only for KL Divergence calculation, otherwise we use per-tensor computation
158
- axis_list.append(axis if distance_fn==compute_kl_divergence else None)
157
+ axis_list.append(axis if distance_fn == compute_kl_divergence else None)
159
158
  return distance_fns_list, axis_list
160
159
 
161
160
  def compute_metric(self,
@@ -300,7 +299,8 @@ class SensitivityEvaluation:
300
299
  node_name = sorted_configurable_nodes_names[node_idx_to_configure]
301
300
  layers_to_config = self.conf_node2layers.get(node_name, None)
302
301
  if layers_to_config is None:
303
- Logger.critical(f"Matching layers for node {node_name} not found in the mixed precision model configuration.") # pragma: no cover
302
+ Logger.critical(
303
+ f"Matching layers for node {node_name} not found in the mixed precision model configuration.") # pragma: no cover
304
304
 
305
305
  for current_layer in layers_to_config:
306
306
  self.set_layer_to_bitwidth(current_layer, mp_model_configuration[node_idx_to_configure])