From 11745b4e45cb226e48d3a36133838dea09b0eca8 Mon Sep 17 00:00:00 2001 From: NielsRogge <48327001+NielsRogge@users.noreply.github.com> Date: Wed, 14 Dec 2022 14:41:40 +0100 Subject: [PATCH] [Tests] Improve test_attention_outputs (#20701) * Improve tests * Improve TF tests * Apply suggestion * Fix test Co-authored-by: Niels Rogge --- tests/models/convnext/test_modeling_convnext.py | 4 ---- tests/models/convnext/test_modeling_tf_convnext.py | 5 +---- tests/models/poolformer/test_modeling_poolformer.py | 4 ---- tests/models/regnet/test_modeling_regnet.py | 4 ---- tests/models/regnet/test_modeling_tf_regnet.py | 4 ---- tests/models/resnet/test_modeling_resnet.py | 4 ---- tests/models/resnet/test_modeling_tf_resnet.py | 4 ---- tests/models/van/test_modeling_van.py | 4 ---- tests/test_modeling_common.py | 3 +++ tests/test_modeling_tf_common.py | 3 +++ 10 files changed, 7 insertions(+), 32 deletions(-) diff --git a/tests/models/convnext/test_modeling_convnext.py b/tests/models/convnext/test_modeling_convnext.py index 1225175a1b..6cdaafabec 100644 --- a/tests/models/convnext/test_modeling_convnext.py +++ b/tests/models/convnext/test_modeling_convnext.py @@ -159,10 +159,6 @@ class ConvNextModelTest(ModelTesterMixin, unittest.TestCase): def create_and_test_config_common_properties(self): return - @unittest.skip(reason="ConvNext does not output attentions") - def test_attention_outputs(self): - pass - @unittest.skip(reason="ConvNext does not use inputs_embeds") def test_inputs_embeds(self): pass diff --git a/tests/models/convnext/test_modeling_tf_convnext.py b/tests/models/convnext/test_modeling_tf_convnext.py index 9a0d3140e9..cf674a9b85 100644 --- a/tests/models/convnext/test_modeling_tf_convnext.py +++ b/tests/models/convnext/test_modeling_tf_convnext.py @@ -129,6 +129,7 @@ class TFConvNextModelTest(TFModelTesterMixin, unittest.TestCase): test_onnx = False test_resize_embeddings = False test_head_masking = False + has_attentions = False def setUp(self): self.model_tester = TFConvNextModelTester(self) @@ -170,10 +171,6 @@ class TFConvNextModelTest(TFModelTesterMixin, unittest.TestCase): config_and_inputs = self.model_tester.prepare_config_and_inputs() self.model_tester.create_and_check_model(*config_and_inputs) - @unittest.skip(reason="Model doesn't have attention layers") - def test_attention_outputs(self): - pass - @unittest.skipIf( not is_tf_available() or len(tf.config.list_physical_devices("GPU")) == 0, reason="TF does not support backprop for grouped convolutions on CPU.", diff --git a/tests/models/poolformer/test_modeling_poolformer.py b/tests/models/poolformer/test_modeling_poolformer.py index 7dc47d2c77..9bb8fa2e29 100644 --- a/tests/models/poolformer/test_modeling_poolformer.py +++ b/tests/models/poolformer/test_modeling_poolformer.py @@ -142,10 +142,6 @@ class PoolFormerModelTest(ModelTesterMixin, unittest.TestCase): config_and_inputs = self.model_tester.prepare_config_and_inputs() self.model_tester.create_and_check_model(*config_and_inputs) - @unittest.skip(reason="PoolFormer does not output attentions") - def test_attention_outputs(self): - pass - @unittest.skip("PoolFormer does not use inputs_embeds") def test_inputs_embeds(self): pass diff --git a/tests/models/regnet/test_modeling_regnet.py b/tests/models/regnet/test_modeling_regnet.py index 4879bf259e..02695dbf64 100644 --- a/tests/models/regnet/test_modeling_regnet.py +++ b/tests/models/regnet/test_modeling_regnet.py @@ -147,10 +147,6 @@ class RegNetModelTest(ModelTesterMixin, unittest.TestCase): def create_and_test_config_common_properties(self): return - @unittest.skip(reason="RegNet does not output attentions") - def test_attention_outputs(self): - pass - @unittest.skip(reason="RegNet does not use inputs_embeds") def test_inputs_embeds(self): pass diff --git a/tests/models/regnet/test_modeling_tf_regnet.py b/tests/models/regnet/test_modeling_tf_regnet.py index 3b426fcd08..2977d43c06 100644 --- a/tests/models/regnet/test_modeling_tf_regnet.py +++ b/tests/models/regnet/test_modeling_tf_regnet.py @@ -147,10 +147,6 @@ class TFRegNetModelTest(TFModelTesterMixin, unittest.TestCase): def test_model_common_attributes(self): pass - @unittest.skip(reason="Model doesn't have attention layers") - def test_attention_outputs(self): - pass - def test_forward_signature(self): config, _ = self.model_tester.prepare_config_and_inputs_for_common() diff --git a/tests/models/resnet/test_modeling_resnet.py b/tests/models/resnet/test_modeling_resnet.py index 15d3dca3c5..f4b79fb24b 100644 --- a/tests/models/resnet/test_modeling_resnet.py +++ b/tests/models/resnet/test_modeling_resnet.py @@ -188,10 +188,6 @@ class ResNetModelTest(ModelTesterMixin, unittest.TestCase): def create_and_test_config_common_properties(self): return - @unittest.skip(reason="ResNet does not output attentions") - def test_attention_outputs(self): - pass - @unittest.skip(reason="ResNet does not use inputs_embeds") def test_inputs_embeds(self): pass diff --git a/tests/models/resnet/test_modeling_tf_resnet.py b/tests/models/resnet/test_modeling_tf_resnet.py index 1056ebc8ee..fdcbc1c734 100644 --- a/tests/models/resnet/test_modeling_tf_resnet.py +++ b/tests/models/resnet/test_modeling_tf_resnet.py @@ -150,10 +150,6 @@ class TFResNetModelTest(TFModelTesterMixin, unittest.TestCase): def test_inputs_embeds(self): pass - @unittest.skip(reason="ResNet does not output attentions") - def test_attention_outputs(self): - pass - @unittest.skip(reason="ResNet does not support input and output embeddings") def test_model_common_attributes(self): pass diff --git a/tests/models/van/test_modeling_van.py b/tests/models/van/test_modeling_van.py index 6b6a672b9b..3e5b7fb1df 100644 --- a/tests/models/van/test_modeling_van.py +++ b/tests/models/van/test_modeling_van.py @@ -144,10 +144,6 @@ class VanModelTest(ModelTesterMixin, unittest.TestCase): def create_and_test_config_common_properties(self): return - @unittest.skip(reason="Van does not output attentions") - def test_attention_outputs(self): - pass - @unittest.skip(reason="Van does not use inputs_embeds") def test_inputs_embeds(self): pass diff --git a/tests/test_modeling_common.py b/tests/test_modeling_common.py index 01173ebcbd..4239807743 100755 --- a/tests/test_modeling_common.py +++ b/tests/test_modeling_common.py @@ -554,6 +554,9 @@ class ModelTesterMixin: loss.backward() def test_attention_outputs(self): + if not self.has_attentions: + self.skipTest(reason="Model does not output attentions") + config, inputs_dict = self.model_tester.prepare_config_and_inputs_for_common() config.return_dict = True diff --git a/tests/test_modeling_tf_common.py b/tests/test_modeling_tf_common.py index 6908c73c99..4dcc14d807 100644 --- a/tests/test_modeling_tf_common.py +++ b/tests/test_modeling_tf_common.py @@ -830,6 +830,9 @@ class TFModelTesterMixin: self.assertLess(np.sum(np.abs(output_dict - output_keywords)), 1e-6) def test_attention_outputs(self): + if not self.has_attentions: + self.skipTest(reason="Model does not output attentions") + config, inputs_dict = self.model_tester.prepare_config_and_inputs_for_common() config.return_dict = True decoder_seq_length = getattr(self.model_tester, "decoder_seq_length", self.model_tester.seq_length)