Transformers documentation
EoMT
نُشر هذا النموذج في أوراق HF في 24 مارس 2025، وأُضيف إلى مكتبة Hugging Face Transformers في 27 يونيو 2025.
EoMT
نظرة عامة
طُرِح نموذج The Encoder-only Mask Transformer (EoMT) في ورقة CVPR 2025 المميزة Your ViT is Secretly an Image Segmentation Model التي كتبها Tommie Kerssies وNiccolò Cavagnero وAlexander Hermans وNarges Norouzi وGiuseppe Averta وBastian Leibe وGijs Dubbelman وDaan de Geus. يكشف EoMT أن محولات الرؤية (Vision Transformers) قادرة على تنفيذ تقسيم الصور بكفاءة دون الحاجة إلى مكوّنات مخصصة للمهمة.
المستخلص من الورقة البحثية هو كالتالي:
أظهرت محولات الرؤية (ViTs) أداءً ملحوظًا وقابلية توسع عبر مهام الرؤية الحاسوبية المختلفة. ولتطبيق محولات الرؤية أحادية المقياس على تجزئة الصور، تعتمد الأساليب الحالية على محوّل تجميعي لتوليد ميزات متعددة المقاييس، ومفكك بكسل لدمج هذه الميزات، ومفكك محوّل يستخدم الميزات المدمجة لإجراء التنبؤات. في هذه الورقة، نوضح أن الانحيازات الاستقرائية التي تُدخلها هذه المكونات الخاصة بالمهمة يمكن أن يتعلمها محوّل الرؤية نفسه، شريطة توفر نماذج كبيرة الحجم وتدريب مسبق مكثف. بناءً على هذه النتائج، نطرح محوّل الأقنعة المعتمد على المُشفِّر فقط (EoMT)، الذي يعيد توظيف بنية محوّل الرؤية البسيطة لإجراء تجزئة الصور. وبفضل النماذج واسعة النطاق والتدريب المسبق، يحقق EoMT دقة تجزئة مماثلة لأحدث النماذج التي تستخدم مكونات خاصة بالمهمة. وفي الوقت نفسه، يكون EoMT أسرع بكثير من هذه الأساليب بسبب بساطته المعمارية، على سبيل المثال، أسرع حتى 4 أضعاف مع ViT-L. عبر مجموعة من أحجام النماذج، يُظهر EoMT توازنًا مثاليًا بين دقة التجزئة وسرعة التنبؤ، مما يشير إلى أن موارد الحوسبة يُستحسن إنفاقها على توسيع محوّل الرؤية نفسه بدلاً من إضافة تعقيد معماري.
تمت مساهمة هذا النموذج من قِبل Yaswanth Gali. يمكن العثور على الكود الأصلي هنا.
معلومات البنية
يستخدم نموذج EoMT محوّلة رؤية (Vision Transformer) مُسبقة التدريب عبر DINOv2 مع رموز تسجيل كهيكل أساسي. يبسّط EoMT خط أنابيب التقطيع بالاعتماد حصرياً على المُشفّر، مما يلغي الحاجة إلى المُفكّكات الخاصة بالمهام التي كانت تُستخدم عادةً في الأساليب السابقة.
من حيث البنية، يُقدّم EoMT مجموعة صغيرة من الاستعلامات المتعلّمة ووحدة تنبؤ الأقنعة خفيفة الوزن. تُحقن هذه الاستعلامات في كتل المُشفِّر النهائية، مما يتيح انتباهًا مشتركًا بين رقاقات الصورة واستعلامات الكائنات. أثناء التدريب، يُطبَّق انتباه مُقنَّع لتقييد كل استعلام بالتركيز على المنطقة المقابلة له، مما يحاكي الانتباه المتقاطع بفعالية. يتم التخلّي تدريجيًا عن هذا التقييد عبر استراتيجية تبريد الأقنعة، مما يسمح بـاستدلال فعّال دون مُفكِّك دون المساس بأداء التقطيع.

