mct-nightly 2.2.0.20250106.546__py3-none-any.whl → 2.2.0.20250107.15510__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.
- {mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/METADATA +1 -1
- {mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/RECORD +43 -78
- model_compression_toolkit/__init__.py +1 -1
- model_compression_toolkit/core/__init__.py +1 -1
- model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +1 -1
- model_compression_toolkit/core/common/graph/memory_graph/cut.py +5 -2
- model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +25 -25
- model_compression_toolkit/core/common/quantization/quantization_config.py +19 -1
- model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +1 -33
- model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py +2 -2
- model_compression_toolkit/core/keras/resource_utilization_data_facade.py +11 -1
- model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py +499 -0
- model_compression_toolkit/core/pytorch/pytorch_implementation.py +3 -0
- model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +11 -3
- model_compression_toolkit/gptq/keras/quantization_facade.py +10 -1
- model_compression_toolkit/gptq/pytorch/quantization_facade.py +10 -1
- model_compression_toolkit/pruning/keras/pruning_facade.py +8 -2
- model_compression_toolkit/pruning/pytorch/pruning_facade.py +8 -2
- model_compression_toolkit/ptq/keras/quantization_facade.py +10 -1
- model_compression_toolkit/ptq/pytorch/quantization_facade.py +9 -1
- model_compression_toolkit/qat/__init__.py +5 -2
- model_compression_toolkit/qat/keras/quantization_facade.py +9 -1
- model_compression_toolkit/qat/pytorch/quantization_facade.py +9 -1
- model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py +1 -1
- model_compression_toolkit/target_platform_capabilities/schema/v1.py +63 -55
- model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2fw.py +29 -18
- model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2keras.py +78 -57
- model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2pytorch.py +69 -54
- model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +2 -4
- model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -10
- model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py +93 -0
- model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +46 -28
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +6 -5
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +51 -19
- model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +8 -4
- model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +19 -9
- model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +7 -4
- model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +46 -32
- model_compression_toolkit/xquant/keras/keras_report_utils.py +11 -3
- model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py +10 -2
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -98
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -129
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -108
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -217
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -130
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -109
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -215
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -130
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -110
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py +0 -222
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py +0 -132
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py +0 -110
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py +0 -219
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py +0 -132
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py +0 -109
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py +0 -246
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py +0 -135
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_pytorch.py +0 -113
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py +0 -230
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py +0 -132
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py +0 -110
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/__init__.py +0 -16
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py +0 -332
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py +0 -140
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py +0 -122
- model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -55
- model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -89
- model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -78
- model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -55
- model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -118
- model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -100
- {mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/LICENSE.md +0 -0
- {mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/WHEEL +0 -0
- {mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/top_level.txt +0 -0
{mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: mct-nightly
|
3
|
-
Version: 2.2.0.
|
3
|
+
Version: 2.2.0.20250107.15510
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Classifier: License :: OSI Approved :: Apache Software License
|
{mct_nightly-2.2.0.20250106.546.dist-info → mct_nightly-2.2.0.20250107.15510.dist-info}/RECORD
RENAMED
@@ -1,10 +1,10 @@
|
|
1
|
-
model_compression_toolkit/__init__.py,sha256=
|
1
|
+
model_compression_toolkit/__init__.py,sha256=2YnbOvrfArKHSGDUnbQ59awLfgOIYR-Owy8e4iFZ8PE,1573
|
2
2
|
model_compression_toolkit/constants.py,sha256=i_R6uXBfO1ph_X6DNJych2x59SUojfJbn7dNjs_mZnc,3846
|
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=CsW86SsLEKUK4Unn0JImTJ1sHGGTPfl25cUkYNMSML0,3916
|
6
6
|
model_compression_toolkit/verify_packages.py,sha256=TlS-K1EP-QsghqWUW7SDPkAJiUf7ryw4tvhFDe6rCUk,1405
|
7
|
-
model_compression_toolkit/core/__init__.py,sha256=
|
7
|
+
model_compression_toolkit/core/__init__.py,sha256=8a0wUNBKwTdJGDk_Ho6WQAXjGuCqQZG1FUxxJlAV8L8,2096
|
8
8
|
model_compression_toolkit/core/analyzer.py,sha256=X-2ZpkH1xdXnISnw1yJvXnvV-ssoUh-9LkLISSWNqiY,3691
|
9
9
|
model_compression_toolkit/core/graph_prep_runner.py,sha256=7-b7Jd5jBVaXOWg5nSqbEyzBtdaGDbCxs8aqMV6GZ6I,11287
|
10
10
|
model_compression_toolkit/core/quantization_prep_runner.py,sha256=OtL6g2rTC5mfdKrkzm47EPPW-voGGVYMYxpy2_sfu1U,6547
|
@@ -41,9 +41,9 @@ model_compression_toolkit/core/common/graph/graph_searches.py,sha256=2oKuW6L8hP-
|
|
41
41
|
model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py,sha256=3el-A7j1oyoo1_9zq3faQp7IeRsFXFCvnrb3zZFXpU0,9803
|
42
42
|
model_compression_toolkit/core/common/graph/memory_graph/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
43
43
|
model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py,sha256=X6FK3C3y8ixFRPjC_wm3ClloCX8_06SOdA1TRi7o_LA,3800
|
44
|
-
model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py,sha256=
|
45
|
-
model_compression_toolkit/core/common/graph/memory_graph/cut.py,sha256=
|
46
|
-
model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py,sha256=
|
44
|
+
model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py,sha256=Na1lAoCJCSQw7XGYsV5xCZg762lbP6Y_uAhsUeLP0yM,2870
|
45
|
+
model_compression_toolkit/core/common/graph/memory_graph/cut.py,sha256=GctdLnhsPJgY6UGwRcLNpKE8OLkfVWT3wgby2r9QDD4,2645
|
46
|
+
model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py,sha256=ZBFIOBBRHuRsiEW31EMwCVb9J7dJo5XBShA_9nnkrRI,17521
|
47
47
|
model_compression_toolkit/core/common/graph/memory_graph/memory_element.py,sha256=ISD2BvJWj5mB91jrFjG8VQb0oOoLBoita_thCZWzCPI,4238
|
48
48
|
model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py,sha256=3OC8kMXuzBv-R7wWmKY-i1AQNAr5x3LBZ4aj7hHF-cQ,7791
|
49
49
|
model_compression_toolkit/core/common/hessian/__init__.py,sha256=E7LK3K_1AwMCQokanNc1JODMwUKNOKmwXQiGQ7GO10I,1033
|
@@ -106,7 +106,7 @@ model_compression_toolkit/core/common/quantization/core_config.py,sha256=yxCzWql
|
|
106
106
|
model_compression_toolkit/core/common/quantization/debug_config.py,sha256=zJP2W9apUPX9RstpPWWK71wr9xJsg7j-s7lGV4_bQdc,1510
|
107
107
|
model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py,sha256=fwF4VILaX-u3ZaFd81xjbJuhg8Ef-JX_KfMXW0TPV-I,7136
|
108
108
|
model_compression_toolkit/core/common/quantization/node_quantization_config.py,sha256=PjMZ-otuenng393NS5ZWwdxmpIhDncukHhbYBK3QGVk,26527
|
109
|
-
model_compression_toolkit/core/common/quantization/quantization_config.py,sha256=
|
109
|
+
model_compression_toolkit/core/common/quantization/quantization_config.py,sha256=N12rSoayyDceCOf2FC2aZ-FPEzd_XV_N_tjflJQfDcI,4607
|
110
110
|
model_compression_toolkit/core/common/quantization/quantization_fn_selection.py,sha256=eyosbVdnCwed7oMQ19tqnh0VoyGZ_UAuD_UnNoXyBpo,2210
|
111
111
|
model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py,sha256=MwIOBZ4BlZSTIOG75PDvlI3JmZ6t8YjPc1VP9Adei60,3847
|
112
112
|
model_compression_toolkit/core/common/quantization/quantize_graph_weights.py,sha256=N005MSvx8UypVpa7XrxNrB2G732n2wHj3RmLyjTgd3I,2728
|
@@ -160,13 +160,13 @@ model_compression_toolkit/core/keras/default_framework_info.py,sha256=PYcER89eEX
|
|
160
160
|
model_compression_toolkit/core/keras/keras_implementation.py,sha256=HwbIR7x4t-TBNbWHVvVNFk8z-KFt6zM0LWAUXQuNZrk,31753
|
161
161
|
model_compression_toolkit/core/keras/keras_model_validation.py,sha256=1wNV2clFdC9BzIELRLSO2uKf0xqjLqlkTJudwtCeaJk,1722
|
162
162
|
model_compression_toolkit/core/keras/keras_node_prior_info.py,sha256=HUmzEXDQ8LGX7uOYSRiLZ2TNbYxLX9J9IeAa6QYlifg,3927
|
163
|
-
model_compression_toolkit/core/keras/resource_utilization_data_facade.py,sha256=
|
163
|
+
model_compression_toolkit/core/keras/resource_utilization_data_facade.py,sha256=7F-VOleIF_QqVeOjOUZRkPJoe6eqQJJbEtfsvhtjnBI,5551
|
164
164
|
model_compression_toolkit/core/keras/tf_tensor_numpy.py,sha256=jzD8FGEEa8ZD7w8IpTRdp-Udf1MwOTgjg2XTS1Givic,2696
|
165
165
|
model_compression_toolkit/core/keras/back2framework/__init__.py,sha256=rhIiXg_nBgUZ-baE3M6SzCuQbcnq4iebY1jtJBvKHOM,808
|
166
166
|
model_compression_toolkit/core/keras/back2framework/factory_model_builder.py,sha256=UIQgOOdexycrSKombTMJVvTthR7MlrCihoqM8Kg-rnE,2293
|
167
167
|
model_compression_toolkit/core/keras/back2framework/float_model_builder.py,sha256=9SFHhX-JnkB8PvYIIHRYlReBDI_RkZY9LditzW_ElLk,2444
|
168
168
|
model_compression_toolkit/core/keras/back2framework/instance_builder.py,sha256=fBj13c6zkVoWX4JJG18_uXPptiEJqXClE_zFbaFB6Q8,4517
|
169
|
-
model_compression_toolkit/core/keras/back2framework/keras_model_builder.py,sha256=
|
169
|
+
model_compression_toolkit/core/keras/back2framework/keras_model_builder.py,sha256=TY86-Mb8hmo8RgCcQvkSYIthYOqV9e4VIMpqIyouJ4Y,17397
|
170
170
|
model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py,sha256=emsaCYyZBF7oQfXAR0edU7idiMInXLXRuGPcrUp4slM,15301
|
171
171
|
model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py,sha256=5wFb4nx_F0Wu4c8pLf6n6OzxOHtpOJ6_3mQsNSXIudU,2481
|
172
172
|
model_compression_toolkit/core/keras/graph_substitutions/__init__.py,sha256=mjbqLD-KcG3eNeCYpu1GBS7VclGVOQ63x2p6mAAuba4,698
|
@@ -176,7 +176,7 @@ model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm
|
|
176
176
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py,sha256=GR1a3mCZpNUu4WxixJXF_aSm57phAdxaRoHecNx3hxw,3168
|
177
177
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py,sha256=5df_xGfXkqNub4xVRnCWQvSohWqdv12axjJ6edVU2H0,2478
|
178
178
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/concat_threshold_update.py,sha256=Hl4LEQ_bw_Vpmf3ZqHujYUqVdvTNsPlEMvr9dZhwg2U,2806
|
179
|
-
model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py,sha256=
|
179
|
+
model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py,sha256=vZr8Agj-tFKSX7TM2nZjwbHElJqSIyMAaR7FH-lp4YM,11691
|
180
180
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py,sha256=R3U7cjc2E0zheMem16GHygp5jZFGSaomkNOTxTjcAgw,5794
|
181
181
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py,sha256=V6hp67CkS_A3WqdsjLjs0ETtdZAOo4P9mhy4aT7W5FE,5940
|
182
182
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py,sha256=AvquvVVVT8-ioeVn-gjqysK4L41L3I7TlNOEDfWjViY,8185
|
@@ -223,9 +223,9 @@ model_compression_toolkit/core/pytorch/constants.py,sha256=YwD_joIF0vK8UG2vW1NVv
|
|
223
223
|
model_compression_toolkit/core/pytorch/data_util.py,sha256=YYbT135HhlTt0q6XdD2JX7AS_L92f_uV2rWq2hsJOCA,6325
|
224
224
|
model_compression_toolkit/core/pytorch/default_framework_info.py,sha256=-Vls1P_8Ckm_18nnOsmQkZ71SmzHwtQLbQ383Z4Rb-U,4365
|
225
225
|
model_compression_toolkit/core/pytorch/pytorch_device_config.py,sha256=S25cuw10AW3SEN_fRAGRcG_I3wdvvQx1ehSJzPnn-UI,4404
|
226
|
-
model_compression_toolkit/core/pytorch/pytorch_implementation.py,sha256=
|
226
|
+
model_compression_toolkit/core/pytorch/pytorch_implementation.py,sha256=7jzJ4TBKNwwQ9E7W-My8LkmYEJHHNn8weNuO1PCGS10,29830
|
227
227
|
model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py,sha256=2LDQ7qupglHQ7o1Am7LWdfYVacfQnl-aW2N6l9det1w,3264
|
228
|
-
model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py,sha256=
|
228
|
+
model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py,sha256=0DwOwMUCYAUyTRFcrlXyUO2S7HftnNqsh1JEoMK2TpM,5472
|
229
229
|
model_compression_toolkit/core/pytorch/utils.py,sha256=7VbgcLwtQvdEEc_AJgSOQ3U3KRKCICFPaBirN1fIQxg,3940
|
230
230
|
model_compression_toolkit/core/pytorch/back2framework/__init__.py,sha256=H_WixgN0elVWf3exgGYsi58imPoYDj5eYPeh6x4yfug,813
|
231
231
|
model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py,sha256=bwppTPRs6gL96nm7qPiKrNcBj4Krr0yEsOWjRF0aXmQ,2339
|
@@ -248,6 +248,7 @@ model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functio
|
|
248
248
|
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py,sha256=XhiLVcnCc_gF-6mjxbf9C4bYg5YL_GCvDJmcdLkBNAg,4151
|
249
249
|
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_linear.py,sha256=3-OHYPun5Rt7GITqV3ZekJk59tsuY9ZYSpRpxKsNEVA,3450
|
250
250
|
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py,sha256=CXSMASpc_Zed3BJ2CsER69zKxE6ncFvvKQWDO1JxKYI,5849
|
251
|
+
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/matmul_decomposition.py,sha256=cYV-3Eik_0gv2sDZPdpUP-mXOT4E0I5wikr0C7z6omg,20309
|
251
252
|
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py,sha256=VNg-VgzCxSyqy2J3neEPl6U0SPO8UIVU_T47bGhz4FE,38459
|
252
253
|
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py,sha256=q1a3HieQtaOmWG2WGXp6GHYAvxa3CZ9dJUx9dqMAsS8,5695
|
253
254
|
model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/remove_identity.py,sha256=joHjwiUxccypMHkTy46rI91VyapLn9yJ2YRo5ISnOH4,1987
|
@@ -363,7 +364,7 @@ model_compression_toolkit/gptq/keras/gptq_keras_implementation.py,sha256=axBwnCS
|
|
363
364
|
model_compression_toolkit/gptq/keras/gptq_loss.py,sha256=2hzWzsbuVd5XcL85NM57YeOyHxRY0qMArKn8NvQ1UWw,7643
|
364
365
|
model_compression_toolkit/gptq/keras/gptq_training.py,sha256=0WGiP7Gs4xX3FBs1PNaZ7w3hWRigwQXqYjBrs_-x32o,23241
|
365
366
|
model_compression_toolkit/gptq/keras/graph_info.py,sha256=zwoeHX67nJJ5-zYLjzvMXS9TLsy9BsizARbZiDVjVSA,4473
|
366
|
-
model_compression_toolkit/gptq/keras/quantization_facade.py,sha256=
|
367
|
+
model_compression_toolkit/gptq/keras/quantization_facade.py,sha256=meRKqpzZe2Irf21L_rN_mkr5dqPTJHzfSFBeqv4Csp4,18536
|
367
368
|
model_compression_toolkit/gptq/keras/quantizer/__init__.py,sha256=-DK1CDXvlsnEbki4lukZLpl6Xrbo91_jcqxXlG5Eg6Q,963
|
368
369
|
model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py,sha256=Rbl9urzkmACvVxICSEyJ02qFOBxWK0UQWtysFJzBVZw,4899
|
369
370
|
model_compression_toolkit/gptq/keras/quantizer/quant_utils.py,sha256=Vt7Qb8i4JsE4sFtcjpfM4FTXTtfV1t6SwfoNH8a_Iaw,5055
|
@@ -379,7 +380,7 @@ model_compression_toolkit/gptq/pytorch/gptq_loss.py,sha256=_07Zx_43bnNokwR5S8phI
|
|
379
380
|
model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py,sha256=tECPTavxn8EEwgLaP2zvxdJH6Vg9jC0YOIMJ7857Sdc,1268
|
380
381
|
model_compression_toolkit/gptq/pytorch/gptq_training.py,sha256=WtehnyiYXdUXf8-uNpV0mdsalF7YF7eKnL7tcFrzZoE,19549
|
381
382
|
model_compression_toolkit/gptq/pytorch/graph_info.py,sha256=4mVM-VvnBaA64ACVdOe6wTGHdMSa2UTLIUe7nACLcdo,4008
|
382
|
-
model_compression_toolkit/gptq/pytorch/quantization_facade.py,sha256=
|
383
|
+
model_compression_toolkit/gptq/pytorch/quantization_facade.py,sha256=kMSq9mrpcgMBRgrEKfMBHaJG6HhGRYnuiDzF4ofckwo,16581
|
383
384
|
model_compression_toolkit/gptq/pytorch/quantizer/__init__.py,sha256=ZHNHo1yzye44m9_ht4UUZfTpK01RiVR3Tr74-vtnOGI,968
|
384
385
|
model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py,sha256=fKg-PNOhGBiL-4eySS9Fyw0GkA76Pq8jT_HbJuJ8iZU,4143
|
385
386
|
model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py,sha256=OocYYRqvl7rZ37QT0hTzfJnWGiNCPskg7cziTlR7TRk,3893
|
@@ -392,20 +393,20 @@ model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py,sha256
|
|
392
393
|
model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py,sha256=6uxq_w62jn8DDOt9T7VtA6jZ8jTAPcbTufKFOYpVUm4,8768
|
393
394
|
model_compression_toolkit/pruning/__init__.py,sha256=lQMZS8G0pvR1LVi53nnJHNXgLNTan_MWMdwsVxhjrow,1106
|
394
395
|
model_compression_toolkit/pruning/keras/__init__.py,sha256=3Lkr37Exk9u8811hw8hVqkGcbTQGcLjd3LLuLC3fa_E,698
|
395
|
-
model_compression_toolkit/pruning/keras/pruning_facade.py,sha256=
|
396
|
+
model_compression_toolkit/pruning/keras/pruning_facade.py,sha256=gZPePLuTtSAiFCJ0Y-b_HPizsMKt3mSJKepGo2fMBO8,9202
|
396
397
|
model_compression_toolkit/pruning/pytorch/__init__.py,sha256=pKAdbTCFM_2BrZXUtTIw0ouKotrWwUDF_hP3rPwCM2k,696
|
397
|
-
model_compression_toolkit/pruning/pytorch/pruning_facade.py,sha256=
|
398
|
+
model_compression_toolkit/pruning/pytorch/pruning_facade.py,sha256=FMYyawF2qJtKqegljGB0-0YdoCqnR3VskKNajNJSqL8,9885
|
398
399
|
model_compression_toolkit/ptq/__init__.py,sha256=Z_hkmTh7aLFei1DJKV0oNVUbrv_Q_0CTw-qD85Xf8UM,904
|
399
400
|
model_compression_toolkit/ptq/runner.py,sha256=_c1dSjlPPpsx59Vbg1buhG9bZq__OORz1VlPkwjJzoc,2552
|
400
401
|
model_compression_toolkit/ptq/keras/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
401
|
-
model_compression_toolkit/ptq/keras/quantization_facade.py,sha256=
|
402
|
+
model_compression_toolkit/ptq/keras/quantization_facade.py,sha256=imGxmB397g96CpoeA0muxShj5dhHaPvLBGQdPn_RYgw,11466
|
402
403
|
model_compression_toolkit/ptq/pytorch/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
403
|
-
model_compression_toolkit/ptq/pytorch/quantization_facade.py,sha256=
|
404
|
-
model_compression_toolkit/qat/__init__.py,sha256=
|
404
|
+
model_compression_toolkit/ptq/pytorch/quantization_facade.py,sha256=WRuNjoR8PgY0A22V5YQa5R1biOOiF99oAJyGSkUZ7t8,9869
|
405
|
+
model_compression_toolkit/qat/__init__.py,sha256=AaC4KBha4jDW_tyg2SOxZaKh_idIz0gZtDK3_zxs64E,1241
|
405
406
|
model_compression_toolkit/qat/common/__init__.py,sha256=6tLZ4R4pYP6QVztLVQC_jik2nES3l4uhML0qUxZrezk,829
|
406
407
|
model_compression_toolkit/qat/common/qat_config.py,sha256=xtfVSoyELGXynHNrw86dB9FU3Inu0zwehc3wLrh7JvY,2918
|
407
408
|
model_compression_toolkit/qat/keras/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
408
|
-
model_compression_toolkit/qat/keras/quantization_facade.py,sha256=
|
409
|
+
model_compression_toolkit/qat/keras/quantization_facade.py,sha256=N5PY4jI2t4CpIncRBXzAHd6-4ZOi03wt2NllI1F1Mmk,17771
|
409
410
|
model_compression_toolkit/qat/keras/quantizer/__init__.py,sha256=zmYyCa25_KLCSUCGUDRslh3RCIjcRMxc_oXa54Aui-4,996
|
410
411
|
model_compression_toolkit/qat/keras/quantizer/base_keras_qat_weight_quantizer.py,sha256=EbIt4lMlh6cU4awFLMBp0IlZ2zUUp-WtnlW5Wn19FDM,1793
|
411
412
|
model_compression_toolkit/qat/keras/quantizer/quant_utils.py,sha256=cBULOgWUodcBO1lHevZggdTevuDYI6tQceV86U2x6DA,2543
|
@@ -417,7 +418,7 @@ model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py,sha256=cc
|
|
417
418
|
model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py,sha256=pFkrjtlavCniswcO3-Djlh6a_Hz1rrcEa7Z5wTGVRCU,8270
|
418
419
|
model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py,sha256=ZdZwMwLa1Ws2eo3DiQYYTvPS1JfiswZL1xlQPtRnIgE,7067
|
419
420
|
model_compression_toolkit/qat/pytorch/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
420
|
-
model_compression_toolkit/qat/pytorch/quantization_facade.py,sha256=
|
421
|
+
model_compression_toolkit/qat/pytorch/quantization_facade.py,sha256=NGIBYJPRdJWzswdM1LQccAANiiQWMuSDIDAMfbM9o9w,14008
|
421
422
|
model_compression_toolkit/qat/pytorch/quantizer/__init__.py,sha256=xYa4C8pr9cG1f3mQQcBXO_u3IdJN-zl7leZxuXDs86w,1003
|
422
423
|
model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_weight_quantizer.py,sha256=gjzrnBAZr5c_OrDpSjxpQYa_jKImv7ll52cng07_2oE,1813
|
423
424
|
model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py,sha256=lM10cGUkkTDtRyLLdWj5Rk0cgvcxp0uaCseyvrnk_Vg,5752
|
@@ -430,72 +431,36 @@ model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py,sha2
|
|
430
431
|
model_compression_toolkit/target_platform_capabilities/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
431
432
|
model_compression_toolkit/target_platform_capabilities/constants.py,sha256=iJXGy5um7vhC84Me4ld6EHMhy7jPks0T9ItZX23si6s,1519
|
432
433
|
model_compression_toolkit/target_platform_capabilities/immutable.py,sha256=YhROBiXEIB3TU-bAFrnL3qbAsb1yuWPBAQ_CLOJbYUU,1827
|
434
|
+
model_compression_toolkit/target_platform_capabilities/tpc_io_handler.py,sha256=ySheTvg2tks8xWjC07Rc_gWO1xTDpRqICrLGzqYxIaU,4012
|
433
435
|
model_compression_toolkit/target_platform_capabilities/schema/__init__.py,sha256=pKAdbTCFM_2BrZXUtTIw0ouKotrWwUDF_hP3rPwCM2k,696
|
434
|
-
model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py,sha256=
|
436
|
+
model_compression_toolkit/target_platform_capabilities/schema/mct_current_schema.py,sha256=k3LkdcZSIy8gJFDLZw3YlYOpqVrJPUnAlWmywpqil3Q,529
|
435
437
|
model_compression_toolkit/target_platform_capabilities/schema/schema_functions.py,sha256=ZDFN2N4dRRP6qs0HxsHXEJbZCwYByo3JL9sBCJolDBs,4656
|
436
|
-
model_compression_toolkit/target_platform_capabilities/schema/v1.py,sha256=
|
438
|
+
model_compression_toolkit/target_platform_capabilities/schema/v1.py,sha256=bM14I0P-54o5gqp-3QMGNC_yR80cuWTqrDrBn_gr0YI,27486
|
437
439
|
model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py,sha256=1FXmDVSqm-dr3xzH4vRo4NmAgyzBZjqHo5l63MUq4r0,1403
|
438
440
|
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py,sha256=WCP1wfFZgM4eFm-pPeUinr5R_aSx5qwfSQqLZCXUNBA,1513
|
439
|
-
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2fw.py,sha256=
|
440
|
-
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2keras.py,sha256=
|
441
|
-
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2pytorch.py,sha256=
|
441
|
+
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2fw.py,sha256=3XtPUZJ2rbBpj4VLXjubRBc4pMY7j0Vqu3a_dpv4sp8,3632
|
442
|
+
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2keras.py,sha256=z0vOAkaJIyKcw-4We_QyzkPVC7n5G2cq7MEqFMxJb_g,7585
|
443
|
+
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attach2pytorch.py,sha256=kDpjKcj0gwphk0evKRlLq25OtANbljS420_7TmvJANM,6200
|
442
444
|
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py,sha256=jfhszvuD2Fyy6W2KjlLzXBQKFzTqGAaDZeFVr4-ONQw,8776
|
443
445
|
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py,sha256=fIheShGOnxWYKqT8saHpBJqOU5RG_1Hp9qHry7IviIw,2115
|
444
446
|
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py,sha256=Cl6-mACpje2jM8RJkibbqE3hvTkFR3r26-lW021mIiA,4019
|
445
|
-
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py,sha256=
|
446
|
-
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py,sha256=
|
447
|
+
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py,sha256=VYcq0juJHfJTcZMQcMLc-q6SSUgdpwwUQR-uWrQKMT4,6568
|
448
|
+
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py,sha256=hP3UHxsAGWowG1M4BPuN9xz1fkmlZfRq_jEZIF8hAgU,9694
|
447
449
|
model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py,sha256=FvrYI0Qy7DCmDp2gyUYyCZq5pY84JgLtJqSIiVTJ8Ss,1030
|
448
450
|
model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
449
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py,sha256=
|
451
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py,sha256=nq9ZzS5boBjeSqW1msD2A2hEIZncbrIJfsmMrWH08TI,3328
|
450
452
|
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py,sha256=lNJ29DYxaLUPDstRDA1PGI5r9Fulq_hvrZMlhst1Z5g,697
|
451
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/
|
452
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py,sha256=eVIRpx5O0JQI7TSdw5JAWtwrG3MQ8-7hYThQvB9da5c,1528
|
453
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py,sha256=FNZ7jRh-iyO6CZ95geIWLLw2tx5v6edxxPkLkZB0sRU,1580
|
453
454
|
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py,sha256=1mMOREEMoNHu_KTMGDp4crN61opKWX6aFn1DrDLvqcc,717
|
454
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py,sha256=
|
455
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py,sha256=DiEVKde6bZiRDcoeTKzbrfjFIDVEeES0Q_Ms50NbW7Y,6568
|
456
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py,sha256=rQY-ApvLKo9LbN2uKO2NsdOgX49TKcED3o8mBxWAFKw,5594
|
457
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py,sha256=vFDyiMymNZSRCdTgAyWn4A-tZD3vzze_PTLBSF2OYe8,721
|
458
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py,sha256=ip8MRXok-3mhQDTZW4mctPn8Lvdaw46Ds1DHd4cSGLA,11352
|
459
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py,sha256=I3NnmCBSB6KB8ECXJsfXw6FD-ONj39RXL-yB2-nE1xI,6577
|
460
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py,sha256=R6ZDXT2bwAmdZfmXxIoCo7-_h7oGfyr6cZoZmBJdPa0,5713
|
461
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py,sha256=NUuczImqUxzdfflqSdqkeAN8aCU6Tuiu6U0Fnj9Tzmw,721
|
462
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py,sha256=PCV_SIENE65Ap15ka52yJde98Llsi5YGx7Uvx5aBkDg,11138
|
463
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py,sha256=ovHI4lvlcP_haolXmL8TvIpPi9tglhdUxRxNxuf6QPk,6581
|
464
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py,sha256=PgNAmXZx7hg46KwR16laU7jr2U35rnHiTcR25RaLxd0,5732
|
465
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py,sha256=vKWAoQ2KkhuptS5HZB50zHG6KY8wHpHTxPugw_nGCRo,717
|
466
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py,sha256=3Q3THifL5TUrEGweFL_t2nOpf-h7ipA38FZyanGSdxk,11524
|
467
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py,sha256=i6oEt_3FAeccU9QkVCVxWZf2aX17IExAljR8y13k9P4,6663
|
468
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py,sha256=Iwi-D_0iC19Lo3yWduuaItezXFrRxRhowUY4jGOtwXk,5700
|
469
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py,sha256=wUk4Xsg7jpxOWYjq2K3WUwLcI185p_sVPK-ttG0ydhA,721
|
470
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py,sha256=sV43EqH6gZzW8MGuMzCqLAPMRzLafcr1LpSmz5NJUjg,11404
|
471
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py,sha256=e3su6KmNsc2ziP3eEICp-tcnY9YmGPiLoMJ3TreqVx4,6671
|
472
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py,sha256=9W-pjOhONqgym1t2vDRTo7x-JQiVlxQsAKAG6HdAww4,5707
|
473
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/__init__.py,sha256=gAeebYCKyIXH9-Qwze7FwvTihudzAHk_Qsg94fQbkjQ,717
|
474
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tp_model.py,sha256=Z7QdKzO4zUAhq_sab0N7tWsrhi6hoLIpvK4kI84h-eQ,13595
|
475
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_keras.py,sha256=vbBgQfEd5mLnJKGX2CO-KA0x87_qTmDH7HbbtLgCIfg,6881
|
476
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3/tpc_pytorch.py,sha256=oDG_Ln0mPmt8p5eKrjGQlHLHCApErLHazny9bIfu3iI,5968
|
477
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/__init__.py,sha256=C2kwyDE1-rtukkbNSoKRv9q8Nt2GOCaBbl0BdOr3goA,721
|
478
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tp_model.py,sha256=ogo0fXC3os0M5yogWE9g3hSKey7PYxaO5jqj3nXQh5Q,12373
|
479
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_keras.py,sha256=hHK7MY6xfSCRnXQ6Qz0hbN_hM18f-gf3uZmxdl44khU,6679
|
480
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v3_lut/tpc_pytorch.py,sha256=GmS3CuSQPwLSgPdruXCSHN49_fRiRBn9PKA9CPmtqM8,5789
|
481
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/__init__.py,sha256=tHTUvsaerSfbe22pU0kIDauPpFD7Pq5EmZytVIDkHz4,717
|
482
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tp_model.py,sha256=qmv2ZA5QsUy3fwX44dF1WBJZVki9xuGOScIY4zIqI4I,19288
|
483
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_keras.py,sha256=IlaTaq2VnGibqwr-rKkqRTD-FK58H1CHGiPiopXD5VA,8291
|
484
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v4/tpc_pytorch.py,sha256=7AhR56oCyXVLvWPB36tNiaLRIGzDLWYXghUjTRADX5s,7094
|
455
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py,sha256=QnImYHc3vMUaOe4j58sL5c8u71sBxcJqIV2eq3yzck4,15293
|
485
456
|
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
486
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/
|
487
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py,sha256=CXC-HQolSDu7j8V-Xm-SWGCd74gXB3XnAkEhI_TVbIQ,1516
|
457
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py,sha256=A3PMZxCM1q28QDmIylXSU8kQOQdXWUqF2xGqSIYxBwo,1673
|
488
458
|
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py,sha256=t4JKsPcor-7KSCKzIwuaBv0NLNwfhuewAQGlDl6iBeo,717
|
489
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py,sha256
|
490
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py,sha256=JKJy4k7TBCRZQ_cSWNhEdvyg5ylvIcpjU_6GALBOaFI,4461
|
491
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py,sha256=x5ooqCuKtW6ULenncjwSs_HTps8yUylOBKOzpgJ4yYI,3788
|
459
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py,sha256=BWtoUDrSGaVZQdV5_PTtijXIU2AAMStXPtf_QDA4T8E,9377
|
492
460
|
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
|
493
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/
|
494
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py,sha256=LIUUQn42YU7oD2YfnEgP0gfqm7Hq9e0fD_8418aKzKI,1511
|
461
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py,sha256=DzrowqbJF6GRz7GQ87UZkNT5jtDyCELek3NN49YoPP0,1584
|
495
462
|
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py,sha256=t4JKsPcor-7KSCKzIwuaBv0NLNwfhuewAQGlDl6iBeo,717
|
496
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py,sha256=
|
497
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py,sha256=4vQG9uaV5bAte1VP8oMT5dwiDisW84F1B-de0BdBusY,6808
|
498
|
-
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py,sha256=uG27HAOrD-JMSDXaEycDJeFGqhF8J3ZqKI4CJCW6zA4,5934
|
463
|
+
model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py,sha256=LevuaUOfQS681CPzA15dbpNXJx5eD9xCGkMbI4A9jEs,12755
|
499
464
|
model_compression_toolkit/trainable_infrastructure/__init__.py,sha256=uewpvlPkH9mBFt8IxoAgIfz6iEcvWbOImm_fb6_BxD8,1543
|
500
465
|
model_compression_toolkit/trainable_infrastructure/common/__init__.py,sha256=huHoBUcKNB6BnY6YaUCcFvdyBtBI172ZoUD8ZYeNc6o,696
|
501
466
|
model_compression_toolkit/trainable_infrastructure/common/annealing_schedulers.py,sha256=qm2_wa61nga08Jdcl3RkgTsJ0zyHNjZ_A6I2--oVOig,2455
|
@@ -549,7 +514,7 @@ model_compression_toolkit/xquant/common/xquant_config.py,sha256=YPqvIQanHwadSqa3
|
|
549
514
|
model_compression_toolkit/xquant/keras/__init__.py,sha256=zbtceCVRsi-Gvl_pOmq5laqVqu55vAU1ie2FR2RK1Po,709
|
550
515
|
model_compression_toolkit/xquant/keras/dataset_utils.py,sha256=quvVymhvpcPIOneCu5J6K_QAqBHOCIj8IxZxSN2fItA,2258
|
551
516
|
model_compression_toolkit/xquant/keras/facade_xquant_report.py,sha256=7pf3PUMAj7BCsbRc6Up6KOWk1g_9wVXwoGUbtrSgX7Y,3502
|
552
|
-
model_compression_toolkit/xquant/keras/keras_report_utils.py,sha256=
|
517
|
+
model_compression_toolkit/xquant/keras/keras_report_utils.py,sha256=8xeOEovTNLbn0r-7sx31N1n6j-k__rAuVHg3KB4KEFU,3649
|
553
518
|
model_compression_toolkit/xquant/keras/model_analyzer.py,sha256=WXi9BPI9_TzRWn50lM1i-6cwPPRW0p43Shg_xpHFclU,6521
|
554
519
|
model_compression_toolkit/xquant/keras/similarity_functions.py,sha256=P2qMJAo94Sz_BCao-bnhEeewKtjeLLDDH2r9luDXJ04,2710
|
555
520
|
model_compression_toolkit/xquant/keras/tensorboard_utils.py,sha256=h67lf_agZwOuzF37or1YSF1dbTCdw-b3UyvTeRXhTp8,9225
|
@@ -557,11 +522,11 @@ model_compression_toolkit/xquant/pytorch/__init__.py,sha256=ycb1Xt7PtixY2Uabr94J
|
|
557
522
|
model_compression_toolkit/xquant/pytorch/dataset_utils.py,sha256=KFKiFkhIPpEr1ZH5jekZFrgs20VzzKVxSV9YMgH68yI,2894
|
558
523
|
model_compression_toolkit/xquant/pytorch/facade_xquant_report.py,sha256=sr_7TkmkRE0FhdJ7BwXGLFELmR4l_nK7IlTys6oYgoU,3179
|
559
524
|
model_compression_toolkit/xquant/pytorch/model_analyzer.py,sha256=b93o800yVB3Z-ihJBLy5Cic-MQiUM_ZGV6SCXoNdscE,5549
|
560
|
-
model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py,sha256=
|
525
|
+
model_compression_toolkit/xquant/pytorch/pytorch_report_utils.py,sha256=3jNiV5Z4BVw9cEWuLKNOlLuLdr0EMuKg6eYnSiAq3LU,3952
|
561
526
|
model_compression_toolkit/xquant/pytorch/similarity_functions.py,sha256=CERxq5K8rqaiE-DlwhZBTUd9x69dtYJlkHOPLB54vm8,2354
|
562
527
|
model_compression_toolkit/xquant/pytorch/tensorboard_utils.py,sha256=mkoEktLFFHtEKzzFRn_jCnxjhJolK12TZ5AQeDHzUO8,9767
|
563
|
-
mct_nightly-2.2.0.
|
564
|
-
mct_nightly-2.2.0.
|
565
|
-
mct_nightly-2.2.0.
|
566
|
-
mct_nightly-2.2.0.
|
567
|
-
mct_nightly-2.2.0.
|
528
|
+
mct_nightly-2.2.0.20250107.15510.dist-info/LICENSE.md,sha256=aYSSIb-5AFPeITTvXm1UAoe0uYBiMmSS8flvXaaFUks,10174
|
529
|
+
mct_nightly-2.2.0.20250107.15510.dist-info/METADATA,sha256=hzg6vLVTb7Mr6NUgWR73ODaN4AIjmActNPhRlH7pGfM,26463
|
530
|
+
mct_nightly-2.2.0.20250107.15510.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
|
531
|
+
mct_nightly-2.2.0.20250107.15510.dist-info/top_level.txt,sha256=gsYA8juk0Z-ZmQRKULkb3JLGdOdz8jW_cMRjisn9ga4,26
|
532
|
+
mct_nightly-2.2.0.20250107.15510.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.2.0.
|
30
|
+
__version__ = "2.2.0.20250107.015510"
|
@@ -18,7 +18,7 @@ from model_compression_toolkit.core.common import network_editors as network_edi
|
|
18
18
|
from model_compression_toolkit.core.common.quantization.debug_config import DebugConfig
|
19
19
|
from model_compression_toolkit.core.common.quantization import quantization_config
|
20
20
|
from model_compression_toolkit.core.common.mixed_precision import mixed_precision_quantization_config
|
21
|
-
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationConfig, QuantizationErrorMethod, DEFAULTCONFIG
|
21
|
+
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationConfig, QuantizationErrorMethod, DEFAULTCONFIG, CustomOpsetLayers
|
22
22
|
from model_compression_toolkit.core.common.quantization.bit_width_config import BitWidthConfig
|
23
23
|
from model_compression_toolkit.core.common.quantization.core_config import CoreConfig
|
24
24
|
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
|
@@ -49,7 +49,7 @@ def compute_graph_max_cut(memory_graph: MemoryGraph,
|
|
49
49
|
it = 0
|
50
50
|
while it < n_iter:
|
51
51
|
estimate = (u_bound + l_bound) / 2
|
52
|
-
schedule, max_cut_size, cuts = max_cut_astar.solve(
|
52
|
+
schedule, max_cut_size, cuts = max_cut_astar.solve(estimate=estimate, iter_limit=astar_n_iter)
|
53
53
|
if schedule is None:
|
54
54
|
l_bound = estimate
|
55
55
|
else:
|
@@ -64,7 +64,10 @@ class Cut:
|
|
64
64
|
"""
|
65
65
|
if isinstance(other, Cut):
|
66
66
|
return self.mem_elements == other.mem_elements
|
67
|
-
return False
|
67
|
+
return False # pragma: no cover
|
68
68
|
|
69
69
|
def __hash__(self):
|
70
|
-
return hash((frozenset(self.op_order), frozenset(self.op_record), self.mem_elements))
|
70
|
+
return hash((frozenset(self.op_order), frozenset(self.op_record), self.mem_elements))
|
71
|
+
|
72
|
+
def __repr__(self):
|
73
|
+
return f"<Cut: Nodes={[e.node_name for e in self.mem_elements.elements]}, size={self.memory_size()}>" # pragma: no cover
|
@@ -100,7 +100,7 @@ class MaxCutAstar:
|
|
100
100
|
edges_src_ab = [(src_dummy_a, src_dummy_b)]
|
101
101
|
edges_src_ba = [(src_dummy_b, src_a) for src_a in memory_graph.sources_a]
|
102
102
|
|
103
|
-
# Target Cut
|
103
|
+
# Target Cut (Adding 2 consecutive dummy nodes so the final cut will include only dummy tensors).
|
104
104
|
target_dummy_a = next(gen_a)
|
105
105
|
target_dummy_a2 = next(gen_a)
|
106
106
|
target_dummy_b = next(gen_b)
|
@@ -122,13 +122,13 @@ class MaxCutAstar:
|
|
122
122
|
self.target_cut = Cut([], set(), MemoryElements(elements={target_dummy_b, target_dummy_b2},
|
123
123
|
total_size=0))
|
124
124
|
|
125
|
-
def solve(self,
|
125
|
+
def solve(self, estimate: float, iter_limit: int = 500) -> Tuple[List[BaseNode], float, List[Cut]]:
|
126
126
|
"""
|
127
127
|
The AStar solver function. This method runs an AStar-like search on the memory graph,
|
128
|
-
using the given
|
128
|
+
using the given estimate as a heuristic gap for solutions to consider.
|
129
129
|
|
130
130
|
Args:
|
131
|
-
|
131
|
+
estimate: Cut size estimation to consider larger size of nodes in each
|
132
132
|
expansion step, in order to fasten the algorithm divergence towards a solution.
|
133
133
|
iter_limit: An upper limit for the number of expansion steps that the algorithm preforms.
|
134
134
|
|
@@ -148,17 +148,14 @@ class MaxCutAstar:
|
|
148
148
|
|
149
149
|
while expansion_count < iter_limit and len(open_list) > 0:
|
150
150
|
# Choose next node to expand
|
151
|
-
next_cut = self._get_cut_to_expand(open_list, costs, routes,
|
151
|
+
next_cut = self._get_cut_to_expand(open_list, costs, routes, estimate)
|
152
152
|
|
153
153
|
cut_cost = costs[next_cut]
|
154
154
|
cut_route = routes[next_cut]
|
155
155
|
|
156
156
|
if next_cut == self.target_cut:
|
157
|
-
|
158
|
-
|
159
|
-
# Also, unfiltered cut_route seems perfect, including input and output tensor sizes of current op.
|
160
|
-
return self._remove_dummys_from_path(cut_route[0].op_order), cut_cost,\
|
161
|
-
list(set([self._remove_dummys_from_cut(self.clean_memory_for_next_step(c)) for c in cut_route]))
|
157
|
+
return self._remove_dummy_nodes_from_path(cut_route[0].op_order), cut_cost,\
|
158
|
+
list(set([self._remove_dummy_tensors_from_cut(c) for c in cut_route]))
|
162
159
|
|
163
160
|
if self.is_pivot(next_cut):
|
164
161
|
# Can clear all search history
|
@@ -176,7 +173,7 @@ class MaxCutAstar:
|
|
176
173
|
expansion_count += 1
|
177
174
|
|
178
175
|
# Only consider nodes that where not already visited
|
179
|
-
expanded_cuts =
|
176
|
+
expanded_cuts = [_c for _c in expanded_cuts if _c not in closed_list]
|
180
177
|
for c in expanded_cuts:
|
181
178
|
cost = self.accumulate(cut_cost, c.memory_size())
|
182
179
|
if c not in open_list:
|
@@ -191,7 +188,7 @@ class MaxCutAstar:
|
|
191
188
|
self._update_expanded_node(c, cost, cut_route, open_list, costs, routes)
|
192
189
|
|
193
190
|
# Halt or No Solution
|
194
|
-
# TODO maxcut: this isn't covered in the coverage test.
|
191
|
+
# TODO maxcut: this isn't covered in the coverage test. Add test and remove no cover
|
195
192
|
return None, 0, None # pragma: no cover
|
196
193
|
|
197
194
|
@staticmethod
|
@@ -214,7 +211,7 @@ class MaxCutAstar:
|
|
214
211
|
routes.update({cut: [cut] + route})
|
215
212
|
|
216
213
|
def _get_cut_to_expand(self, open_list: List[Cut], costs: Dict[Cut, float], routes: Dict[Cut, List[Cut]],
|
217
|
-
|
214
|
+
estimate: float) -> Cut:
|
218
215
|
"""
|
219
216
|
An auxiliary method for finding a cut for expanding the search out of a set of potential cuts for expansion.
|
220
217
|
|
@@ -222,13 +219,15 @@ class MaxCutAstar:
|
|
222
219
|
open_list: The search open list.
|
223
220
|
costs: The search utility mapping between cuts and their cost.
|
224
221
|
routes: The search utility mapping between cuts and their routes.
|
225
|
-
|
222
|
+
estimate: Cut size estimation to set extended boundaries on the potential cuts to expand.
|
226
223
|
|
227
224
|
Returns: A sorted list of potential cuts for expansion (ordered by lowest cost first).
|
228
225
|
|
229
226
|
"""
|
227
|
+
max_cut_len = max([len(routes[c]) for c in open_list])
|
230
228
|
ordered_cuts_list = sorted(open_list,
|
231
|
-
key=lambda c: (self.accumulate(costs[c], self.estimate(c,
|
229
|
+
key=lambda c: (self.accumulate(costs[c], self.estimate(c, estimate)),
|
230
|
+
max_cut_len - len(routes[c])))
|
232
231
|
|
233
232
|
assert len(ordered_cuts_list) > 0
|
234
233
|
return ordered_cuts_list[0]
|
@@ -356,7 +355,8 @@ class MaxCutAstar:
|
|
356
355
|
# TODO maxcut: this isn't covered in the coverage test. check if needed and remove no cover
|
357
356
|
return cost_1 < cost_2 # pragma: no cover
|
358
357
|
|
359
|
-
|
358
|
+
@staticmethod
|
359
|
+
def estimate(cut: Cut, estimate: float) -> float:
|
360
360
|
"""
|
361
361
|
A function that defines the estimation gap for the Astar search.
|
362
362
|
The estimation gap is used to sort the cuts that are considered for expanding the search in each iteration.
|
@@ -364,15 +364,15 @@ class MaxCutAstar:
|
|
364
364
|
Args:
|
365
365
|
cut: A cut (not used in the default implementation, but can be used if overriding the method to consider
|
366
366
|
the actual cut in the estimation computation).
|
367
|
-
|
367
|
+
estimate: The given estimate to the search.
|
368
368
|
|
369
369
|
Returns: An estimation value.
|
370
370
|
|
371
371
|
"""
|
372
|
-
return
|
372
|
+
return estimate
|
373
373
|
|
374
374
|
@staticmethod
|
375
|
-
def
|
375
|
+
def get_init_estimate(memory_graph: MemoryGraph) -> float: # pragma: no cover
|
376
376
|
"""
|
377
377
|
Returns an initial estimation value, which is based on the memory graph's upper and lower bounds.
|
378
378
|
|
@@ -383,12 +383,12 @@ class MaxCutAstar:
|
|
383
383
|
|
384
384
|
"""
|
385
385
|
# TODO maxcut: this isn't covered in the coverage test. check if needed and remove no cover
|
386
|
-
l_bound = memory_graph.memory_lbound_single_op
|
387
|
-
u_bound = 2 * sum([t.total_size for t in memory_graph.b_nodes]) - l_bound
|
388
|
-
return (u_bound + l_bound) / 2
|
386
|
+
l_bound = memory_graph.memory_lbound_single_op
|
387
|
+
u_bound = 2 * sum([t.total_size for t in memory_graph.b_nodes]) - l_bound
|
388
|
+
return (u_bound + l_bound) / 2
|
389
389
|
|
390
390
|
@staticmethod
|
391
|
-
def
|
391
|
+
def _remove_dummy_nodes_from_path(path: List[BaseNode]) -> List[BaseNode]:
|
392
392
|
"""
|
393
393
|
An auxiliary method which removes dummy nodes from a given list of nodes (a path in the graph).
|
394
394
|
|
@@ -401,7 +401,7 @@ class MaxCutAstar:
|
|
401
401
|
return list(filter(lambda n: DUMMY_NODE not in n.name, path))
|
402
402
|
|
403
403
|
@staticmethod
|
404
|
-
def
|
404
|
+
def _remove_dummy_tensors_from_cut(cut: Cut) -> Cut:
|
405
405
|
"""
|
406
406
|
An auxiliary method which removes dummy nodes from a given cut.
|
407
407
|
|
@@ -411,7 +411,7 @@ class MaxCutAstar:
|
|
411
411
|
Returns: The same cut without dummy nodes elements.
|
412
412
|
|
413
413
|
"""
|
414
|
-
filtered_memory_elements = set(
|
414
|
+
filtered_memory_elements = set([elm for elm in cut.mem_elements.elements if DUMMY_TENSOR not in elm.node_name])
|
415
415
|
|
416
416
|
return Cut(cut.op_order, cut.op_record,
|
417
417
|
mem_elements=MemoryElements(filtered_memory_elements,
|
@@ -13,13 +13,30 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
# ==============================================================================
|
15
15
|
|
16
|
-
from dataclasses import dataclass
|
16
|
+
from dataclasses import dataclass
|
17
17
|
import math
|
18
18
|
from enum import Enum
|
19
|
+
from typing import Optional, Dict, NamedTuple, List
|
19
20
|
|
21
|
+
from model_compression_toolkit import DefaultDict
|
20
22
|
from model_compression_toolkit.constants import MIN_THRESHOLD
|
21
23
|
|
22
24
|
|
25
|
+
class CustomOpsetLayers(NamedTuple):
|
26
|
+
"""
|
27
|
+
This struct defines a set of operators from a specific framework, which will be used to configure a custom operator
|
28
|
+
set in the TPC.
|
29
|
+
|
30
|
+
Args:
|
31
|
+
operators: a list of framework operators to map to a certain custom opset name.
|
32
|
+
attr_mapping: a mapping between an opset name to a mapping between its attributes' general names and names in
|
33
|
+
the framework.
|
34
|
+
"""
|
35
|
+
|
36
|
+
operators: List
|
37
|
+
attr_mapping: Optional[Dict[str, DefaultDict]] = None
|
38
|
+
|
39
|
+
|
23
40
|
class QuantizationErrorMethod(Enum):
|
24
41
|
"""
|
25
42
|
Method for quantization threshold selection:
|
@@ -86,6 +103,7 @@ class QuantizationConfig:
|
|
86
103
|
concat_threshold_update: bool = False
|
87
104
|
activation_bias_correction: bool = False
|
88
105
|
activation_bias_correction_threshold: float = 0.0
|
106
|
+
custom_tpc_opset_to_layer: Optional[Dict[str, CustomOpsetLayers]] = None
|
89
107
|
|
90
108
|
|
91
109
|
# Default quantization configuration the library use.
|
@@ -49,38 +49,6 @@ FQ_NODE_OP_V2_4 = 'quantization.fake_quant_with_min_max_vars'
|
|
49
49
|
BATCH_INPUT_SHAPE = 'batch_input_shape'
|
50
50
|
|
51
51
|
|
52
|
-
def get_node_name_from_layer(layer: Layer) -> str:
|
53
|
-
"""
|
54
|
-
Get a node's name from the layer it was built from. For TensorFlowOpLayer
|
55
|
-
we remove the prefix "tf_op_layer".
|
56
|
-
|
57
|
-
Args:
|
58
|
-
layer: Keras Layer to get its corresponding node's name.
|
59
|
-
|
60
|
-
Returns:
|
61
|
-
Name of the node that was built from the passed layer.
|
62
|
-
"""
|
63
|
-
|
64
|
-
name = layer.name
|
65
|
-
if isinstance(layer, TensorFlowOpLayer): # remove TF op layer prefix
|
66
|
-
name = '_'.join(name.split('_')[3:])
|
67
|
-
return name
|
68
|
-
|
69
|
-
|
70
|
-
def is_layer_fake_quant(layer: Layer) -> bool:
|
71
|
-
"""
|
72
|
-
Check whether a Keras layer is a fake quantization layer or not.
|
73
|
-
Args:
|
74
|
-
layer: Layer to check if it's a fake quantization layer or not.
|
75
|
-
|
76
|
-
Returns:
|
77
|
-
Whether a Keras layer is a fake quantization layer or not.
|
78
|
-
"""
|
79
|
-
# in tf2.3 fake quant node is implemented as TensorFlowOpLayer, while in tf2.4 as TFOpLambda
|
80
|
-
return (isinstance(layer, TensorFlowOpLayer) and layer.node_def.op == FQ_NODE_OP_V2_3) or (
|
81
|
-
isinstance(layer, TFOpLambda) and layer.symbol == FQ_NODE_OP_V2_4)
|
82
|
-
|
83
|
-
|
84
52
|
class KerasModelBuilder(BaseModelBuilder):
|
85
53
|
"""
|
86
54
|
Builder for Keras models.
|
@@ -291,7 +259,7 @@ class KerasModelBuilder(BaseModelBuilder):
|
|
291
259
|
arg = n.weights.get(pos)
|
292
260
|
if arg is None:
|
293
261
|
if len(input_tensors) == 0:
|
294
|
-
Logger.critical(f"Couldn't find a weight or input tensor matching operator's "
|
262
|
+
Logger.critical(f"Couldn't find a weight or input tensor matching operator's " # pragma: no cover
|
295
263
|
f"argument name '{k}' in location {pos} for node {n.name}.")
|
296
264
|
arg = input_tensors.pop(0)
|
297
265
|
op_call_kwargs.update({k: arg})
|
model_compression_toolkit/core/keras/graph_substitutions/substitutions/conv_funcs_to_layer.py
CHANGED
@@ -141,7 +141,7 @@ class Conv2dFuncToConv2dLayer(common.BaseSubstitution):
|
|
141
141
|
strides = self._parse_tf_stride_dilation(conv_func_node, STRIDES)
|
142
142
|
if strides is None:
|
143
143
|
# Non-standard strides -> skip substitution.
|
144
|
-
return graph
|
144
|
+
return graph # pragma: no cover
|
145
145
|
conv_fw_attr[STRIDES] = strides
|
146
146
|
|
147
147
|
padding = conv_func_node.op_call_kwargs.get(PADDING) or 'VALID'
|
@@ -153,7 +153,7 @@ class Conv2dFuncToConv2dLayer(common.BaseSubstitution):
|
|
153
153
|
dilations = self._parse_tf_stride_dilation(conv_func_node, DILATIONS)
|
154
154
|
if dilations is None:
|
155
155
|
# Non-standard dilations -> skip substitution.
|
156
|
-
return graph
|
156
|
+
return graph # pragma: no cover
|
157
157
|
conv_fw_attr[DILATION_RATE] = dilations
|
158
158
|
|
159
159
|
if b is None:
|