Transformers documentation

Hiera

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 في 2023-06-01 وسُهم به في Hugging Face Transformers في 2024-07-12.

Hiera

نظرة عامة

قُدمت Hiera في Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles من قِبل Chaitanya Ryali وYuan-Ting Hu وDaniel Bolya وChen Wei وHaoqi Fan وPo-Yao Huang وVaibhav Aggarwal وArkabandhu Chowdhury وOmid Poursaeed وJudy Hoffman وJitendra Malik وYanghao Li وChristoph Feichtenhofer

تُقدّم الورقة البحثية «Hiera»، وهو محوّل رؤية هرمي (Vision Transformer) يُبسّط بنية محوّلات الرؤية الهرمية الحديثة من خلال إزالة المكونات غير الضرورية دون المساس بالدقة أو الكفاءة. وعلى عكس المحوّلات التقليدية التي تضيف مكونات معقدة مخصصة للرؤية لتحسين أداء التصنيف المُشرط (supervised classification)، تُثبت Hiera أن هذه الإضافات، التي غالباً ما تُسمّى «الميزات الإضافية» (bells-and-whistles)، ليست ضرورية لتحقيق دقة عالية. وباستخدام مهمة تمهيدية بصرية قوية (MAE) للتدريب المسبق، يحافظ Hiera على البساطة ويحقق دقة وسرعة فائقتين في كل من الاستدلال والتدريب عبر مهام متنوعة للتعرف على الصور والفيديو. وتُشير هذه المنهجية إلى أن الانحيازات المكانية المطلوبة لمهام الرؤية يمكن تعلمها بفعالية من خلال التدريب المسبق المناسب، مما يلغي الحاجة إلى تعقيد معماري إضافي.

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

أضافت محولات الرؤية الهرمية الحديثة عدة مكوّنات مخصصة للرؤية في سعيها لتحسين أداء التصنيف المُشرف. وعلى الرغم من أن هذه المكوّنات تؤدي إلى دقة فعّالة وعدد جذّاب من عمليات FLOP، فإن التعقيد المضاف يجعل هذه المحولات في الواقع أبطأ من نظيراتها الأساسية من نوع ViT. في هذه الورقة، نجادل بأن هذا الحجم الإضافي غير ضروري. فمن خلال التدريب المسبق باستخدام مهمة تمهيدية بصرية قوية (MAE)، يمكننا إزالة جميع الإضافات الزائدة من محول رؤية متعدد المراحل متقدم دون فقدان الدقة. وفي هذه العملية، أنشأنا Hiera، وهو محول رؤية هرمي بسيط للغاية، أكثر دقة من النماذج السابقة مع كونه أسرع بكثير في كل من الاستدلال والتدريب. قمنا بتقييم Hiera على مجموعة متنوعة من مهام التعرف على الصور والفيديو. كودنا ونماذجنا متاحة على https://github.com/facebookresearch/hiera.

drawing Hiera architecture. Taken from the original paper.