يدعم النموذج التقطيع الدلالي والتقطيع على مستوى الكائنات والتقطيع الشامل باستخدام بنية موحدة ومعالجة لاحقة مخصصة لكل مهمة.
أمثلة على الاستخدام
استخدم تطبيق Hugging Face الخاص بـ EoMT للاستدلال باستخدام النماذج المُدرَّبة مسبقًا.
التجزئة الدلالية
يُنفّذ نموذج EoMT التقسيم الدلالي باستخدام الاستدلال عبر نافذة منزلقة. يتم تغيير حجم الصورة المدخلة بحيث يتطابق الجانب الأقصر مع حجم الإدخال المستهدف، ثم تُقسَّم إلى محاصيل متداخلة. بعد ذلك، يُمرَّر كل محصول عبر النموذج. وبعد الاستدلال، تُعاد تجميع اللوجيتات المتوقعة من كل محصول معًا، ثم يُعاد تحجيمها إلى حجم الصورة الأصلي للحصول على قناع التقسيم النهائي.
ملاحظة:
إذا كنت ترغب في استخدام حجم هدف مخصص لـ التجزئة الدلالية، فحدد ذلك بالتنسيق التالي:
{"shortest_edge": 512}
لاحظ أنlongest_edgeغير مُقدَّم هنا — وهذا متعمد. ففي التجزئة الدلالية، يتم عادةً تحجيم الصور بحيث يكون الحافة الأقصر أكبر من أو يساوي حجم الهدف، وبالتالي لا حاجة إلى longest_edge.
import matplotlib.pyplot as plt
import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, EomtForUniversalSegmentation
model_id = "tue-mps/ade20k_semantic_eomt_large_512"
processor = AutoImageProcessor.from_pretrained(model_id)
model = EomtForUniversalSegmentation.from_pretrained(model_id, device_map="auto")
image = Image.open(requests.get("http://images.cocodataset.org/val2017/000000039769.jpg", stream=True).raw)
inputs = processor(
images=image,
return_tensors="pt",
)
with torch.inference_mode():
outputs = model(**inputs)
# Prepare the original image size in the format (height, width)
target_sizes = [(image.height, image.width)]
# Post-process the model outputs to get final segmentation prediction
preds = processor.post_process_semantic_segmentation(
outputs,
target_sizes=target_sizes,
)
# Visualize the segmentation mask
plt.imshow(preds[0])
plt.axis("off")
plt.title("Semantic Segmentation")
plt.show()تجزئة الكائن
ينفّذ نموذج EoMT تجزئة الكائنات باستخدام الاستدلال المحشو. يتم تغيير حجم الصورة المدخلة بحيث يطابق الجانب الأطول حجم الإدخال المستهدف، بينما يُحشى الجانب الأقصر بالأصفار لتكوين مربع. ثم تُدمج الأقنعة الناتجة وقيم التصنيف (logits) من خلال المعالجة اللاحقة (المستقاة من Mask2Former) لإنتاج خريطة تجزئة موحّدة للكائنات، إلى جانب بيانات وصفية للأجزاء مثل معرّف الجزء، وتسميات الفئات، ودرجات الثقة.
ملاحظة:
لاستخدام حجم هدف مخصص، حدد الحجم على شكل قاموس (dictionary) بالصيغة التالية:
{"shortest_edge": 512, "longest_edge": 512}
في كل من تجزئة الكائنات (instance segmentation) وتجزئة البانوبتك (panoptic segmentation)، سيتم تحجيم الصور المدخلة وإضافة حشوة (padding) إليها للوصول إلى هذا الحجم الهدف.
import matplotlib.pyplot as plt
import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, EomtForUniversalSegmentation
model_id = "tue-mps/coco_instance_eomt_large_640"
processor = AutoImageProcessor.from_pretrained(model_id)
model = EomtForUniversalSegmentation.from_pretrained(model_id, device_map="auto")
image = Image.open(requests.get("http://images.cocodataset.org/val2017/000000039769.jpg", stream=True).raw)
inputs = processor(
images=image,
return_tensors="pt",
)
with torch.inference_mode():
outputs = model(**inputs)
# Prepare the original image size in the format (height, width)
target_sizes = [(image.height, image.width)]
# Post-process the model outputs to get final segmentation prediction
preds = processor.post_process_instance_segmentation(
outputs,
target_sizes=target_sizes,
)
# Visualize the segmentation mask
plt.imshow(preds[0]["segmentation"])
plt.axis("off")
plt.title("Instance Segmentation")
plt.show()التجزئة البانورامية
يُنفّذ نموذج EoMT التقطيع البانورامي باستخدام نفس استراتيجية الاستدلال المُحشوة كما في تقطيع الكيانات. بعد الحشو والتطبيع، يتنبأ النموذج بكلٍّ من فئات الأشياء (الكيانات) وفئات المواد (المناطق غير المنتظمة). يتم دمج الأقنعة الناتجة وقيم الاحتمالات (logits) للفئات عبر المعالجة اللاحقة (المُعدَّلة من Mask2Former) لإنتاج خريطة تقطيع بانورامي موحّدة، إلى جانب بيانات وصفية للأجزاء مثل معرّف الجزء، وتسميات الفئات، ودرجات الثقة.
import matplotlib.pyplot as plt
import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, EomtForUniversalSegmentation
model_id = "tue-mps/coco_panoptic_eomt_large_640"
processor = AutoImageProcessor.from_pretrained(model_id)
model = EomtForUniversalSegmentation.from_pretrained(model_id, device_map="auto")
image = Image.open(requests.get("http://images.cocodataset.org/val2017/000000039769.jpg", stream=True).raw)
inputs = processor(
images=image,
return_tensors="pt",
)
with torch.inference_mode():
outputs = model(**inputs)
# Prepare the original image size in the format (height, width)
target_sizes = [(image.height, image.width)]
# Post-process the model outputs to get final segmentation prediction
preds = processor.post_process_panoptic_segmentation(
outputs,
target_sizes=target_sizes,
)
# Visualize the panoptic segmentation mask
plt.imshow(preds[0]["segmentation"])
plt.axis("off")
plt.title("Panoptic Segmentation")
plt.show()EomtImageProcessor
فئة transformers.EomtImageProcessor
< source >( **kwargs: *<class 'transformers.models.eomt.image_processing_eomt.EomtImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'shortest_edge' -- 640, 'longest_edge': 640}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إضافة حشوة (padding) إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة (batch) أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_split_image (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_split_image) — ما إذا كان يجب تقسيم الصور المدخلة إلى رقعات متداخلة للتجزئة الدلالية. إذا تم ضبطه علىTrue، فسيتم تقسيم الصور المدخلة إلى رقعات بحجمsize["shortest_edge"]مع وجود تداخل بين الرقعات. وإلا، فسيتم ملء الصور المدخلة حتى الحجم المستهدف. - ignore_index (
int، kwargs، اختياري، القيمة الافتراضية هيself.ignore_index) — التسمية التي تُسند إلى بكسلات الخلفية في خرائط التقطيع. إذا تم تقديمه، فسيتم استبدال بكسلات خريطة التقطيع المُشار إليها بـ 0 (الخلفية) بـignore_index.
ينشئ معالج صور EomtImageProcessor.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: list[torch.Tensor] | None = Noneinstance_id_to_semantic_id: dict[int, int] | None = None**kwargs: *<class 'transformers.models.eomt.image_processing_eomt.EomtImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - segmentation_maps (
ImageInput، اختياري) — خرائط التقسيم التي يجب معالجتها مسبقًا للصور المقابلة. - instance_id_to_semantic_id (
list[dict[int, int]]أوdict[int, int]، اختياري) — تعيين بين معرّفات أمثلة الكائنات ومعرّفات الفئات. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_split_image (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_split_image) — ما إذا كان يجب تقسيم الصور المدخلة إلى رقعات متداخلة للتجزئة الدلالية. إذا تم ضبطه علىTrue، فسيتم تقسيم الصور المدخلة إلى رقعات بحجمsize["shortest_edge"]مع وجود تداخل بين الرقعات. وإلا، فسيتم ملء الصور المدخلة حتى الحجم المستهدف. - ignore_index (
int، kwargs، اختياري، القيمة الافتراضية هيself.ignore_index) — التسمية التي تُسند إلى بكسلات الخلفية في خرائط التقطيع. إذا تم تقديمه، فسيتم استبدال بكسلات خريطة التقطيع المُشار إليها بـ 0 (الخلفية) بـignore_index.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
post_process_semantic_segmentation
< source >( outputstarget_sizes: listsize: dict[str, int] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
المعاملات
- outputs (EomtForUniversalSegmentation) — المخرجات الخام للنموذج.
- target_sizes (
list[tuple[int, int]]) — قائمة من السلاسل (tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. - size (
dict[str, int]، اختياري) — الحجم الذي تُستوفى إليه الأقنعة الوسيطة. القيمة الافتراضية هيself.size. - return_segmentation_scores (
bool, اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيينTrue، يكون كل عنصر من القائمة المُرجعة من نوعSemanticSegmentationPostProcessorOutputويحتوي على الحقولsegmentation(معرّفات الفئات، الشكل(height, width)) وsegmentation_scores(الشكل(num_classes, height, width)).
يعيد
list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]
عندما يكون return_segmentation_scores=False (الافتراضي)، تكون النتيجة قائمة بطول batch_size حيث يكون كل عنصر منها خريطة تجزئة (segmentation map) بأبعاد (height, width) تحتوي على معرّفات الفئات. أما عندما يكون return_segmentation_scores=True، فتكون النتيجة قائمة من SemanticSegmentationPostProcessorOutput تحتوي على الحقول segmentation (معرّفات الفئات، بأبعاد (height, width)) وsegmentation_scores (بأبعاد (num_classes, height, width)). في الحالتين، يمثل (height, width) الحجم المستهدف.
يحوّل مخرجات EomtForUniversalSegmentation إلى خرائط تجزئة دلالية.
post_process_instance_segmentation
< source >( outputstarget_sizes: listthreshold: float = 0.8size: dict[str, int] | None = None )
يعالج مخرجات النموذج بعد المعالجة لتحويلها إلى تنبؤات تقطيع الكائنات.
post_process_panoptic_segmentation
< source >( outputstarget_sizes: listthreshold: float = 0.8mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8stuff_classes: list[int] | None = Nonesize: dict[str, int] | None = None )
يعالج مخرجات النموذج بعد المعالجة لتحويلها إلى تنبؤ نهائي للتجزئة البانوبتية.
EomtImageProcessorPil
فئة transformers.EomtImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.eomt.image_processing_pil_eomt.EomtImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'shortest_edge' -- 640, 'longest_edge': 640}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إضافة حشوة (padding) إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة (batch) أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_split_image (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_split_image) — ما إذا كان يجب تقسيم الصور المدخلة إلى رقعات متداخلة للتجزئة الدلالية. إذا تم ضبطه علىTrue، فسيتم تقسيم الصور المدخلة إلى رقعات بحجمsize["shortest_edge"]مع وجود تداخل بين الرقعات. وإلا، فسيتم ملء الصور المدخلة حتى الحجم المستهدف. - ignore_index (
int، kwargs، اختياري، القيمة الافتراضية هيself.ignore_index) — التسمية التي تُسند إلى بكسلات الخلفية في خرائط التقطيع. إذا تم تقديمه، فسيتم استبدال بكسلات خريطة التقطيع المُشار إليها بـ 0 (الخلفية) بـignore_index.
ينشئ معالج صور EomtImageProcessor.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: list[torch.Tensor] | None = Noneinstance_id_to_semantic_id: dict[int, int] | None = None**kwargs: *<class 'transformers.models.eomt.image_processing_pil_eomt.EomtImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - segmentation_maps (
ImageInput، اختياري) — خرائط التقسيم التي يجب معالجتها مسبقًا للصور المقابلة. - instance_id_to_semantic_id (
list[dict[int, int]]أوdict[int, int]، اختياري) — تعيين بين معرّفات أمثلة الكائنات ومعرّفات الفئات. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_split_image (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_split_image) — ما إذا كان يجب تقسيم الصور المدخلة إلى رقعات متداخلة للتجزئة الدلالية. إذا تم ضبطه علىTrue، فسيتم تقسيم الصور المدخلة إلى رقعات بحجمsize["shortest_edge"]مع وجود تداخل بين الرقعات. وإلا، فسيتم ملء الصور المدخلة حتى الحجم المستهدف. - ignore_index (
int، kwargs، اختياري، القيمة الافتراضية هيself.ignore_index) — التسمية التي تُسند إلى بكسلات الخلفية في خرائط التقطيع. إذا تم تقديمه، فسيتم استبدال بكسلات خريطة التقطيع المُشار إليها بـ 0 (الخلفية) بـignore_index.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
post_process_semantic_segmentation
< source >( outputstarget_sizes: listsize: dict[str, int] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
المعاملات
- outputs (EomtForUniversalSegmentation) — المخرجات الخام للنموذج.
- target_sizes (
list[tuple[int, int]]) — قائمة من السلاسل (tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. - size (
dict[str, int]، اختياري) — الحجم الذي تُستوفى إليه الأقنعة الوسيطة. القيمة الافتراضية هيself.size. - return_segmentation_scores (
bool, اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيينTrue، يكون كل عنصر من القائمة المُرجعة من نوعSemanticSegmentationPostProcessorOutputويحتوي على الحقولsegmentation(معرّفات الفئات، الشكل(height, width)) وsegmentation_scores(الشكل(num_classes, height, width)).
يعيد
list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]
عندما يكون return_segmentation_scores=False (الافتراضي)، تكون النتيجة قائمة بطول batch_size حيث يكون كل عنصر منها خريطة تجزئة (segmentation map) بأبعاد (height, width) تحتوي على معرّفات الفئات. أما عندما يكون return_segmentation_scores=True، فتكون النتيجة قائمة من SemanticSegmentationPostProcessorOutput تحتوي على الحقول segmentation (معرّفات الفئات، بأبعاد (height, width)) وsegmentation_scores (بأبعاد (num_classes, height, width)). في الحالتين، يمثل (height, width) الحجم المستهدف.
يحوّل مخرجات EomtForUniversalSegmentation إلى خرائط تجزئة دلالية.
post_process_instance_segmentation
< source >( outputstarget_sizes: listthreshold: float = 0.8size: dict[str, int] | None = None )
يعالج مخرجات النموذج بعد المعالجة لتحويلها إلى تنبؤات تقطيع الكائنات.
post_process_panoptic_segmentation
< source >( outputstarget_sizes: listthreshold: float = 0.8mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8stuff_classes: list[int] | None = Nonesize: dict[str, int] | None = None )
يعالج مخرجات النموذج بعد المعالجة لتحويلها إلى تنبؤ نهائي للتجزئة البانوبتية.
EomtConfig
فئة transformers.EomtConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 16hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, int] = 640patch_size: int | list[int] | tuple[int, int] = 16num_channels: int = 3mlp_ratio: int = 4layerscale_value: float = 1.0drop_path_rate: float | int = 0.0num_upscale_blocks: int = 2attention_dropout: float | int = 0.0use_swiglu_ffn: bool = Falsenum_blocks: int = 4no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75num_queries: int = 200num_register_tokens: int = 4 )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية24) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وما إلى ذلك. - hidden_dropout_prob (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — احتمالية الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - image_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية640) — حجم (دقة) كل صورة. - patch_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - num_channels (
int، اختياري، القيمة الافتراضية3) — عدد قنوات الإدخال. - mlp_ratio (
int، اختياري، القيمة الافتراضية4) — نسبة بُعد مخفي MLP إلى بُعد التضمين. - layerscale_value (
float، اختياري، القيمة الافتراضية 1.0) — القيمة الأولية لمعامل LayerScale. - drop_path_rate (
Union[float, int], اختياري، القيمة الافتراضية0.0) — معدل إسقاط المسار (Drop path) لدمج البقع (patch fusion). - num_upscale_blocks (
int، اختياري، القيمة الافتراضية 2) — عدد كتل رفع الدقة المستخدمة في فك الترميز أو رأس التقطيع. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - use_swiglu_ffn (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام شبكة العصبونات الأمامية SwiGLU. - num_blocks (
int، اختياري، القيمة الافتراضية 4) — عدد كتل الميزات أو المراحل في البنية. - no_object_weight (
float، اختياري، القيمة الافتراضية 0.1) — وزن الدالة الخاسرة لفئة "لا يوجد كائن" في التقطيع البانورامي/المشهدي. - class_weight (
float، اختياري، القيمة الافتراضية 2.0) — وزن الدالة الخاسرة لأهداف التصنيف. - mask_weight (
float، اختياري، القيمة الافتراضية 5.0) — وزن الدالة الخاسرة للتنبؤ بالقناع. - dice_weight (
float، اختياري، القيمة الافتراضية5.0) — الوزن النسبي لخسارة الداي (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation). - train_num_points (
int، اختياري، القيمة الافتراضية 12544) — عدد النقاط التي يتم أخذ عينات منها لحساب خسارة القناع (mask loss) أثناء التدريب. - oversample_ratio (
float، اختياري، القيمة الافتراضية 3.0) — نسبة الإفراط في العينة المستخدمة في أخذ العينات من النقاط لتدريب الأقنعة. - importance_sample_ratio (
float، اختياري، القيمة الافتراضية 0.75) — نسبة النقاط التي يتم أخذ عينة منها بناءً على الأهمية أثناء التدريب. - num_queries (
int، اختياري، القيمة الافتراضية 200) — عدد استعلامات الكائنات في Transformer. - num_register_tokens (
int، اختياري، القيمة الافتراضية 4) — عدد رموز التسجيل القابلة للتعلّم المضافة إلى مدخلات المحوّل.
هذه فئة الإعدادات المخزنة لإعدادات نموذج EomtModel. تُستخدم لاستحداث نموذج Eomt وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ tue-mps/coco_panoptic_eomt_large_640
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
EomtForUniversalSegmentation
فئة transformers.EomtForUniversalSegmentation
< source >( config: EomtConfig )
المعاملات
- config (EomtConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج EoMT مع رأس في الأعلى للتجزئة على مستوى المثال/الدلالي/الشامل.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepatch_offsets: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → EomtForUniversalSegmentationOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام EomtImageProcessor. راجع EomtImageProcessor.call() للتفاصيل (يستخدمprocessor_classEomtImageProcessor لمعالجة الصور). - mask_labels (
list[torch.Tensor]، اختياري) — قائمة بتسميات الأقنعة ذات الشكل(num_labels, height, width)لتغذية النموذج - class_labels (
list[torch.LongTensor], اختياري) — قائمة بتسميات الفئات المستهدفة ذات الأبعاد(num_labels, height, width)لتغذية النموذج. تحدد هذه القائمة تسمياتmask_labels، على سبيل المثال تسميةmask_labels[i][j]إذا كانتclass_labels[i][j]. - patch_offsets (
list[torch.Tensor]، اختياري) — قائمة من السلاسل (tuples) تشير إلى فهرس الصورة والمواضع الابتدائية والنهائية للرقع (patches) الخاصة بالتجزئة الدلالية (semantic segmentation).
يعيد
EomtForUniversalSegmentationOutput أو tuple(torch.Tensor)
EomtForUniversalSegmentationOutput أو مجموعة (tuple) من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر
مختلفة اعتمادًا على الإعداد (EomtConfig) والمدخلات.
تُعيد طريقة EomtForUniversalSegmentation الأمامية تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- loss (
torch.Tensor، اختياري) — الخسارة المحسوبة، تُعاد عند وجود التسميات. - class_queries_logits (
torch.Tensor، اختياري) — متجه (Tensor) على شكل(batch_size, num_queries, num_labels + 1)يمثل الفئات المقترحة لكل استعلام. لاحظ أن+ 1ضروري لأننا ندمج فئة فارغة (null class). - masks_queries_logits (
torch.Tensor، اختياري) — متجه ذو شكل(batch_size, num_queries, height, width)يمثل الأقنعة المقترحة لكل استعلام. - last_hidden_state (
torch.Tensorمن الشكل(batch_size, num_channels, height, width)) — حالات المخفية الأخيرة (خريطة الميزات النهائية) للطبقة الأخيرة. - hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات مخفية لجميع طبقات النموذج. - attentions (
tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtuple(torch.Tensor)(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder). - patch_offsets (
list[torch.Tensor]، اختياري) — قائمة من السلاسل (tuples) تشير إلى فهرس الصورة والمواضع الابتدائية والنهائية للرقع (patches) الخاصة بالتجزئة الدلالية (semantic segmentation).