Transformers documentation

TimmWrapper

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

TimmWrapper

نظرة عامة

فئة مساعدة لتفعيل تحميل نماذج timm لاستخدامها مع مكتبة transformers وفئاتها التلقائية.

from urllib.request import urlopen

import torch
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForImageClassification


# Load image
image = Image.open(urlopen(
    'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))

# Load model and image processor
checkpoint = "timm/resnet50.a1_in1k"
image_processor = AutoImageProcessor.from_pretrained(checkpoint)
model = AutoModelForImageClassification.from_pretrained(checkpoint).eval( device_map="auto")

# Preprocess image
inputs = image_processor(image)

# Forward pass
with torch.no_grad():
    logits = model(**inputs).logits

# Get top 5 predictions
top5_probabilities, top5_class_indices = torch.topk(logits.softmax(dim=1) * 100, k=5)

الموارد

قائمة بالموارد الرسمية من Hugging Face وموارد المجتمع (المشار إليها بـ 🌎) لمساعدتك على البدء باستخدام TimmWrapper.

Image Classification

لمزيد من التفاصيل، يرجى قراءة المنشور الرسمي على المدونة حول تكامل timm.

TimmWrapperConfig

فئة transformers.TimmWrapperConfig

< >

( 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 = Nonearchitecture: str = 'resnet50'initializer_range: float = 0.02do_pooling: bool = Truemodel_args: dict[str, typing.Any] | None = None )

المعاملات

  • architecture (str، اختياري، القيمة الافتراضية "resnet50") — بنية timm التي سيتم تحميلها.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • do_pooling (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم إجراء تجميع (pooling) لحالة TimmWrapperModel الأخيرة (last_hidden_state) أم لا.
  • model_args (dict[str, Any], اختياري) — حجج إضافية بالكلمات المفتاحية تُمرَّر إلى دالة timm.create_model. على سبيل المثال model_args={"depth": 3} لنموذج timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k لإنشاء نموذج يحتوي على 3 كتل. القيمة الافتراضية هي None.

هذه فئة الإعدادات المخزنة لإعدادات نموذج TimmWrapperModel. تُستخدم لاستحداث نموذج غلاف Timm وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيُنتج إعدادات مشابهة لتلك الخاصة بـ resnet50

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

مثال:

>>> from transformers import TimmWrapperModel

>>> # Initializing a timm model
>>> model = TimmWrapperModel.from_pretrained("timm/resnet18.a1_in1k")

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

TimmWrapperImageProcessor

فئة transformers.TimmWrapperImageProcessor

< >

( pretrained_cfg: dictarchitecture: str | None = None**kwargs )

المعاملات

  • pretrained_cfg (dict[str, Any]) — إعدادات النموذج المُدرَّب مسبقًا المستخدمة لحلّ تحويلات التقييم والتدريب.
  • architecture (Optional[str]، اختياري) — اسم بنية النموذج.

فئة غلاف لنماذج timm لاستخدامها داخل transformers.

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]return_tensors: str | transformers.utils.generic.TensorType | None = 'pt' )

المعاملات

  • images (ImageInput) — صورة للمعالجة المسبقة. يتوقع صورة واحدة أو دفعة من الصور
  • return_tensors (str أو TensorType، اختياري) — نوع المصفوفات (tensors) التي سيتم إرجاعها.

معالجة صورة أو دفعة من الصور مسبقًا.

TimmWrapperModel

فئة transformers.TimmWrapperModel

< >

( config: TimmWrapperConfig )

فئة غلاف لنماذج timm لاستخدامها في transformers.

forward

< >

( pixel_values: Tensoroutput_attentions: bool | None = Noneoutput_hidden_states: bool | list[int] | None = Nonereturn_dict: bool | None = Nonedo_pooling: bool | None = Noneuse_cache: bool | None = None**kwargs ) → TimmWrapperModelOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام TimmWrapperImageProcessor. راجع TimmWrapperImageProcessor.call() للتفاصيل (يستخدم processor_class TimmWrapperImageProcessor لمعالجة الصور).
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تينسورات الانتباه لجميع طبقات الانتباه أم لا. غير متوافق مع النماذج المغلفة بواسطة timm.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الإخفاء (hidden states) لجميع الطبقات أم لا. غير متوافق مع النماذج المغلفة بواسطة timm.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
  • do_pooling (bool, optional) — Whether to do pooling for the last_hidden_state in TimmWrapperModel or not. If None is passed, the do_pooling value from the config is used.
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

TimmWrapperModelOutput أو tuple(torch.Tensor)

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

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

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

  • last_hidden_state (torch.Tensor) — حالة الإخفاء الأخيرة للنموذج، المُخرَجة قبل تطبيق رأس التصنيف.
  • pooler_output (torch.Tensor، اختياري) — المخرجات المجمّعة المشتقة من حالة الإخفاء الأخيرة، إن كان ذلك ممكنًا.
  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد إذا تم ضبط output_hidden_states=True أو إذا كان config.output_hidden_states=True) — مجموعة (tuple) تحتوي على حالات الإخفاء (hidden states) الوسيطة للنموذج عند مخرج كل طبقة أو الطبقات المحددة.
  • attentions (tuple(torch.Tensor)، اختياري، يُعاد إذا تم تعيين output_attentions=True أو إذا كان config.output_attentions=True.) — مجموعة (tuple) تحتوي على أوزان الانتباه الوسيطة للنموذج عند مخرج كل طبقة. ملاحظة: حاليًا، لا تدعم نماذج Timm إخراج الانتباه.

