From 54cf2dc54f409236e0b2f6a8c16480251ed2fe7e Mon Sep 17 00:00:00 2001 From: guan <2427459641@qq.com> Date: Sun, 16 Nov 2025 22:21:53 +0800 Subject: [PATCH 1/3] Support .to(device) or Device Aware Handling for Segmentation Labels in EOMTImageProcessor #42205 1 --- src/transformers/models/eomt/modeling_eomt.py | 8 ++++++++ src/transformers/models/eomt/modular_eomt.py | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/transformers/models/eomt/modeling_eomt.py b/src/transformers/models/eomt/modeling_eomt.py index 8579e1b7a443..2b47a296d648 100644 --- a/src/transformers/models/eomt/modeling_eomt.py +++ b/src/transformers/models/eomt/modeling_eomt.py @@ -1104,6 +1104,14 @@ def forward( list of tuples indicating the image index and start and end positions of patches for semantic segmentation. """ + if mask_labels is not None: + target_device = pixel_values.device + mask_labels = [mask.to(target_device) for mask in mask_labels] + + if class_labels is not None: + target_device = pixel_values.device + class_labels = [label.to(target_device) for label in class_labels] + masks_queries_logits_per_layer, class_queries_logits_per_layer = (), () attention_mask = None diff --git a/src/transformers/models/eomt/modular_eomt.py b/src/transformers/models/eomt/modular_eomt.py index be66a7b7598d..5734a6c0e3f8 100644 --- a/src/transformers/models/eomt/modular_eomt.py +++ b/src/transformers/models/eomt/modular_eomt.py @@ -513,6 +513,14 @@ def forward( list of tuples indicating the image index and start and end positions of patches for semantic segmentation. """ + if mask_labels is not None: + target_device = pixel_values.device + mask_labels = [mask.to(target_device) for mask in mask_labels] + + if class_labels is not None: + target_device = pixel_values.device + class_labels = [label.to(target_device) for label in class_labels] + masks_queries_logits_per_layer, class_queries_logits_per_layer = (), () attention_mask = None From 875590106762d9f33fe53e053666ef5c43f1be91 Mon Sep 17 00:00:00 2001 From: guan <2427459641@qq.com> Date: Sun, 16 Nov 2025 22:52:07 +0800 Subject: [PATCH 2/3] support for mask2former maskformer oneformer --- .../models/mask2former/modeling_mask2former.py | 9 +++++++++ .../models/maskformer/modeling_maskformer.py | 7 +++++++ src/transformers/models/oneformer/modeling_oneformer.py | 7 +++++++ 3 files changed, 23 insertions(+) diff --git a/src/transformers/models/mask2former/modeling_mask2former.py b/src/transformers/models/mask2former/modeling_mask2former.py index 278f977320ed..748e87e9c320 100644 --- a/src/transformers/models/mask2former/modeling_mask2former.py +++ b/src/transformers/models/mask2former/modeling_mask2former.py @@ -2415,6 +2415,15 @@ def forward( torch.Size([338, 676]) ``` """ + + if mask_labels is not None: + target_device = pixel_values.device + mask_labels = [mask.to(target_device) for mask in mask_labels] + + if class_labels is not None: + target_device = pixel_values.device + class_labels = [label.to(target_device) for label in class_labels] + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions output_hidden_states = ( output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states diff --git a/src/transformers/models/maskformer/modeling_maskformer.py b/src/transformers/models/maskformer/modeling_maskformer.py index bc961d2eb0ec..bef28e20fb4c 100644 --- a/src/transformers/models/maskformer/modeling_maskformer.py +++ b/src/transformers/models/maskformer/modeling_maskformer.py @@ -1739,6 +1739,13 @@ def forward( [480, 640] ``` """ + if mask_labels is not None: + target_device = pixel_values.device + mask_labels = [mask.to(target_device) for mask in mask_labels] + + if class_labels is not None: + target_device = pixel_values.device + class_labels = [label.to(target_device) for label in class_labels] output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions output_hidden_states = ( diff --git a/src/transformers/models/oneformer/modeling_oneformer.py b/src/transformers/models/oneformer/modeling_oneformer.py index 929d21fa341a..3848aab772f5 100644 --- a/src/transformers/models/oneformer/modeling_oneformer.py +++ b/src/transformers/models/oneformer/modeling_oneformer.py @@ -3141,6 +3141,13 @@ def forward( '👉 Panoptic Predictions Shape: [512, 683]' ``` """ + if mask_labels is not None: + target_device = pixel_values.device + mask_labels = [mask.to(target_device) for mask in mask_labels] + + if class_labels is not None: + target_device = pixel_values.device + class_labels = [label.to(target_device) for label in class_labels] output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions output_hidden_states = ( From b91ad07a219d290463d0b0ecaeca8c5a52bfda58 Mon Sep 17 00:00:00 2001 From: guan <2427459641@qq.com> Date: Sun, 16 Nov 2025 23:04:08 +0800 Subject: [PATCH 3/3] delete extra line --- src/transformers/models/mask2former/modeling_mask2former.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transformers/models/mask2former/modeling_mask2former.py b/src/transformers/models/mask2former/modeling_mask2former.py index 748e87e9c320..8913d88a9010 100644 --- a/src/transformers/models/mask2former/modeling_mask2former.py +++ b/src/transformers/models/mask2former/modeling_mask2former.py @@ -2423,7 +2423,7 @@ def forward( if class_labels is not None: target_device = pixel_values.device class_labels = [label.to(target_device) for label in class_labels] - + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions output_hidden_states = ( output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states