Skip to content

Commit 39d88b2

Browse files
committed
fixes peft tests and ruff
1 parent f1ae8ae commit 39d88b2

File tree

4 files changed

+28
-26
lines changed

4 files changed

+28
-26
lines changed

src/transformers/models/idefics3/image_processing_idefics3.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818

1919
import numpy as np
2020

21-
from transformers.utils.import_utils import is_flax_available, is_tf_available, is_torch_available
22-
2321
from ...image_processing_utils import BaseImageProcessor, BatchFeature
2422
from ...image_transforms import PaddingMode, pad, to_channel_dimension_format
2523
from ...image_utils import (
@@ -39,15 +37,6 @@
3937
from ...utils import TensorType, is_vision_available, logging
4038

4139

42-
if is_torch_available():
43-
pass
44-
45-
if is_tf_available():
46-
pass
47-
48-
if is_flax_available():
49-
pass
50-
5140
logger = logging.get_logger(__name__)
5241

5342

@@ -235,7 +224,7 @@ def make_pixel_mask(
235224

236225
# Custom to_pil_image function to support image_mode
237226
def to_pil_image(
238-
image: Union[np.ndarray, "PIL.Image.Image", "torch.Tensor", "tf.Tensor", "jnp.ndarray"],
227+
image: Union[np.ndarray, "PIL.Image.Image", TensorType],
239228
image_mode: Optional[str] = None,
240229
) -> "PIL.Image.Image":
241230
"""
@@ -266,6 +255,7 @@ def to_pil_image(
266255
image = image.astype(np.uint8)
267256
return PIL.Image.fromarray(image, mode=image_mode)
268257

258+
269259
def convert_to_rgb(
270260
image: np.ndarray,
271261
palette: Optional[PIL.ImagePalette.ImagePalette] = None,
@@ -932,4 +922,4 @@ def preprocess(
932922
encoding["rows"] = images_list_rows
933923
encoding["cols"] = images_list_cols
934924

935-
return encoding
925+
return encoding

src/transformers/models/idefics3/modeling_idefics3.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ def forward(
264264
return attn_output, attn_weights
265265

266266

267-
# copied from transformers.models.idefics2.modeling_idefics2.Idefics2VisionFlashAttention2
267+
# Copied from transformers.models.idefics2.modeling_idefics2.Idefics2VisionFlashAttention2 with Idefics2->Idefics3
268268
class Idefics3VisionFlashAttention2(Idefics3VisionAttention):
269269
"""
270270
Idefics3Vision flash attention module. This module inherits from `Idefics3VisionAttention` as the weights of the module stays
@@ -865,6 +865,11 @@ def make_inputs_require_grads(module, input, output):
865865
make_inputs_require_grads
866866
)
867867

868+
# Copied from transformers.models.idefics2.modeling_idefics2.Idefics2Model.disable_input_require_grads
869+
def disable_input_require_grads(self):
870+
self._text_require_grads_hook.remove()
871+
self._vision_require_grads_hook.remove()
872+
868873
# Copied from transformers.models.idefics2.modeling_idefics2.Idefics2Model.get_input_embeddings
869874
def get_input_embeddings(self):
870875
return self.text_model.get_input_embeddings()
@@ -1065,6 +1070,11 @@ def make_inputs_require_grads(module, input, output):
10651070
make_inputs_require_grads
10661071
)
10671072

1073+
# Copied from transformers.models.idefics2.modeling_idefics2.Idefics2ForConditionalGeneration.disable_input_require_grads
1074+
def disable_input_require_grads(self):
1075+
self._text_require_grads_hook.remove()
1076+
self._vision_require_grads_hook.remove()
1077+
10681078
# Copied from transformers.models.idefics2.modeling_idefics2.Idefics2ForConditionalGeneration.get_input_embeddings
10691079
def get_input_embeddings(self):
10701080
return self.model.text_model.get_input_embeddings()

tests/models/idefics3/test_image_processing_idefics3.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,9 @@ def get_expected_values(self, image_inputs, batched=False):
103103

104104
def expected_output_image_shape(self, images):
105105
height, width = self.get_expected_values(images, batched=True)
106-
effective_nb_images = self.num_images * 5 if self.do_image_splitting else 1
106+
effective_nb_images = (
107+
self.num_images * 5 if self.do_image_splitting else 1
108+
) # 5 is a squared image divided into 4 + global image resized
107109
return effective_nb_images, self.num_channels, height, width
108110