أمثلة:

>>> import torch
>>> from PIL import Image
>>> from urllib.request import urlopen
>>> from transformers import AutoModel, AutoImageProcessor

>>> # Load image
>>> image = Image.open(urlopen(
...     'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
... ))

>>> # Load model and image processor
>>> checkpoint = "timm/resnet50.a1_in1k"
>>> image_processor = AutoImageProcessor.from_pretrained(checkpoint)
>>> model = AutoModel.from_pretrained(checkpoint).eval()

>>> # Preprocess image
>>> inputs = image_processor(image)

>>> # Forward pass
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # Get pooled output
>>> pooled_output = outputs.pooler_output

>>> # Get last hidden state
>>> last_hidden_state = outputs.last_hidden_state

TimmWrapperForImageClassification

فئة transformers.TimmWrapperForImageClassification

< >

( config: TimmWrapperConfig )

فئة غلاف لنماذج timm لاستخدامها في transformers لتصنيف الصور.

forward

< >

( pixel_values: Tensorlabels: typing.Optional[torch.LongTensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | list[int] | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام TimmWrapperImageProcessor. راجع TimmWrapperImageProcessor.call() للتفاصيل (يستخدم processor_class TimmWrapperImageProcessor لمعالجة الصور).
  • labels (torch.LongTensor of shape (batch_size,), اختياري) — التسميات لحساب خسارة تصنيف الصور/الانحدار. يجب أن تكون الفهارس ضمن [0, ..., config.num_labels - 1]. إذا كان config.num_labels == 1 يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان config.num_labels > 1 يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تينسورات الانتباه لجميع طبقات الانتباه أم لا. غير متوافق مع النماذج المغلفة بواسطة timm.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الإخفاء (hidden states) لجميع الطبقات أم لا. غير متوافق مع النماذج المغلفة بواسطة timm.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي. **kwargs: حجج إضافية بالكلمات المفتاحية تُمرَّر إلى forward لنموذج timm.

يعيد

ImageClassifierOutput أو tuple(torch.Tensor)

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

تتجاوز طريقة TimmWrapperForImageClassification الخاصة بالتقديم (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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

أمثلة:

>>> import torch
>>> from PIL import Image
>>> from urllib.request import urlopen
>>> from transformers import AutoModelForImageClassification, AutoImageProcessor

>>> # Load image
>>> image = Image.open(urlopen(
...     'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
... ))

>>> # Load model and image processor
>>> checkpoint = "timm/resnet50.a1_in1k"
>>> image_processor = AutoImageProcessor.from_pretrained(checkpoint)
>>> model = AutoModelForImageClassification.from_pretrained(checkpoint).eval()

>>> # Preprocess image
>>> inputs = image_processor(image)

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

>>> # Get top 5 predictions
>>> top5_probabilities, top5_class_indices = torch.topk(logits.softmax(dim=1) * 100, k=5)
Update on GitHub