From 883ec83539534ac5300f9d2daff2ced4bc442d81 Mon Sep 17 00:00:00 2001 From: elad-c Date: Thu, 11 Apr 2024 16:11:43 +0300 Subject: [PATCH] Add "identity" to NoQuantization in TPCs Remove BatchNorm from NoQuantization --- .../tpc_models/imx500_tpc/v1/tpc_keras.py | 10 +++- .../tpc_models/imx500_tpc/v1/tpc_pytorch.py | 6 +- .../tpc_models/imx500_tpc/v1_lut/tpc_keras.py | 8 ++- .../imx500_tpc/v1_lut/tpc_pytorch.py | 6 +- .../tpc_models/imx500_tpc/v1_pot/tpc_keras.py | 10 +++- .../imx500_tpc/v1_pot/tpc_pytorch.py | 6 +- .../tpc_models/imx500_tpc/v2/tpc_keras.py | 10 +++- .../tpc_models/imx500_tpc/v2/tpc_pytorch.py | 3 +- .../tpc_models/imx500_tpc/v2_lut/tpc_keras.py | 10 +++- .../imx500_tpc/v2_lut/tpc_pytorch.py | 3 +- .../tpc_models/tflite_tpc/v1/tpc_keras.py | 60 +++++++++++-------- .../tpc_models/tflite_tpc/v1/tpc_pytorch.py | 5 +- ...est_activation_quantization_holder_gptq.py | 4 +- 13 files changed, 89 insertions(+), 52 deletions(-) diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py index d0526faf2..f868b4fb5 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py @@ -27,10 +27,12 @@ from keras.src.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ Conv2DTranspose + if version.parse(tf.__version__) >= version.parse("2.12"): + from keras.src.layers import Identity else: from keras.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ - Conv2DTranspose + Conv2DTranspose, Identity from model_compression_toolkit.target_platform_capabilities.tpc_models.imx500_tpc.v1.tp_model import get_tp_model import model_compression_toolkit as mct @@ -61,7 +63,8 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): keras_tpc = tp.TargetPlatformCapabilities(tp_model, name=name, version=TPC_VERSION) - no_quant_list = [Reshape, + no_quant_list = [tf.identity, + Reshape, tf.reshape, Permute, tf.transpose, @@ -84,6 +87,9 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): tf.image.combined_non_max_suppression, tf.compat.v1.shape] + if version.parse(tf.__version__) >= version.parse("2.12"): + no_quant_list.append(Identity) + if FOUND_SONY_CUSTOM_LAYERS: no_quant_list.append(SSDPostProcess) diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py index 086f0cace..9678c0598 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py @@ -18,7 +18,7 @@ import torch from torch import add, sub, mul, div, flatten, reshape, split, unsqueeze, dropout, sigmoid, tanh, chunk, unbind, topk, \ gather, equal, transpose, permute, argmax, squeeze -from torch.nn import Conv2d, Linear, BatchNorm2d, ConvTranspose2d +from torch.nn import Conv2d, Linear, ConvTranspose2d, Identity from torch.nn import Dropout, Flatten, Hardtanh from torch.nn import ReLU, ReLU6, PReLU, SiLU, Sigmoid, Tanh, Hardswish, LeakyReLU from torch.nn.functional import relu, relu6, prelu, silu, hardtanh, hardswish, leaky_relu @@ -64,7 +64,8 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): BIAS_ATTR: DefaultDict(default_value=BIAS)} with pytorch_tpc: - tp.OperationsSetToLayers("NoQuantization", [Dropout, + tp.OperationsSetToLayers("NoQuantization", [Identity, + Dropout, Flatten, dropout, flatten, @@ -72,7 +73,6 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): operator.getitem, reshape, unsqueeze, - BatchNorm2d, chunk, unbind, torch.Tensor.size, diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py index 6d0a14b50..60ae215ea 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py @@ -27,6 +27,8 @@ from keras.src.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ Conv2DTranspose + if version.parse(tf.__version__) >= version.parse("2.12"): + from keras.src.layers import Identity else: from keras.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ @@ -61,7 +63,8 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): keras_tpc = tp.TargetPlatformCapabilities(tp_model, name=name, version=TPC_VERSION) - no_quant_list = [Reshape, + no_quant_list = [tf.identity, + Reshape, tf.reshape, Permute, tf.transpose, @@ -84,6 +87,9 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): tf.image.combined_non_max_suppression, tf.compat.v1.shape] + if version.parse(tf.__version__) >= version.parse("2.12"): + no_quant_list.append(Identity) + if FOUND_SONY_CUSTOM_LAYERS: no_quant_list.append(SSDPostProcess) diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py index b50921dcd..5286b3faf 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py @@ -18,7 +18,7 @@ import torch from torch import add, sub, mul, div, flatten, reshape, split, unsqueeze, dropout, sigmoid, tanh, chunk, unbind, topk, \ gather, equal, transpose, permute, argmax, squeeze -from torch.nn import Conv2d, Linear, BatchNorm2d, ConvTranspose2d +from torch.nn import Conv2d, Linear, ConvTranspose2d, Identity from torch.nn import Dropout, Flatten, Hardtanh from torch.nn import ReLU, ReLU6, PReLU, SiLU, Sigmoid, Tanh, Hardswish, LeakyReLU from torch.nn.functional import relu, relu6, prelu, silu, hardtanh, hardswish, leaky_relu @@ -64,7 +64,8 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): BIAS_ATTR: DefaultDict(default_value=BIAS)} with pytorch_tpc: - tp.OperationsSetToLayers("NoQuantization", [Dropout, + tp.OperationsSetToLayers("NoQuantization", [Identity, + Dropout, Flatten, dropout, flatten, @@ -72,7 +73,6 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): operator.getitem, reshape, unsqueeze, - BatchNorm2d, chunk, unbind, torch.Tensor.size, diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py index b46dcac6b..6a7aafd82 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py @@ -27,10 +27,12 @@ from keras.src.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ Conv2DTranspose + if version.parse(tf.__version__) >= version.parse("2.12"): + from keras.src.layers import Identity else: from keras.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ - Conv2DTranspose + Conv2DTranspose, Identity from model_compression_toolkit.target_platform_capabilities.tpc_models.imx500_tpc.v1_pot.tp_model import get_tp_model import model_compression_toolkit as mct @@ -61,7 +63,8 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): keras_tpc = tp.TargetPlatformCapabilities(tp_model, name=name, version=TPC_VERSION) - no_quant_list = [Reshape, + no_quant_list = [tf.identity, + Reshape, tf.reshape, Permute, tf.transpose, @@ -84,6 +87,9 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): tf.image.combined_non_max_suppression, tf.compat.v1.shape] + if version.parse(tf.__version__) >= version.parse("2.12"): + no_quant_list.append(Identity) + if FOUND_SONY_CUSTOM_LAYERS: no_quant_list.append(SSDPostProcess) diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py index 7f46dfe0c..cb52c02e5 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py @@ -18,7 +18,7 @@ import torch from torch import add, sub, mul, div, flatten, reshape, split, unsqueeze, dropout, sigmoid, tanh, chunk, unbind, topk, \ gather, equal, transpose, permute, argmax, squeeze -from torch.nn import Conv2d, Linear, BatchNorm2d, ConvTranspose2d +from torch.nn import Conv2d, Linear, ConvTranspose2d, Identity from torch.nn import Dropout, Flatten, Hardtanh from torch.nn import ReLU, ReLU6, PReLU, SiLU, Sigmoid, Tanh, Hardswish, LeakyReLU from torch.nn.functional import relu, relu6, prelu, silu, hardtanh, hardswish, leaky_relu @@ -65,7 +65,8 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): BIAS_ATTR: DefaultDict(default_value=BIAS)} with pytorch_tpc: - tp.OperationsSetToLayers("NoQuantization", [Dropout, + tp.OperationsSetToLayers("NoQuantization", [Identity, + Dropout, Flatten, dropout, flatten, @@ -73,7 +74,6 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): operator.getitem, reshape, unsqueeze, - BatchNorm2d, chunk, unbind, torch.Tensor.size, diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py index 96505f638..2132f75db 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_keras.py @@ -27,10 +27,12 @@ from keras.src.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ Conv2DTranspose + if version.parse(tf.__version__) >= version.parse("2.12"): + from keras.src.layers import Identity else: from keras.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ - Conv2DTranspose + Conv2DTranspose, Identity from model_compression_toolkit.target_platform_capabilities.tpc_models.imx500_tpc.v2.tp_model import get_tp_model import model_compression_toolkit as mct @@ -62,7 +64,8 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): keras_tpc = tp.TargetPlatformCapabilities(tp_model, name=name, version=TPC_VERSION) - no_quant_list = [Reshape, + no_quant_list = [tf.identity, + Reshape, tf.reshape, Permute, tf.transpose, @@ -85,6 +88,9 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): tf.image.combined_non_max_suppression, tf.compat.v1.shape] + if version.parse(tf.__version__) >= version.parse("2.12"): + no_quant_list.append(Identity) + if FOUND_SONY_CUSTOM_LAYERS: no_quant_list.append(SSDPostProcess) diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py index af057b710..3f0a97906 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2/tpc_pytorch.py @@ -18,7 +18,7 @@ import torch from torch import add, sub, mul, div, flatten, reshape, split, unsqueeze, dropout, sigmoid, tanh, chunk, unbind, topk, \ gather, equal, transpose, permute, argmax, squeeze -from torch.nn import Conv2d, Linear, BatchNorm2d, ConvTranspose2d +from torch.nn import Conv2d, Linear, ConvTranspose2d from torch.nn import Dropout, Flatten, Hardtanh from torch.nn import ReLU, ReLU6, PReLU, SiLU, Sigmoid, Tanh, Hardswish, LeakyReLU from torch.nn.functional import relu, relu6, prelu, silu, hardtanh, hardswish, leaky_relu @@ -73,7 +73,6 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): operator.getitem, reshape, unsqueeze, - BatchNorm2d, chunk, unbind, torch.Tensor.size, diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py index 8ef6b73a5..f41eb8986 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_keras.py @@ -27,10 +27,12 @@ from keras.src.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ Conv2DTranspose + if version.parse(tf.__version__) >= version.parse("2.12"): + from keras.src.layers import Identity else: from keras.layers import Conv2D, DepthwiseConv2D, Dense, Reshape, ZeroPadding2D, Dropout, \ MaxPooling2D, Activation, ReLU, Add, Subtract, Multiply, PReLU, Flatten, Cropping2D, LeakyReLU, Permute, \ - Conv2DTranspose + Conv2DTranspose, Identity from model_compression_toolkit.target_platform_capabilities.tpc_models.imx500_tpc.v2_lut.tp_model import get_tp_model import model_compression_toolkit as mct @@ -61,7 +63,8 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): keras_tpc = tp.TargetPlatformCapabilities(tp_model, name=name, version=TPC_VERSION) - no_quant_list = [Reshape, + no_quant_list = [tf.identity, + Reshape, tf.reshape, Permute, tf.transpose, @@ -84,6 +87,9 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): tf.image.combined_non_max_suppression, tf.compat.v1.shape] + if version.parse(tf.__version__) >= version.parse("2.12"): + no_quant_list.append(Identity) + if FOUND_SONY_CUSTOM_LAYERS: no_quant_list.append(SSDPostProcess) diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py index 364f1cfad..273305ab8 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v2_lut/tpc_pytorch.py @@ -18,7 +18,7 @@ import torch from torch import add, sub, mul, div, flatten, reshape, split, unsqueeze, dropout, sigmoid, tanh, chunk, unbind, topk, \ gather, equal, transpose, permute, argmax, squeeze -from torch.nn import Conv2d, Linear, BatchNorm2d, ConvTranspose2d +from torch.nn import Conv2d, Linear, ConvTranspose2d from torch.nn import Dropout, Flatten, Hardtanh from torch.nn import ReLU, ReLU6, PReLU, SiLU, Sigmoid, Tanh, Hardswish, LeakyReLU from torch.nn.functional import relu, relu6, prelu, silu, hardtanh, hardswish, leaky_relu @@ -72,7 +72,6 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): operator.getitem, reshape, unsqueeze, - BatchNorm2d, chunk, unbind, torch.Tensor.size, diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py index bc1ba09b4..856cafd32 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py @@ -21,9 +21,11 @@ if version.parse(tf.__version__) >= version.parse("2.13"): from keras.src.layers import Conv2D, Dense, Reshape, ZeroPadding2D, AveragePooling2D, Activation, DepthwiseConv2D, \ MaxPooling2D, ReLU, Add, Softmax, Concatenate, Multiply, Maximum, Minimum, BatchNormalization + if version.parse(tf.__version__) >= version.parse("2.12"): + from keras.src.layers import Identity else: from keras.layers import Conv2D, Dense, Reshape, ZeroPadding2D, AveragePooling2D, Activation, DepthwiseConv2D, \ - MaxPooling2D, ReLU, Add, Softmax, Concatenate, Multiply, Maximum, Minimum, BatchNormalization + MaxPooling2D, ReLU, Add, Softmax, Concatenate, Multiply, Maximum, Minimum, BatchNormalization, Identity from tensorflow.python.keras.layers.core import SlicingOpLambda from tensorflow.python.ops.image_ops_impl import ResizeMethod @@ -62,31 +64,37 @@ def generate_keras_tpc(name: str, tp_model: tp.TargetPlatformModel): version=TPC_VERSION) with keras_tpc: - tp.OperationsSetToLayers("NoQuantization", [AveragePooling2D, - tf.nn.avg_pool2d, - Concatenate, - tf.concat, - MaxPooling2D, - Multiply, - tf.multiply, - Reshape, - tf.reshape, - tp.LayerFilterParams(tf.image.resize, - method=ResizeMethod.BILINEAR), - tf.nn.space_to_depth, - ZeroPadding2D, - tf.unstack, - tf.gather, - tf.compat.v1.batch_to_space_nd, - tf.space_to_batch_nd, - tf.transpose, - tf.maximum, - Maximum, - tf.minimum, - Minimum, - tf.pad, - tf.slice, - SlicingOpLambda]) + no_quant_list = [tf.identity, + AveragePooling2D, + tf.nn.avg_pool2d, + Concatenate, + tf.concat, + MaxPooling2D, + Multiply, + tf.multiply, + Reshape, + tf.reshape, + tp.LayerFilterParams(tf.image.resize, + method=ResizeMethod.BILINEAR), + tf.nn.space_to_depth, + ZeroPadding2D, + tf.unstack, + tf.gather, + tf.compat.v1.batch_to_space_nd, + tf.space_to_batch_nd, + tf.transpose, + tf.maximum, + Maximum, + tf.minimum, + Minimum, + tf.pad, + tf.slice, + SlicingOpLambda] + + if version.parse(tf.__version__) >= version.parse("2.12"): + no_quant_list.append(Identity) + + tp.OperationsSetToLayers("NoQuantization", no_quant_list) tp.OperationsSetToLayers("FullyConnected", [Dense], # we provide attributes mapping that maps each layer type in the operations set diff --git a/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py b/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py index 3f7f85d32..4fbf65123 100644 --- a/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +++ b/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py @@ -13,7 +13,7 @@ # limitations under the License. # ============================================================================== import torch -from torch.nn import AvgPool2d, MaxPool2d +from torch.nn import AvgPool2d, MaxPool2d, Identity from torch.nn.functional import avg_pool2d, max_pool2d, interpolate from model_compression_toolkit.defaultdict import DefaultDict @@ -51,7 +51,8 @@ def generate_pytorch_tpc(name: str, tp_model: tp.TargetPlatformModel): version=TPC_VERSION) with pytorch_tpc: - tp.OperationsSetToLayers("NoQuantization", [AvgPool2d, + tp.OperationsSetToLayers("NoQuantization", [Identity, + AvgPool2d, avg_pool2d, torch.cat, torch.concat, diff --git a/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py b/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py index c1c074213..272ab6165 100644 --- a/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py +++ b/tests/pytorch_tests/function_tests/test_activation_quantization_holder_gptq.py @@ -73,7 +73,7 @@ def test_adding_holder_instead_quantize_wrapper(self): # the last module should be an activation quantization holder self.assertTrue(isinstance(last_module, PytorchActivationQuantizationHolder)) # check that 4 activation quantization holders where generated - self.assertTrue(len(activation_quantization_holders_in_model) == 4) + self.assertTrue(len(activation_quantization_holders_in_model) == 3) for a in activation_quantization_holders_in_model: self.assertTrue(isinstance(a.activation_holder_quantizer, ActivationPOTInferableQuantizer)) for name, module in gptq_model.named_modules(): @@ -102,7 +102,7 @@ def test_adding_holders_after_reuse(self): # the last module should be an activation quantization holder self.assertTrue(isinstance(last_module, PytorchActivationQuantizationHolder)) # check that 4 activation quantization holders where generated - self.assertTrue(len(activation_quantization_holders_in_model) == 4) + self.assertTrue(len(activation_quantization_holders_in_model) == 3) for a in activation_quantization_holders_in_model: self.assertTrue(isinstance(a.activation_holder_quantizer, ActivationPOTInferableQuantizer)) for name, module in gptq_model.named_modules():