mct-nightly 2.0.0.20240508.145608__py3-none-any.whl → 2.0.0.20240510.421__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mct-nightly
3
- Version: 2.0.0.20240508.145608
3
+ Version: 2.0.0.20240510.421
4
4
  Summary: A Model Compression Toolkit for neural networks
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -68,13 +68,10 @@ For installing the nightly version or installing from source, refer to the [inst
68
68
  Explore the Model Compression Toolkit (MCT) through our tutorials,
69
69
  covering compression techniques for Keras and PyTorch models. Access interactive [notebooks](tutorials/README.md)
70
70
  for hands-on learning. For example:
71
- * [Keras MobileNetV2 post training quantization](tutorials/notebooks/keras/ptq/example_keras_imagenet.ipynb)
72
- * [Post training quantization with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_quantization_mnist.ipynb)
73
- * [Data Generation for ResNet18 with PyTorch](tutorials/notebooks/pytorch/data_generation/example_pytorch_data_generation.ipynb).
71
+ * [Keras MobileNetV2 post training quantization](tutorials/notebooks/imx500_notebooks/keras/example_keras_mobilenetv2_for_imx500.ipynb)
72
+ * [Post training quantization with PyTorch](tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_ptq_mnist.ipynb)
73
+ * [Data Generation for ResNet18 with PyTorch](tutorials/notebooks/mct_features_notebooks/pytorch/example_pytorch_data_generation.ipynb).
74
74
 
75
- Additionally, for quick quantization of a variety of models from well-known collections,
76
- visit the [quick-start page](tutorials/quick_start/README.md) and the
77
- [results CSV](tutorials/quick_start/results/model_quantization_results.csv).
78
75
 
79
76
  ### Supported Versions
80
77
 
@@ -176,8 +173,6 @@ In the following table we present the ImageNet validation results for these mode
176
173
  | ResNet-18 [3] | 69.86 | 69.63 |69.53|
177
174
  | SqueezeNet 1.1 [3] | 58.128 | 57.678 ||
178
175
 
179
- For more results, please refer to [quick start](https://github.com/sony/model_optimization/tree/main/tutorials/quick_start).
180
-
181
176
 
182
177
  #### Pruning Results
183
178
 
@@ -1,4 +1,4 @@
1
- model_compression_toolkit/__init__.py,sha256=BUMAk1BC9peC1TCFqoOqMrOyFT_LMr7kLtuYqQZTp8A,1573
1
+ model_compression_toolkit/__init__.py,sha256=7347dlzXBINRN56FL1aVlQuSilMofdz9lt093Bhi3Ac,1573
2
2
  model_compression_toolkit/constants.py,sha256=b63Jk_bC7VXEX3Qn9TZ3wUvrNKD8Mkz8zIuayoyF5eU,3828
3
3
  model_compression_toolkit/defaultdict.py,sha256=LSc-sbZYXENMCw3U9F4GiXuv67IKpdn0Qm7Fr11jy-4,2277
4
4
  model_compression_toolkit/logger.py,sha256=3DByV41XHRR3kLTJNbpaMmikL8icd9e1N-nkQAY9oDk,4567
@@ -145,7 +145,7 @@ model_compression_toolkit/core/common/substitutions/weights_activation_split.py,
145
145
  model_compression_toolkit/core/common/visualization/__init__.py,sha256=mjbqLD-KcG3eNeCYpu1GBS7VclGVOQ63x2p6mAAuba4,698
146
146
  model_compression_toolkit/core/common/visualization/final_config_visualizer.py,sha256=6I10jKLesB-RQKaXA75Xgz2wPvylQUrnPtCcQZIynGo,6371
147
147
  model_compression_toolkit/core/common/visualization/nn_visualizer.py,sha256=HOq7AObkmEZiDSZXUMJDAEJzUY-fSXUT0AMgwiyH7dg,7388
148
- model_compression_toolkit/core/common/visualization/tensorboard_writer.py,sha256=lkQ5B3YKcojPfNdkPCZ9ViJ0zMOSsWmZ-ELmiBcNcqI,22510
148
+ model_compression_toolkit/core/common/visualization/tensorboard_writer.py,sha256=g5c5BCJnJ1Lgu2aQvHh2NeeQE954ndr3H4cKmvtr5IM,22510
149
149
  model_compression_toolkit/core/keras/__init__.py,sha256=mjbqLD-KcG3eNeCYpu1GBS7VclGVOQ63x2p6mAAuba4,698
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
@@ -292,7 +292,7 @@ model_compression_toolkit/data_generation/pytorch/constants.py,sha256=QWyreMImcf
292
292
  model_compression_toolkit/data_generation/pytorch/image_pipeline.py,sha256=6g7OpOuO3cU4TIuelaRjBKpCPgiMbe1a3iy9bZtdZUo,6617
293
293
  model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py,sha256=sO9tA03nIaeYnzOL4Egec5sVcSGU8H8k9-nNjhaLEbk,9690
294
294
  model_compression_toolkit/data_generation/pytorch/optimization_utils.py,sha256=AjYsO-lm06JOUMoKkS6VbyF4O_l_ffWXrgamqJm1ofE,19085
295
- model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py,sha256=UGX0J0lU1bY4ZI6qE1K0AnFWsDFs3clYPBC4GZf9KxA,21219
295
+ model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py,sha256=Jymevochf1A6sz_bShQiJVj5IUtxKbfW5s5Bh7EZhUo,21238
296
296
  model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py,sha256=huHoBUcKNB6BnY6YaUCcFvdyBtBI172ZoUD8ZYeNc6o,696
297
297
  model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py,sha256=dMc4zz9XfYfAT4Cxns57VgvGZWPAMfaGlWLFyCyl8TA,1968
298
298
  model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py,sha256=i3ePEI8xDE3xZEtmzT5lCkLn9wpObUi_OgqnVDf7nj8,2597
@@ -315,9 +315,9 @@ model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py,s
315
315
  model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py,sha256=uZ2RigbY9O2PJ0Il8wPpS_s7frgg9WUGd_SHeKGyl1A,699
316
316
  model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py,sha256=UPVkEUQCMZ4Lld6CRnEOPEmlfe5vcQZG0Q3FwRBodD4,4021
317
317
  model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py,sha256=bPevy6OBqng41PqytBR55e6cBEuyrUS0H8dWX4zgjQ4,967
318
- model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py,sha256=b-qC60LiRtc52gIXdUbrdTBKUgCIaResDLXFE8zt_F4,6732
318
+ model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py,sha256=GFIhqo7g7QHASjOgg_Cd4yBcCGfsx8sgJuIpZqdy8hY,6686
319
319
  model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py,sha256=ksWV2A-Njo-wAxQ_Ye2sLIZXBWJ_WNyjT7-qFFwvV2o,2897
320
- model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py,sha256=5G9dikFY4A66XVjpaOWVWX81Qr6ZdwnoyBzFDL_abi8,6242
320
+ model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py,sha256=KQg8Ci1UtxZzMrC7FfIOxsasIW8vipLIri_qDzazCxs,6230
321
321
  model_compression_toolkit/exporter/model_wrapper/__init__.py,sha256=7CF2zvpTrIEm8qnbuHnLZyTZkwBBxV24V8QA0oxGbh0,1187
322
322
  model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py,sha256=pKAdbTCFM_2BrZXUtTIw0ouKotrWwUDF_hP3rPwCM2k,696
323
323
  model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py,sha256=Bd3QhAR__YC9Xmobd5qHv9ofh_rPn_eTFV0sXizcBnY,2297
@@ -446,11 +446,11 @@ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_
446
446
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py,sha256=NkAGCZbSgXYeRAiJRzt19h2cxkrVQJaHu8-2jHZLOYg,6505
447
447
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py,sha256=X853xDEF-3rcPoqxbrlYN28vvW3buSdM36c_eN_LKx8,5758
448
448
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/__init__.py,sha256=vKWAoQ2KkhuptS5HZB50zHG6KY8wHpHTxPugw_nGCRo,717
449
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py,sha256=9LWG0GjFdtxdCbng8P6lCCqCKt8ou0Jb3VuH62a2HUQ,12037
449
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tp_model.py,sha256=uMGN6TbyRMSGL01_i4M3z6eeI8PqC4qYZSTEACpo9io,10958
450
450
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py,sha256=U5lYwk6vJkRt5fo5v_1_h5POTwf9zfia1XQ_cDoOZAI,6587
451
451
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py,sha256=jAyTXhcChO124odtWC3bYKRH4ZyqLPkKQluJFOoyPIM,5726
452
452
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/__init__.py,sha256=wUk4Xsg7jpxOWYjq2K3WUwLcI185p_sVPK-ttG0ydhA,721
453
- model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py,sha256=GBKLH6RfwSVIyvtFZ83BkbJOYu4MBcg5-n5_9MsE9TU,11770
453
+ model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tp_model.py,sha256=dmi2lCT0dw6RnWVw73tcnqgsVSgINSWaIWfgZhEli4Q,10691
454
454
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py,sha256=6PVKQKGpJpM2B1qvmf6fID_-MACaSQZkaL_9J_fj2SQ,6595
455
455
  model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py,sha256=dFQjzFlLDwoUqKNP1at1fS1N1WJadSSasRyzHl6vaB8,5733
456
456
  model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py,sha256=cco4TmeIDIh32nj9ZZXVkws4dd9F2UDrmjKzTN8G0V0,697
@@ -483,8 +483,8 @@ model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py,sha
483
483
  model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py,sha256=MVwXNymmFRB2NXIBx4e2mdJ1RfoHxRPYRgjb1MQP5kY,1797
484
484
  model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py,sha256=huHoBUcKNB6BnY6YaUCcFvdyBtBI172ZoUD8ZYeNc6o,696
485
485
  model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py,sha256=MxylaVFPgN7zBiRBy6WV610EA4scLgRJFbMucKvvNDU,2896
486
- mct_nightly-2.0.0.20240508.145608.dist-info/LICENSE.md,sha256=aYSSIb-5AFPeITTvXm1UAoe0uYBiMmSS8flvXaaFUks,10174
487
- mct_nightly-2.0.0.20240508.145608.dist-info/METADATA,sha256=5XKDpGXcxCMKbL1iHeQRupmzRYmVT1gTB1hAUPPSTJU,18798
488
- mct_nightly-2.0.0.20240508.145608.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
489
- mct_nightly-2.0.0.20240508.145608.dist-info/top_level.txt,sha256=gsYA8juk0Z-ZmQRKULkb3JLGdOdz8jW_cMRjisn9ga4,26
490
- mct_nightly-2.0.0.20240508.145608.dist-info/RECORD,,
486
+ mct_nightly-2.0.0.20240510.421.dist-info/LICENSE.md,sha256=aYSSIb-5AFPeITTvXm1UAoe0uYBiMmSS8flvXaaFUks,10174
487
+ mct_nightly-2.0.0.20240510.421.dist-info/METADATA,sha256=ykZKIA7ydTl0_5Ml9_NgsfuAyju7LYusuhQNCk5bmzE,18477
488
+ mct_nightly-2.0.0.20240510.421.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
489
+ mct_nightly-2.0.0.20240510.421.dist-info/top_level.txt,sha256=gsYA8juk0Z-ZmQRKULkb3JLGdOdz8jW_cMRjisn9ga4,26
490
+ mct_nightly-2.0.0.20240510.421.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.0.0.20240508.145608"
30
+ __version__ = "2.0.0.20240510.000421"
@@ -72,19 +72,10 @@ def get_node_properties(node_dict_to_log: dict,
72
72
  # Create protobuf for the node's output shapes
73
73
  if output_shapes is not None:
74
74
  tshape_protos = []
75
- is_tf_combined_non_max_suppression = len(output_shapes) == 1 and 'function' in node_dict_to_log and node_dict_to_log['function'] == 'image.combined_non_max_suppression'
76
-
77
- if is_tf_combined_non_max_suppression:
78
- combined_nms_output = output_shapes[0]
79
- output_shapes = [combined_nms_output.nmsed_boxes,
80
- combined_nms_output.nmsed_scores,
81
- combined_nms_output.nmsed_classes,
82
- combined_nms_output.valid_detections]
83
-
84
75
  for output_shape in output_shapes: # create protobuf for each output shape
85
76
  proto_dims_list = []
86
77
  for dim in output_shape:
87
- proto_dims_list.append(TensorShapeProto.Dim(size=dim)) # dim shold ne an integer
78
+ proto_dims_list.append(TensorShapeProto.Dim(size=dim)) # dim is expected to be an integer
88
79
  tshape_proto = TensorShapeProto(dim=proto_dims_list)
89
80
  tshape_protos.append(tshape_proto)
90
81
  node_properties['_output_shapes'] = AttrValue(list=AttrValue.ListValue(shape=tshape_protos))
@@ -272,7 +263,13 @@ class TensorboardWriter(object):
272
263
 
273
264
  # For nodes with an "empty" output shape.
274
265
  output_shape = (None,) if n.output_shape == () else n.output_shape
275
-
266
+ if 'CombinedNonMaxSuppression' in str(output_shape):
267
+ # output_shapes is expected to be a list of tuples where each tuple is an output shape.
268
+ # For NMS layers, we need to align the node's output shapes before creating the node's properties.
269
+ output_shape = [output_shape.nmsed_boxes,
270
+ output_shape.nmsed_scores,
271
+ output_shape.nmsed_classes,
272
+ output_shape.valid_detections]
276
273
  dims = []
277
274
  if isinstance(output_shape, list):
278
275
  for o in output_shape:
@@ -354,9 +354,9 @@ else:
354
354
  # If torch is not installed,
355
355
  # we raise an exception when trying to use these functions.
356
356
  def get_pytorch_data_generation_config(*args, **kwargs):
357
- msg = f"torch and torchvision must be installed to use get_pytorch_data_generation_config. " + ("" if FOUND_TORCH else "'torch' package is missing. ") + ("" if FOUND_TORCHVISION else "'torchvision' package is missing. ") # pragma: no cover
357
+ msg = f"PyTorch and torchvision must be installed to use get_pytorch_data_generation_config. " + ("" if FOUND_TORCH else "The 'torch' package is missing. ") + ("" if FOUND_TORCHVISION else "The 'torchvision' package is missing. ") # pragma: no cover
358
358
  Logger.critical(msg) # pragma: no cover
359
359
 
360
360
  def pytorch_data_generation_experimental(*args, **kwargs):
361
- msg = f"torch and torchvision must be installed to use pytorch_data_generation_experimental. " + ("" if FOUND_TORCH else "'torch' package is missing. ") + ("" if FOUND_TORCHVISION else "'torchvision' package is missing. ") # pragma: no cover
362
- Logger.critical(msg) # pragma: no cover
361
+ msg = f"PyTorch and torchvision must be installed to use pytorch_data_generation_experimental. " + ("" if FOUND_TORCH else "The 'torch' package is missing. ") + ("" if FOUND_TORCHVISION else "The 'torchvision' package is missing. ") # pragma: no cover
362
+ Logger.critical(msg) # pragma: no cover
@@ -43,7 +43,7 @@ if FOUND_ONNX:
43
43
  save_model_path: str,
44
44
  repr_dataset: Callable,
45
45
  onnx_opset_version: int,
46
- use_onnx_custom_quantizer_ops: bool = False,):
46
+ use_onnx_custom_quantizer_ops: bool = False):
47
47
  """
48
48
 
49
49
  Args:
@@ -134,6 +134,5 @@ if FOUND_ONNX:
134
134
 
135
135
  else:
136
136
  def FakelyQuantONNXPyTorchExporter(*args, **kwargs):
137
- Logger.critical('Installing onnx is mandatory '
138
- 'when using FakelyQuantONNXPyTorchExporter. '
139
- 'Could not find onnx package.') # pragma: no cover
137
+ Logger.critical("ONNX must be installed to use 'FakelyQuantONNXPyTorchExporter'. "
138
+ "The 'onnx' package is missing.") # pragma: no cover
@@ -14,7 +14,7 @@
14
14
  # ==============================================================================
15
15
  from typing import Callable
16
16
 
17
- from model_compression_toolkit.constants import FOUND_TORCH, FOUND_ONNX
17
+ from model_compression_toolkit.constants import FOUND_TORCH
18
18
  from model_compression_toolkit.exporter.model_exporter.fw_agonstic.quantization_format import QuantizationFormat
19
19
  from model_compression_toolkit.exporter.model_exporter.pytorch.export_serialization_format import \
20
20
  PytorchExportSerializationFormat
@@ -152,19 +152,6 @@ def generate_tp_model(default_config: OpQuantizationConfig,
152
152
  # this configuration will be used for the operation quantization:
153
153
  default_configuration_options = tp.QuantizationConfigOptions([default_config])
154
154
 
155
- # Create a QuantizationConfigOptions for quantizing constants in functional ops.
156
- # Constant configuration is similar to the default eight bit configuration except for PoT
157
- # quantization method for the constant.
158
- # Since the constants are not named attributes of the layer, we use the default_weight_attr_config to
159
- # define the desired quantization properties for them.
160
- const_config = default_config.clone_and_edit(
161
- default_weight_attr_config=default_config.default_weight_attr_config.clone_and_edit(
162
- enable_weights_quantization=True))
163
- if not (const_config.default_weight_attr_config.weights_quantization_method == tp.QuantizationMethod.POWER_OF_TWO and
164
- const_config.default_weight_attr_config.weights_per_channel_threshold is False):
165
- mct.logger.Logger.error('Constant quantization config should be per-tensor PoT.')
166
- const_configuration_options = tp.QuantizationConfigOptions([const_config])
167
-
168
155
  # Create a TargetPlatformModel and set its default quantization config.
169
156
  # This default configuration will be used for all operations
170
157
  # unless specified otherwise (see OperatorsSet, for example):
@@ -198,10 +185,10 @@ def generate_tp_model(default_config: OpQuantizationConfig,
198
185
  # Define operations sets without quantization configuration
199
186
  # options (useful for creating fusing patterns, for example):
200
187
  any_relu = tp.OperatorsSet("AnyReLU")
201
- add = tp.OperatorsSet("Add", const_configuration_options)
202
- sub = tp.OperatorsSet("Sub", const_configuration_options)
203
- mul = tp.OperatorsSet("Mul", const_configuration_options)
204
- div = tp.OperatorsSet("Div", const_configuration_options)
188
+ add = tp.OperatorsSet("Add")
189
+ sub = tp.OperatorsSet("Sub")
190
+ mul = tp.OperatorsSet("Mul")
191
+ div = tp.OperatorsSet("Div")
205
192
  prelu = tp.OperatorsSet("PReLU")
206
193
  swish = tp.OperatorsSet("Swish")
207
194
  sigmoid = tp.OperatorsSet("Sigmoid")
@@ -151,19 +151,6 @@ def generate_tp_model(default_config: OpQuantizationConfig,
151
151
  # this configuration will be used for the operation quantization:
152
152
  default_configuration_options = tp.QuantizationConfigOptions([default_config])
153
153
 
154
- # Create a QuantizationConfigOptions for quantizing constants in functional ops.
155
- # Constant configuration is similar to the default eight bit configuration except for PoT
156
- # quantization method for the constant.
157
- # Since the constants are not named attributes of the layer, we use the default_weight_attr_config to
158
- # define the desired quantization properties for them.
159
- const_config = default_config.clone_and_edit(
160
- default_weight_attr_config=default_config.default_weight_attr_config.clone_and_edit(
161
- enable_weights_quantization=True))
162
- if not (const_config.default_weight_attr_config.weights_quantization_method == tp.QuantizationMethod.POWER_OF_TWO and
163
- const_config.default_weight_attr_config.weights_per_channel_threshold is False):
164
- mct.logger.Logger.error('Constant quantization config should be per-tensor PoT.')
165
- const_configuration_options = tp.QuantizationConfigOptions([const_config])
166
-
167
154
  # Create a TargetPlatformModel and set its default quantization config.
168
155
  # This default configuration will be used for all operations
169
156
  # unless specified otherwise (see OperatorsSet, for example):
@@ -195,10 +182,10 @@ def generate_tp_model(default_config: OpQuantizationConfig,
195
182
  # Define operations sets without quantization configuration
196
183
  # options (useful for creating fusing patterns, for example):
197
184
  any_relu = tp.OperatorsSet("AnyReLU")
198
- add = tp.OperatorsSet("Add", const_configuration_options)
199
- sub = tp.OperatorsSet("Sub", const_configuration_options)
200
- mul = tp.OperatorsSet("Mul", const_configuration_options)
201
- div = tp.OperatorsSet("Div", const_configuration_options)
185
+ add = tp.OperatorsSet("Add")
186
+ sub = tp.OperatorsSet("Sub")
187
+ mul = tp.OperatorsSet("Mul")
188
+ div = tp.OperatorsSet("Div")
202
189
  prelu = tp.OperatorsSet("PReLU")
203
190
  swish = tp.OperatorsSet("Swish")
204
191
  sigmoid = tp.OperatorsSet("Sigmoid")