From 46e74cb2d1b7486c3e606f4cdc26e69cc56fb3e1 Mon Sep 17 00:00:00 2001 From: Jyotinder Singh <33001894+JyotinderSingh@users.noreply.github.com> Date: Thu, 4 Dec 2025 20:55:53 +0530 Subject: [PATCH 1/3] disables implicit gptq quantization using dtype_policy setter --- keras/src/layers/layer.py | 7 +++++++ keras/src/layers/layer_test.py | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/keras/src/layers/layer.py b/keras/src/layers/layer.py index 9825067b78a..7eff9d76f49 100644 --- a/keras/src/layers/layer.py +++ b/keras/src/layers/layer.py @@ -757,6 +757,13 @@ def dtype_policy(self, value): self._dtype_policy = policy if policy.quantization_mode is not None: if self.built and not getattr(self, "_is_quantized", False): + if policy.quantization_mode == "gptq": + raise ValueError( + f"{value=} enables GPTQ quantization mode." + "This is unsupported since GPTQ requires " + "a calibration dataset and a GPTQConfig." + "Use the `.quantize()` method instead." + ) self.quantize(policy.quantization_mode) @property diff --git a/keras/src/layers/layer_test.py b/keras/src/layers/layer_test.py index 03b8715f804..c63147a414e 100644 --- a/keras/src/layers/layer_test.py +++ b/keras/src/layers/layer_test.py @@ -233,6 +233,16 @@ def test_quantized_layer_with_remat(self): self.assertLen(mock_remat.rematted_functions, 1) next(iter(mock_remat.rematted_functions.values())).assert_called() + def test_gptq_quantization_by_setting_dtype(self): + """Tests error being raised when dtype is set to GPTQ.""" + with self.assertRaisesRegex( + ValueError, + "enables GPTQ quantization mode.This is unsupported", + ): + layer = layers.Dense(3) + layer.build((2, 4)) + layer.dtype_policy = "gptq/4/-1_from_float32" + def test_functional_model_with_remat(self): if backend.backend() in ("openvino", "numpy"): self.skipTest( From ae844640f519386d453a3825d3519f6a208cd647 Mon Sep 17 00:00:00 2001 From: Jyotinder Singh <33001894+JyotinderSingh@users.noreply.github.com> Date: Thu, 4 Dec 2025 21:03:09 +0530 Subject: [PATCH 2/3] Update layer.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- keras/src/layers/layer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/keras/src/layers/layer.py b/keras/src/layers/layer.py index 7eff9d76f49..5922cf54e42 100644 --- a/keras/src/layers/layer.py +++ b/keras/src/layers/layer.py @@ -759,10 +759,12 @@ def dtype_policy(self, value): if self.built and not getattr(self, "_is_quantized", False): if policy.quantization_mode == "gptq": raise ValueError( - f"{value=} enables GPTQ quantization mode." - "This is unsupported since GPTQ requires " - "a calibration dataset and a GPTQConfig." - "Use the `.quantize()` method instead." + "Implicitly enabling GPTQ quantization by setting " + f"`dtype_policy` to '{value}' is not supported. " + "GPTQ requires a calibration dataset and a " + "`GPTQConfig` object.\n\n" + "Please use the `.quantize('gptq', config=...)` method " + "on the layer or model instead." ) self.quantize(policy.quantization_mode) From 75b54c3ec452408de06ab35d7d7f2d9f205fbfca Mon Sep 17 00:00:00 2001 From: Jyotinder Singh <33001894+JyotinderSingh@users.noreply.github.com> Date: Thu, 4 Dec 2025 21:03:16 +0530 Subject: [PATCH 3/3] Update layer_test.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- keras/src/layers/layer_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keras/src/layers/layer_test.py b/keras/src/layers/layer_test.py index c63147a414e..1e72847771a 100644 --- a/keras/src/layers/layer_test.py +++ b/keras/src/layers/layer_test.py @@ -237,7 +237,7 @@ def test_gptq_quantization_by_setting_dtype(self): """Tests error being raised when dtype is set to GPTQ.""" with self.assertRaisesRegex( ValueError, - "enables GPTQ quantization mode.This is unsupported", + "Implicitly enabling GPTQ quantization.*is not supported", ): layer = layers.Dense(3) layer.build((2, 4))