109111
def prepare_image_inputs(

tests/models/idefics3/test_processing_idefics3.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def get_image_processor(self, **kwargs):
8181
def get_processor(self, **kwargs):
8282
return AutoProcessor.from_pretrained(self.tmpdirname, **kwargs)
8383

84-
def get_splitted_image_expected_tokens(self, processor, image_rows, image_cols):
84+
def get_split_image_expected_tokens(self, processor, image_rows, image_cols):
8585
text_split_images = []
8686
for n_h in range(image_rows):
8787
for n_w in range(image_cols):
@@ -185,8 +185,8 @@ def test_process_interleaved_images_prompts_image_splitting(self):
185185

186186
# fmt: off
187187
tokenized_sentence = processor.tokenizer(text_str, add_special_tokens=False)
188-
splitted_image1_tokens = self.get_splitted_image_expected_tokens(processor, 3, 4)
189-
expected_input_ids_1 = [[self.bos_token_id] + splitted_image1_tokens + tokenized_sentence["input_ids"]]
188+
split_image1_tokens = self.get_split_image_expected_tokens(processor, 3, 4)
189+
expected_input_ids_1 = [[self.bos_token_id] + split_image1_tokens + tokenized_sentence["input_ids"]]
190190
self.assertEqual(inputs["input_ids"], expected_input_ids_1)
191191
self.assertEqual(inputs["attention_mask"], [[1] * len(expected_input_ids_1[0])])
192192
self.assertEqual(np.array(inputs["pixel_values"]).shape, (1, 13, 3, 364, 364))
@@ -210,11 +210,11 @@ def test_process_interleaved_images_prompts_image_splitting(self):
210210
tokenized_sentence_1 = processor.tokenizer(text_str_1, add_special_tokens=False)
211211
tokenized_sentence_2 = processor.tokenizer(text_str_2, add_special_tokens=False)
212212

213-
splitted_image1_tokens = self.get_splitted_image_expected_tokens(processor, 3, 4)
214-
splitted_image2_tokens = self.get_splitted_image_expected_tokens(processor, 4, 4)
215-
splitted_image3_tokens = self.get_splitted_image_expected_tokens(processor, 3, 4)
216-
expected_input_ids_1 = [self.bos_token_id] + splitted_image1_tokens + tokenized_sentence_1["input_ids"]
217-
expected_input_ids_2 = [self.bos_token_id] + tokenized_sentence_2["input_ids"] + splitted_image2_tokens + splitted_image3_tokens
213+
split_image1_tokens = self.get_split_image_expected_tokens(processor, 3, 4)
214+
split_image2_tokens = self.get_split_image_expected_tokens(processor, 4, 4)
215+
split_image3_tokens = self.get_split_image_expected_tokens(processor, 3, 4)
216+
expected_input_ids_1 = [self.bos_token_id] + split_image1_tokens + tokenized_sentence_1["input_ids"]
217+
expected_input_ids_2 = [self.bos_token_id] + tokenized_sentence_2["input_ids"] + split_image2_tokens + split_image3_tokens
218218
# Pad the first input to match the second input
219219
pad_len = len(expected_input_ids_2) - len(expected_input_ids_1)
220220
padded_expected_input_ids_1 = [self.padding_token_id] * pad_len + expected_input_ids_1
@@ -240,12 +240,12 @@ def test_add_special_tokens_processor(self):
240240
# fmt: off
241241
inputs = processor(text=text, images=self.image1, add_special_tokens=False)
242242
tokenized_sentence = processor.tokenizer(text_str, add_special_tokens=False)
243-
splitted_image1_tokens = self.get_splitted_image_expected_tokens(processor, 3, 4)
244-
expected_input_ids = [tokenized_sentence["input_ids"] + splitted_image1_tokens]
243+
split_image1_tokens = self.get_split_image_expected_tokens(processor, 3, 4)
244+
expected_input_ids = [tokenized_sentence["input_ids"] + split_image1_tokens]
245245
self.assertEqual(inputs["input_ids"], expected_input_ids)
246246

247247
inputs = processor(text=text, images=self.image1)
248-
expected_input_ids = [[self.bos_token_id] + tokenized_sentence["input_ids"] + splitted_image1_tokens]
248+
expected_input_ids = [[self.bos_token_id] + tokenized_sentence["input_ids"] + split_image1_tokens]
249249
self.assertEqual(inputs["input_ids"], expected_input_ids)
250250
# fmt: on
251251

0 commit comments

Comments
 (0)