Transformers documentation

DETR الشرطي

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 13 أغسطس 2021، وأُضيف إلى مكتبة Hugging Face Transformers في 22 سبتمبر 2022.

DETR الشرطي

نظرة عامة

قُدِّم نموذج Conditional DETR في Conditional DETR for Fast Training Convergence من قِبل Depu Meng وXiaokang Chen وZejia Fan وGang Zeng وHouqiang Li وYuhui Yuan وLei Sun وJingdong Wang. يقدّم Conditional DETR آلية انتباه متقاطع مشروطة لتدريب DETR بسرعة. يتقارب Conditional DETR أسرع من DETR بمقدار 6.7× إلى 10×.

المستخلص من الورقة البحثية هو كالتالي:

تطبّق نهج DETR الذي طُوّر مؤخراً معمارية مُشفِّر ومُفكِّك الترانسفورمر على كشف الكائنات، وتحقق أداءً واعدًا. في هذه الورقة، نتعامل مع المشكلة الحرجة المتمثلة في بطء تقارب التدريب، ونقدّم آلية انتباه متقاطع مشروط لتدريب DETR بسرعة. يستند نهجنا إلى حقيقة أن الانتباه المتقاطع في DETR يعتمد بشدة على تمثيلات المحتوى لتحديد الأطراف الأربعة وتنبؤ الصندوق، مما يزيد من الحاجة إلى تمثيلات محتوى عالية الجودة وبالتالي يرفع صعوبة التدريب. يتعلم نهجنا، المسمى بـ conditional DETR، استعلامًا مكانيًا مشروطًا من تمثيل المُفكِّك للانتباه المتقاطع متعدد الرؤوس في المُفكِّك. الفائدة هي أنه من خلال الاستعلام المكاني المشروط، يصبح كل رأس من رؤوس الانتباه المتقاطع قادرًا على الانتباه إلى نطاق يحتوي على منطقة مميزة، مثل طرف واحد من الكائن أو منطقة داخل صندوق الكائن. هذا يضيق النطاق المكاني لتحديد المناطق المميزة لتصنيف الكائنات وتنظيم الصندوق، مما يخفف الاعتماد على تمثيلات المحتوى ويسهّل التدريب. تُظهر النتائج التجريبية أن conditional DETR يتقارب أسرع بنسبة 6.7× للهياكل العظمية R50 وR101، وأسرع بنسبة 10× للهياكل العظمية الأقوى DC5-R50 وDC5-R101. الكود متاح في https://github.com/Atten4Vis/ConditionalDETR.

drawing Conditional DETR shows much faster convergence compared to the original DETR. Taken from the original paper.

تمت مساهمة هذا النموذج من قِبل DepuMeng. يمكن العثور على الكود الأصلي هنا.

الموارد

ConditionalDetrConfig

فئة transformers.ConditionalDetrConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 300encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 2bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1cls_loss_coefficient: int = 2bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2focal_alpha: float = 0.25 )