كان هذا النموذج مساهمة مشتركة من EduardoPacheco وnamangarg110. يمكن العثور على الكود الأصلي [هنا] (https://github.com/facebookresearch/hiera).

الموارد

قائمة بموارد رسمية من Hugging Face وموارد مجتمعية (مشار إليها بـ 🌎) لمساعدتك على البدء مع Hiera. إذا كنت مهتمًا بتقديم مورد ليُدرج هنا، فلا تتردد في فتح طلب سحب (Pull Request) وسنقوم بمراجعته! يُفضَّل أن يُظهر المورد شيئًا جديدًا بدلاً من تكرار مورد موجود مسبقًا.

Image Classification

HieraConfig

فئة transformers.HieraConfig

< >

( 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 = Noneembed_dim: int = 96image_size: list[int] | tuple[int, ...] = (224, 224)patch_size: list[int] | tuple[int, ...] = (7, 7)patch_stride: list[int] | tuple[int, ...] = (4, 4)patch_padding: list[int] | tuple[int, ...] = (3, 3)mlp_ratio: float = 4.0depths: list[int] | tuple[int, ...] = (2, 3, 16, 3)num_heads: list[int] | tuple[int, ...] = (1, 2, 4, 8)embed_dim_multiplier: float | int = 2.0num_query_pool: int = 3query_stride: list[int] | tuple[int, ...] = (2, 2)masked_unit_size: list[int] | tuple[int, ...] = (8, 8)masked_unit_attention: list[bool] | tuple[bool, ...] = (True, True, False, False)drop_path_rate: float | int = 0.0num_channels: int = 3hidden_act: str = 'gelu'initializer_range: float = 0.02layer_norm_init: float = 1.0layer_norm_eps: float = 1e-06decoder_hidden_size: int | None = Nonedecoder_depth: int | None = Nonedecoder_num_heads: int | None = Nonenormalize_pixel_loss: bool | None = Truemask_ratio: float = 0.6_out_features: list[str] | None = None_out_indices: list[int] | None = None )

المعاملات

  • embed_dim (int، اختياري، القيمة الافتراضية 96) — أبعاد التضمينات والحالات المخفية.
  • image_size (Union[list[int], tuple[int, ...]]، اختياري، القيمة الافتراضية (224, 224)) — حجم (دقة) كل صورة.
  • patch_size (Union[list[int], tuple[int, ...]]، اختياري، القيمة الافتراضية (7, 7)) — حجم (دقة) كل رقعة.
  • patch_stride (list(int)، اختياري، القيمة الافتراضية [4, 4]) — خطوة الباتش.
  • patch_padding (list(int)، اختياري، القيمة الافتراضية [3, 3]) — الحشو الخاص بالرقعة.
  • mlp_ratio (float، اختياري، القيمة الافتراضية 4.0) — نسبة بُعد مخفي MLP إلى بُعد التضمين.
  • depths (Union[list[int], tuple[int, ...]]، اختياري، القيمة الافتراضية (2, 3, 16, 3)) — عمق كل طبقة في Transformer.
  • num_heads (list(int)، اختياري، القيمة الافتراضية [1, 2, 4, 8]) — عدد رؤوس الانتباه في كل طبقة من طبقات مُشفِّر Transformer.
  • embed_dim_multiplier (float، اختياري، القيمة الافتراضية 2.0) — المضاعف لأبعاد تضمين البقع (patch embedding) في كل طبقة من طبقات مُشفِّر Transformer.
  • num_query_pool (int، اختياري، القيمة الافتراضية 3) — عدد مراحل استعلامات الاستخراب.
  • query_stride (list(int)، اختياري، القيمة الافتراضية [2, 2]) — خطوة استعلام المسح (pooling).
  • masked_unit_size (list(int)، اختياري، القيمة الافتراضية [8, 8]) — حجم الوحدة المقنّعة.
  • masked_unit_attention (list(bool)، اختياري، القيمة الافتراضية [True, True, False, False]) — ما إذا كان سيتم استخدام الانتباه الموحّد المقنّع (masked unit attention) في كل طبقة من طبقات مُشفِّر Transformer.
  • drop_path_rate (Union[float, int], اختياري، القيمة الافتراضية 0.0) — معدل إسقاط المسار (Drop path) لدمج البقع (patch fusion).
  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال.
  • hidden_act (str، اختياري، القيمة الافتراضية gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_init (float، اختياري، القيمة الافتراضية 1.0) — القيمة الأولية لوزن طبقات تطبيع الطبقة.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • decoder_hidden_size (int, اختياري) — أبعاد التمثيلات المخفية.
  • decoder_depth (int, اختياري) — عمق المُفكِّك (decoder) للتدريب المسبق باستخدام MAE.
  • decoder_num_heads (int, اختياري) — عدد رؤوس الانتباه في كل طبقة انتباه داخل مُفكِّك Transformer.
  • normalize_pixel_loss (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع خسارة البكسلات (pixel loss) على عدد البكسلات.
  • mask_ratio (float، اختياري، القيمة الافتراضية 0.6) — نسبة الرموز المقنّعة في المدخلات.

هذه فئة الإعدادات المخزنة لإعدادات نموذج HieraModel. تُستخدم لاستحداث نموذج Hiera وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ facebook/hiera-base-224

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

مثال:

>>> from transformers import HieraConfig, HieraModel

>>> # Initializing a Hiera hiera-base-patch16-224 style configuration
>>> configuration = HieraConfig()

>>> # Initializing a model (with random weights) from the hiera-base-patch16-224 style configuration
>>> model = HieraModel(configuration)

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

HieraModel

فئة transformers.HieraModel

< >

( config: HieraConfigadd_pooling_layer: bool = Trueis_mae: bool = False )

المعاملات

  • config (HieraConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
  • add_pooling_layer (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيق طبقة التجميع أم لا.
  • is_mae (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تشغيل النموذج في وضع MAE أم لا.

نموذج Hiera العاري الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

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

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

forward

< >

( pixel_values: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام BitImageProcessor. راجع BitImageProcessor.call() للتفاصيل (processor_class يستخدم BitImageProcessor لمعالجة الصور).
  • noise (torch.Tensor من الشكل (batch_size, num_mask_units)، اختياري) — يُستخدم بشكل رئيسي لأغراض الاختبار للتحكم في العشوائية والحفاظ على قابلية إعادة الإنتاج
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • interpolate_pos_encoding (bool, اختياري) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

BaseModelOutputWithPooling أو tuple(torch.Tensor)

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

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

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

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

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

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

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

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

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

مثال:

HieraForPreTraining

فئة transformers.HieraForPreTraining

< >

( config: HieraConfig )

المعاملات

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

نموذج Hiera transformer مع المُفكِّك (decoder) في الأعلى للتدريب المسبق غير المُراقَب ذاتياً.

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

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

forward

< >

( pixel_values: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForPreTrainingOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام BitImageProcessor. راجع BitImageProcessor.call() للتفاصيل (processor_class يستخدم BitImageProcessor لمعالجة الصور).
  • noise (torch.Tensor من الشكل (batch_size, num_mask_units)، اختياري) — يُستخدم بشكل رئيسي لأغراض الاختبار للتحكم في العشوائية والحفاظ على قابلية إعادة الإنتاج
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • interpolate_pos_encoding (bool, اختياري) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

HieraForPreTrainingOutput أو tuple(torch.Tensor)

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

تتجاوز طريقة HieraForPreTraining الخاصة بالتقديم الأمامي الطريقة الخاصة __call__.

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

  • loss (torch.Tensor من الشكل (1,)) — خسارة إعادة بناء البكسلات.

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, patch_size ** 2 * num_channels)) — قيم logits لإعادة بناء البكسلات.

  • bool_masked_pos (torch.BoolTensor من الشكل (batch_size, sequence_length)) — مصفوفة تُظهر أي البقع مقنّعة (0) وأيها غير مقنّع (1).

  • ids_restore (torch.LongTensor من الشكل (batch_size, sequence_length)) — متجه يحتوي على الفهرس الأصلي للرقع المقنّعة (المُبعثرة).

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

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

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

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

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

أمثلة:

>>> from transformers import AutoImageProcessor, HieraForPreTraining
>>> import torch
>>> 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("facebook/hiera-tiny-224-mae-hf")
>>> model = HieraForPreTraining.from_pretrained("facebook/hiera-tiny-224-mae-hf")

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

>>> outputs = model(**inputs)
>>> logits = outputs.logits
>>> loss = outputs.loss
>>> print(list(logits.shape))
[1, 196, 768]

HieraForImageClassification

فئة transformers.HieraForImageClassification

< >

( config: HieraConfig )

المعاملات

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

نموذج Hiera transformer مع رأس تصنيف صور في الأعلى (طبقة خطية فوق حالة الإخفاء النهائية مع متوسط التجميع) مثل ImageNet.

لاحظ أنه من الممكن ضبط Hiera على صور بدقة أعلى من تلك التي تم تدريبه عليها، وذلك عن طريق تعيين interpolate_pos_encoding إلى True في استدعاء forward للنموذج. سيؤدي هذا إلى استيفاء ترميزات المواقع المُدرَّبة مسبقاً لتتوافق مع الدقة الأعلى.

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

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

forward

< >

( pixel_valueslabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForImageClassificationOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (`of shape(batch_size, num_channels, image_size, image_size)) -- The tensors corresponding to the input images. Pixel values can be obtained using [BitImageProcessor](/docs/transformers/main/en/model_doc/bit#transformers.BitImageProcessor). See [BitImageProcessor.__call__()](/docs/transformers/main/en/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) for details (processor_class` uses BitImageProcessor for processing images).
  • labels (torch.LongTensor of shape (batch_size,), اختياري) — التسميات لحساب خسارة تصنيف الصور/الانحدار. يجب أن تكون الفهارس ضمن [0, ..., config.num_labels - 1]. إذا كان config.num_labels == 1 يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان config.num_labels > 1 يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • interpolate_pos_encoding (bool, اختياري) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

HieraForImageClassificationOutput أو tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).

  • logits (torch.Tensor من الشكل (batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).

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

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

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

  • reshaped_hidden_states (tuple(torch.Tensor)، optional) — مجموعة من torch.Tensor (واحدة لمخرجات التضمينات + واحدة لمخرجات كل مرحلة) من الشكل (batch_size, height, width, hidden_size). هذه هي حالات الإخفاء المعاد تشكيلها وإعادة لفّها للنموذج.

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

مثال:

>>> from transformers import AutoImageProcessor, HieraForImageClassification
>>> import torch
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-base-224")
>>> model = HieraForImageClassification.from_pretrained("facebook/hiera-base-224")

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

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...
Update on GitHub