Transformers documentation
Hiera
نُشر هذا النموذج في أوراق 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.
Hiera architecture. Taken from the original paper. كان هذا النموذج مساهمة مشتركة من EduardoPacheco وnamangarg110. يمكن العثور على الكود الأصلي [هنا] (https://github.com/facebookresearch/hiera).
الموارد
قائمة بموارد رسمية من Hugging Face وموارد مجتمعية (مشار إليها بـ 🌎) لمساعدتك على البدء مع Hiera. إذا كنت مهتمًا بتقديم مورد ليُدرج هنا، فلا تتردد في فتح طلب سحب (Pull Request) وسنقوم بمراجعته! يُفضَّل أن يُظهر المورد شيئًا جديدًا بدلاً من تكرار مورد موجود مسبقًا.
- يُؤمَّن دعم HieraForImageClassification من خلال هذا دفتر ملاحظات.
- انظر أيضاً: دليل مهمة تصنيف الصور
HieraConfig
فئة transformers.HieraConfig
< 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 = 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.configHieraModel
فئة transformers.HieraModel
< source >( 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
< source >( 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
< source >( config: HieraConfig )
المعاملات
- config (HieraConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Hiera transformer مع المُفكِّك (decoder) في الأعلى للتدريب المسبق غير المُراقَب ذاتياً.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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
< source >( config: HieraConfig )
المعاملات
- config (HieraConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Hiera transformer مع رأس تصنيف صور في الأعلى (طبقة خطية فوق حالة الإخفاء النهائية مع متوسط التجميع) مثل ImageNet.
لاحظ أنه من الممكن ضبط Hiera على صور بدقة أعلى من تلك التي تم تدريبه عليها، وذلك عن طريق تعيين
interpolate_pos_encodingإلىTrueفي استدعاء forward للنموذج. سيؤدي هذا إلى استيفاء ترميزات المواقع المُدرَّبة مسبقاً لتتوافق مع الدقة الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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.LongTensorof 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])
...