المعاملات

  • is_encoder_decoder (bool، اختياري، القيمة الافتراضية True) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.
  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — إعدادات نموذج الهيكل العظمي.
  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال.
  • num_queries (int، اختياري، القيمة الافتراضية 300) — عدد استعلامات الكائنات، أي فتحات الكشف. هذا هو الحد الأقصى لعدد الكائنات التي يمكن لنموذج ConditionalDetrModel اكتشافها في صورة واحدة. بالنسبة إلى COCO، نوصي باستخدام 100 استعلام.
  • encoder_layers (int, اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم القيمة نفسها لـ num_layers إذا لم يتم ضبطه.
  • encoder_ffn_dim (int، اختياري، القيمة الافتراضية 2048) — أبعاد طبقة "الوسط" (التي تُسمّى غالبًا بطبقة التغذية الأمامية) في المُشفِّر.
  • encoder_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer.
  • decoder_layers (int, اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُفكِّك Transformer. سيُستخدم نفس قيمة num_layers إذا لم يتم تعيينه.
  • decoder_ffn_dim (int، اختياري، القيمة الافتراضية 2048) — أبعاد طبقة "الوسط" (التي تُسمّى غالباً بطبقة التغذية الأمامية) في المُفكِّك.
  • decoder_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • encoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — احتمال LayerDrop للمُشفِّر. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • decoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — احتمال LayerDrop الخاص بفك الترميز. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • activation_function (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • d_model (int، اختياري، القيمة الافتراضية 256) — حجم طبقات المُشفِّر وطبقة المُجمِّع.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • init_std (float، اختياري، القيمة الافتراضية 0.02) — انحراف معياري لمُهيّئ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • init_xavier_std (float، اختياري، القيمة الافتراضية 1.0) — عامل التدرّج المستخدم في تهيئة Xavier لأوزان الانتباه المتقاطع.
  • auxiliary_loss (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام خسائر فك الترميز المساعدة (الخسارة في كل طبقة من طبقات فك الترميز).
  • position_embedding_type (str، اختياري، القيمة الافتراضية "sine") — نوع تضمينات الموضع المستخدمة فوق ميزات الصورة. إما "sine" أو "learned".
  • dilation (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب استبدال الخطوة (stride) بالتوسيع (dilation) في كتلة الالتفاف الأخيرة (DC5). يُدعم هذا الخيار فقط عندما يكون use_timm_backbone = True.
  • class_cost (int، اختياري، القيمة الافتراضية 2) — الوزن النسبي لخطأ التصنيف في تكلفة المطابقة الهنغارية.
  • bbox_cost (int، اختياري، القيمة الافتراضية 5) — الوزن النسبي لخطأ صندوق الحدود L1 في تكلفة المطابقة الهنغارية.
  • giou_cost (int، اختياري، القيمة الافتراضية 2) — الوزن النسبي لخسارة IoU المعممة في تكلفة المطابقة الهنغارية.
  • mask_loss_coefficient (int, اختياري، القيمة الافتراضية 1) — الوزن النسبي لخسارة التركيز (focal loss) في خسارة التقطيع البانورامي (panoptic segmentation).
  • dice_loss_coefficient (int, اختياري، القيمة الافتراضية 1) — الوزن النسبي لخسارة دايس (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation).
  • cls_loss_coefficient (int, اختياري، القيمة الافتراضية 2) — الوزن النسبي لخسارة التصنيف في خسارة التقطيع البانورامي.
  • bbox_loss_coefficient (int، اختياري، القيمة الافتراضية 5) — الوزن النسبي لخسارة صندوق الحدود L1 في خسارة التقطيع البانورامي.
  • giou_loss_coefficient (int, اختياري، القيمة الافتراضية 2) — الوزن النسبي لخسارة IoU المعممة في خسارة التقطيع البانورامي.
  • focal_alpha (float، اختياري، القيمة الافتراضية 0.25) — معامل ألفا في دالة الخسارة البؤرية.

هذه فئة الإعدادات المخزنة لإعدادات نموذج ConditionalDetrModel. تُستخدم لاستحداث نموذج Conditional Detr وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ microsoft/conditional-detr-resnet-50

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

أمثلة:

>>> from transformers import ConditionalDetrConfig, ConditionalDetrModel

>>> # Initializing a Conditional DETR microsoft/conditional-detr-resnet-50 style configuration
>>> configuration = ConditionalDetrConfig()

>>> # Initializing a model (with random weights) from the microsoft/conditional-detr-resnet-50 style configuration
>>> model = ConditionalDetrModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ConditionalDetrImageProcessor

فئة transformers.ConditionalDetrImageProcessor

< >

( **kwargs: *<class 'transformers.models.conditional_detr.image_processing_conditional_detr.ConditionalDetrImageProcessorKwargs'> )

المعاملات

  • 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' -- 800, 'longest_edge': 1333}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • 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، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج CONDITIONAL_DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

ينشئ معالج صور ConditionalDetrImageProcessor.

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.conditional_detr.image_processing_conditional_detr.ConditionalDetrImageProcessorKwargs'> ) → ~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.
  • annotations (AnnotationType أو list[AnnotationType]، اختياري) — التعليقات التي سيتم تحويلها وفقاً للتوسيط المطبّق على الصور.
  • return_segmentation_masks (bool، اختياري، القيمة الافتراضية self.return_segmentation_masks) — ما إذا كان يجب إرجاع أقنعة التقطيع.
  • masks_path (str أو pathlib.Path، اختياري) — المسار إلى المجلد الذي يحتوي على أقنعة التقسيم.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج CONDITIONAL_DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

ConditionalDetrImageProcessorPil

فئة transformers.ConditionalDetrImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.conditional_detr.image_processing_pil_conditional_detr.ConditionalDetrImageProcessorKwargs'> )

المعاملات

  • 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' -- 800, 'longest_edge': 1333}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • 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، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج CONDITIONAL_DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

ينشئ معالج صور ConditionalDetrImageProcessor.

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.conditional_detr.image_processing_pil_conditional_detr.ConditionalDetrImageProcessorKwargs'> ) → ~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.
  • annotations (AnnotationType أو list[AnnotationType]، اختياري) — التعليقات التي سيتم تحويلها وفقاً للتوسيط المطبّق على الصور.
  • return_segmentation_masks (bool، اختياري، القيمة الافتراضية self.return_segmentation_masks) — ما إذا كان يجب إرجاع أقنعة التقطيع.
  • masks_path (str أو pathlib.Path، اختياري) — المسار إلى المجلد الذي يحتوي على أقنعة التقسيم.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج CONDITIONAL_DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

post_process_object_detection

< >

( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] = Nonetop_k: int = 100 ) → list[Dict]

المعاملات

  • outputs (ConditionalDetrObjectDetectionOutput) — المخرجات الخام للنموذج.
  • threshold (float، اختياري) — حدّ الدرجة للاحتفاظ بتنبؤات كشف الكائنات.
  • target_sizes (torch.Tensor أو list[tuple[int, int]]، اختياري) — مصفوفة (Tensor) بأبعاد (batch_size, 2) أو قائمة من الأزواج (tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.
  • top_k (int، اختياري، القيمة الافتراضية 100) — احتفظ فقط بأفضل k صندوق حدود قبل التصفية عن طريق العتبة.

يعيد

list[Dict]

قائمة من القواميس، حيث يحتوي كل قاموس على الدرجات والتسميات والصنادعات الخاصة بصورة في الدفعة كما تتنبأ بها النموذج.

يحوّل المخرجات الخام لـ ConditionalDetrForObjectDetection إلى صناديق حدود نهائية بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y). يدعم PyTorch فقط.

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → list[Dict]

المعاملات

  • outputs (ConditionalDetrForSegmentation) — المخرجات الخام للنموذج.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي.
  • target_sizes (list[Tuple]، اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.
  • return_coco_annotation (bool، اختياري) — القيمة الافتراضية هي False. إذا تم ضبطها على True، تُعاد خرائط التقسيم بصيغة ترميز الطول COCO (RLE).

يعيد

list[Dict]

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:

  • segmentation — متجه (Tensor) بأبعاد (height, width) حيث يمثل كل بكسل segment_id أو list[List] ترميز طول التتابع (RLE) لخريطة التقسيم إذا تم ضبط return_coco_annotation على True. يُضبط على None إذا لم يتم العثور على قناع فوق threshold.
  • segments_info — قاموس يحتوي على معلومات إضافية حول كل مقطع.
    • id — عدد صحيح يمثل segment_id.
    • label_id — عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ segment_id.
    • score — درجة التنبؤ للمقطع ذي segment_id.

يحوّل مخرجات ConditionalDetrForSegmentation إلى تنبؤات تجزئة كائنات. يدعم PyTorch فقط.

post_process_semantic_segmentation

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

المعاملات

  • outputs (ConditionalDetrForSegmentation) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]], اختياري) — قائمة من السلاسل (tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.
  • 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) الحجم المستهدف (إذا تم تحديد target_sizes).

يحوّل مخرجات ConditionalDetrForSegmentation إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]

المعاملات

  • outputs (ConditionalDetrForSegmentation) — المخرجات من ConditionalDetrForSegmentation.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي.
  • label_ids_to_fuse (Set[int]، اختياري) — ستتم دمج جميع الأمثلة الخاصة بالتسميات في هذه الحالة معًا. على سبيل المثال، يمكن القول إنه لا يمكن أن يوجد سوى سماء واحدة في صورة، بينما يمكن أن يوجد عدة أشخاص، لذا فإن معرّف التسمية الخاص بالسماء سيكون ضمن ذلك المجموع، بينما لن يكون معرّف التسمية الخاص بالشخص كذلك.
  • target_sizes (list[Tuple], اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

يعيد

list[Dict]

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:

  • segmentation — متجه (tensor) بأبعاد (height, width) حيث يمثل كل بكسل segment_id أو None إذا لم يُعثر على قناع (mask) أعلى من threshold. إذا تم تحديد target_sizes، يتم تغيير حجم segmentation إلى القيمة المقابلة في target_sizes.
  • segments_info — قاموس يحتوي على معلومات إضافية حول كل مقطع.
    • id — عدد صحيح يمثل segment_id.
    • label_id — عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ segment_id.
    • was_fused — قيمة منطقية، تكون True إذا كان label_id ضمن label_ids_to_fuse، وإلا تكون False. تم دمج عدة حالات من نفس الفئة / التسمية وتم إسناد segment_id واحد إليها.
    • score — درجة التنبؤ للمقطع ذي segment_id.

يحوّل مخرجات ConditionalDetrForSegmentation إلى تنبؤات تجزئة بانورامية للصور. يدعم PyTorch فقط.

ConditionalDetrModel

فئة transformers.ConditionalDetrModel

< >

( config: ConditionalDetrConfig )

المعاملات

  • config (ConditionalDetrConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج CONDITIONAL_DETR الأساسي (المكوّن من هيكل أساسي ومحوّل مُشفِّر-مفكِّك) الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ConditionalDetrModelOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام image_processor_class. راجع image_processor_class.__call__ للتفاصيل (processor_class يستخدم image_processor_class لمعالجة الصور).
  • pixel_mask (torch.LongTensor بشكل (batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من [0, 1]: 1 للبكسلات الحقيقية (أي غير المقنعة)، و0 للبكسلات المعبأة (أي المقنعة). ما هي أقنعة الانتباه؟ [0, 1]:
    • 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
    • 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).

    ما هي أقنعة الانتباه؟

  • decoder_attention_mask (torch.Tensor من الشكل (batch_size, num_queries)، اختياري) — غير مستخدم افتراضيًا. يمكن استخدامه لإخفاء استعلامات الكائنات.
  • encoder_outputs (torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state من الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير خريطة الميزات المسطحة (مخرجات الهيكل الأساسي + طبقة الإسقاط)، يمكنك اختيار تمرير تمثيل مسطح للصورة مباشرةً.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, num_queries, hidden_size)، اختياري) — اختياريًا، بدلًا من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرة.

يعيد

ConditionalDetrModelOutput أو tuple(torch.Tensor)

ConditionalDetrModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (None) والمدخلات.

تُعيد طريقة ConditionalDetrModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • intermediate_hidden_states (من نوع torch.Tensor بأبعاد (config.decoder_layers, batch_size, sequence_length, hidden_size)، اختياري، يُعاد عند config.auxiliary_loss=True) — تنشيطات المُفكِّك الوسيطة، أي مخرجات كل طبقة من طبقات المُفكِّك، حيث خضع كلٌّ منها لعملية layernorm.

  • reference_points (torch.Tensor من الشكل (config.decoder_layers, batch_size, num_queries, 2 (anchor points))) — نقاط مرجعية (النقاط المرجعية لكل طبقة من طبقات المُفكِّك).

أمثلة:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/conditional-detr-resnet-50")
>>> model = AutoModel.from_pretrained("microsoft/conditional-detr-resnet-50")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # the last hidden states are the final query embeddings of the Transformer decoder
>>> # these are of shape (batch_size, num_queries, hidden_size)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 300, 256]

ConditionalDetrForObjectDetection

فئة transformers.ConditionalDetrForObjectDetection

< >

( config: ConditionalDetrConfig )

المعاملات

  • config (ConditionalDetrConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج CONDITIONAL_DETR (المكوّن من هيكل أساسي ومحوّل مُشفِّر-مفكِّك) مع رؤوس كشف كائنات في الأعلى، لمهام مثل كشف COCO.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ConditionalDetrObjectDetectionOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام image_processor_class. راجع image_processor_class.__call__ للتفاصيل (processor_class يستخدم image_processor_class لمعالجة الصور).
  • pixel_mask (torch.LongTensor بشكل (batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من [0, 1]: 1 للبكسلات الحقيقية (أي غير المقنعة)، و0 للبكسلات المعبأة (أي المقنعة). ما هي أقنعة الانتباه؟ [0, 1]:
    • 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
    • 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).

    ما هي أقنعة الانتباه؟

  • decoder_attention_mask (torch.Tensor من الشكل (batch_size, num_queries)، اختياري) — غير مستخدم افتراضيًا. يمكن استخدامه لإخفاء استعلامات الكائنات.
  • encoder_outputs (torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state من الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير خريطة الميزات المسطحة (مخرجات الهيكل الأساسي + طبقة الإسقاط)، يمكنك اختيار تمرير تمثيل مسطح للصورة مباشرةً.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, num_queries, hidden_size)، اختياري) — اختياريًا، بدلًا من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرة.
  • labels (list[Dict] بطول (batch_size,)، اختياري) — التسميات لحساب خسارة المطابقة الثنائية. قائمة من القواميس، يحتوي كل قاموس على الأقل على المفتاحين التاليين: ‘class_labels’ و ‘boxes’ (تسميات الفئات وصناديق الحدود لصورة في الدفعة على التوالي). يجب أن تكون تسميات الفئات نفسها torch.LongTensor بطول (number of bounding boxes in the image,) وأن تكون الصناديق torch.Tensor بشكل (number of bounding boxes in the image, 4).

يعيد

ConditionalDetrObjectDetectionOutput أو tuple(torch.Tensor)

ConditionalDetrObjectDetectionOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتمادًا على الإعداد (None) والمدخلات.

تُعيد طريقة ConditionalDetrForObjectDetection الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — إجمالي الخسارة على شكل تركيبة خطية من سلبية الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.

  • loss_dict (Dict, اختياري) — قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.

  • logits (torch.Tensor من الشكل (batch_size, num_queries, num_classes + 1)) — قيم التصنيف (تشمل فئة لا يوجد كائن) لجميع الاستعلامات.

  • pred_boxes (torch.Tensor من الشكل (batch_size, num_queries, 4)) — إحداثيات صناديق مُطبَّعة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُطبَّعة ضمن [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام post_process_object_detection() لاسترجاع صناديق الحدود غير المُطبَّعة.

  • auxiliary_outputs (list[Dict]، اختياري) — اختياري، يُعاد فقط عند تفعيل الخسائر المساعدة (أي عند ضبط config.auxiliary_loss على True) وتوفير التسميات. وهو قائمة من القواميس تحتوي على المفتاحين المذكورين أعلاه (logits وpred_boxes) لكل طبقة من طبقات المُفكِّك.

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من فاحص النموذج.

  • decoder_hidden_states (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

أمثلة:

>>> from transformers import AutoImageProcessor, AutoModelForObjectDetection
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/conditional-detr-resnet-50")
>>> model = AutoModelForObjectDetection.from_pretrained("microsoft/conditional-detr-resnet-50")

>>> inputs = image_processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)

>>> # convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.5, target_sizes=target_sizes)[
...     0
... ]
>>> for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
...     box = [round(i, 2) for i in box.tolist()]
...     print(
...         f"Detected {model.config.id2label[label.item()]} with confidence "
...         f"{round(score.item(), 3)} at location {box}"
...     )
Detected remote with confidence 0.833 at location [38.31, 72.1, 177.63, 118.45]
Detected cat with confidence 0.831 at location [9.2, 51.38, 321.13, 469.0]
Detected cat with confidence 0.804 at location [340.3, 16.85, 642.93, 370.95]
Detected remote with confidence 0.683 at location [334.48, 73.49, 366.37, 190.01]
Detected couch with confidence 0.535 at location [0.52, 1.19, 640.35, 475.1]

ConditionalDetrForSegmentation

فئة transformers.ConditionalDetrForSegmentation

< >

( config: ConditionalDetrConfig )

المعاملات

  • config (ConditionalDetrConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج CONDITIONAL_DETR (المكوّن من هيكل أساسي ومحوّل مُشفِّر-مفكِّك) مع رأس تقطيع في الأعلى، لمهام مثل COCO panoptic.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → ConditionalDetrSegmentationOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام image_processor_class. راجع image_processor_class.__call__ للتفاصيل (processor_class يستخدم image_processor_class لمعالجة الصور).
  • pixel_mask (torch.LongTensor بشكل (batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من [0, 1]: 1 للبكسلات الحقيقية (أي غير المقنعة)، و0 للبكسلات المعبأة (أي المقنعة). ما هي أقنعة الانتباه؟ [0, 1]:
    • 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
    • 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).

    ما هي أقنعة الانتباه؟

  • decoder_attention_mask (torch.Tensor بشكل (batch_size, num_queries), اختياري) — قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من [0, 1]:
    • 1 للاستعلامات التي ليست مقنّعة،
    • 0 للاستعلامات التي تم إخفاؤها.
  • encoder_outputs (torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state من الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — يُحفظ من أجل التوافق مع الإصدارات السابقة، لكنه لا يمكن استخدامه للتجزئة، لأن التجزئة تتطلب ميزات متعددة المقاييس من الهيكل الأساسي (backbone) غير المتوفرة عند تجاوز هذا الهيكل باستخدام inputs_embeds.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, num_queries, hidden_size)، اختياري) — اختياريًا، بدلًا من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.
  • labels (list[Dict] بطول (batch_size,)، اختياري) — التسميات لحساب خسارة المطابقة الثنائية (bipartite matching loss) وخسارة DICE/F-1 وخسارة Focal. قائمة من القواميس، يحتوي كل قاموس على الأقل على المفاتيح الثلاثة التالية: ‘class_labels’ و ‘boxes’ و ‘masks’ (تسميات الفئات، والمربعات المحيطة، وأقنعة التقسيم لصورة في الدفعة على التوالي). يجب أن تكون تسميات الفئات نفسها torch.LongTensor بطول (number of bounding boxes in the image,)، والمربعات المحيطة torch.Tensor بشكل (number of bounding boxes in the image, 4)، والأقنعة torch.Tensor بشكل (number of bounding boxes in the image, height, width).

يعيد

ConditionalDetrSegmentationOutput أو tuple(torch.Tensor)

ConditionalDetrSegmentationOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (None) والمدخلات.

تتجاوز طريقة ConditionalDetrForSegmentation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — إجمالي الخسارة على شكل تركيبة خطية من سلبية الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.

  • loss_dict (Dict, اختياري) — قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.

  • logits (torch.Tensor من الشكل (batch_size, num_queries, num_classes + 1)) — قيم التصنيف (تشمل فئة لا يوجد كائن) لجميع الاستعلامات.

  • pred_boxes (torch.Tensor من الشكل (batch_size, num_queries, 4)) — إحداثيات صناديق مُطبَّعة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُطبَّعة ضمن [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام post_process_object_detection() لاسترجاع صناديق الحدود غير المُطبَّعة.

  • pred_masks (torch.Tensor من الشكل (batch_size, num_queries, height/4, width/4)) — قيم الاحتمالات (logits) لأقنعة التقسيم لجميع الاستعلامات. راجع أيضاً post_process_semantic_segmentation() أو post_process_instance_segmentation() post_process_panoptic_segmentation() لتقييم أقنعة التقسيم الدلالي والمعياري والبانوبتيكي على التوالي.

  • auxiliary_outputs (list[Dict]، اختياري) — اختياري، يُعاد فقط عند تفعيل الخسائر المساعدة (أي عند ضبط config.auxiliary_loss على True) وتوفير التسميات. وهو قائمة من القواميس تحتوي على المفتاحين المذكورين أعلاه (logits وpred_boxes) لكل طبقة من طبقات المُفكِّك.

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من فاحص النموذج.

  • decoder_hidden_states (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

أمثلة:

>>> import io
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> import numpy

>>> from transformers import AutoImageProcessor, ConditionalDetrForSegmentation
>>> from transformers.image_transforms import rgb_to_id

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/conditional_detr-resnet-50-panoptic")
>>> model = ConditionalDetrForSegmentation.from_pretrained("facebook/conditional_detr-resnet-50-panoptic")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # Use the `post_process_panoptic_segmentation` method of the `image_processor` to retrieve post-processed panoptic segmentation maps
>>> # Segmentation results are returned as a list of dictionaries
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(300, 500)])

>>> # A tensor of shape (height, width) where each value denotes a segment id, filled with -1 if no segment is found
>>> panoptic_seg = result[0]["segmentation"]
>>> panoptic_seg.shape
torch.Size([300, 500])
>>> # Get prediction score and segment_id to class_id mapping of each segment
>>> panoptic_segments_info = result[0]["segments_info"]
>>> len(panoptic_segments_info)
5
Update on GitHub