Transformers documentation

HGNet-V2

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

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2025-04-29.

HGNet-V2

HGNetV2 هو هيكل عظمي (backbone) لشبكات عصبية تلافية (CNN) من الجيل التالي، مصمَّم لتحقيق التوازن الأمثل بين الدقة وزمن الاستجابة على وحدات معالجة الرسوميات من NVIDIA. وبما أنه مبني على HGNet الأصلية، فإن HGNetV2 يوفر دقة عالية مع سرعات استدلال سريعة، ويحقق أداءً قويًا في مهام مثل تصنيف الصور، وكشف الأشياء، والتجزئة (segmentation)، مما يجعله خيارًا عمليًا لتطبيقات الرؤية الحاسوبية المعتمدة على وحدات معالجة الرسوميات.

يمكنك العثور على جميع نماذج HGNet V2 الأصلية تحت منظمة USTC.

تمت مساهمة هذا النموذج من قِبل VladOS95-cyber. انقر على نماذج HGNet V2 في الشريط الجانبي الأيمن لمزيد من الأمثلة على كيفية تطبيق HGNet V2 على مهام مختلفة في مجال رؤية الحاسوب.

يُبيّن المثال أدناه كيفية تصنيف صورة باستخدام Pipeline أو فئة AutoModel.

خط أنابيب
AutoModel
from transformers import pipeline


pipeline = pipeline(
    task="image-classification",
    model="ustc-community/hgnet-v2",
    device=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")

HGNetV2Config

فئة transformers.HGNetV2Config

< >

( 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 = Nonenum_channels: int = 3embedding_size: int = 64depths: list[int] | tuple[int, ...] = (3, 4, 6, 3)hidden_sizes: list[int] | tuple[int, ...] = (256, 512, 1024, 2048)hidden_act: str = 'relu'_out_features: list[str] | None = None_out_indices: list[int] | None = Nonestem_channels: list[int] | tuple[int, ...] = (3, 32, 48)stem_strides: Sequence = (2, 1, 1, 2, 1)stage_in_channels: list[int] | tuple[int, ...] = (48, 128, 512, 1024)stage_mid_channels: list[int] | tuple[int, ...] = (48, 96, 192, 384)stage_out_channels: list[int] | tuple[int, ...] = (128, 512, 1024, 2048)stage_num_blocks: list[int] | tuple[int, ...] = (1, 1, 3, 1)stage_downsample: list[bool] | tuple[bool, ...] = (False, True, True, True)stage_downsample_strides: Sequence = (2, 2, 2, 2)stage_light_block: list[bool] | tuple[bool, ...] = (False, False, True, True)stage_kernel_size: list[int] | tuple[int, ...] = (3, 3, 5, 5)stage_numb_of_layers: list[int] | tuple[int, ...] = (6, 6, 6, 6)use_learnable_affine_block: bool = Falseinitializer_range: float = 0.02 )

المعاملات

  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال.
  • embedding_size (int، اختياري، القيمة الافتراضية 64) — أبعاد التضمينات والحالات المخفية.
  • depths (Union[list[int], tuple[int, ...]]، اختياري، القيمة الافتراضية (3, 4, 6, 3)) — عمق كل طبقة في Transformer.
  • hidden_sizes (Union[list[int], tuple[int, ...]]، اختياري، القيمة الافتراضية (256, 512, 1024, 2048)) — البُعد (حجم الطبقة المخفية) في كل مرحلة من مراحل النموذج.
  • hidden_act (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • stem_channels (list[int], اختياري, الافتراضي هو [3, 32, 48]) — أبعاد القنوات لطبقات الجذع:
    • الرقم الأول (3) هو عدد قنوات الصورة المدخلة
    • الرقم الثاني (32) هو قنوات الجذع الوسيطة
    • الرقم الثالث (48) هو عدد قنوات الجذع المُخرَج
  • stem_strides (Sequence[int | list[int] | tuple[int, ...]]، اختياري، القيمة الافتراضية (2, 1, 1, 2, 1)) — أنماط الخطوة (Stride) لطبقات الجذع (stem).
  • stage_in_channels (list[int]، اختياري، القيمة الافتراضية [48, 128, 512, 1024]) — أبعاد قنوات الإدخال لكل مرحلة من مراحل الهيكل العظمي. يحدد هذا عدد القنوات التي ستحتويها مدخلات كل مرحلة.
  • stage_mid_channels (list[int]، اختياري، القيمة الافتراضية [48, 96, 192, 384]) — أبعاد القنوات المتوسطة لكل مرحلة من مراحل الهيكل الأساسي. يحدد هذا عدد القنوات المستخدمة في الطبقات الوسيطة لكل مرحلة.
  • stage_out_channels (list[int]، اختياري، القيمة الافتراضية [128, 512, 1024, 2048]) — أبعاد قنوات الإخراج لكل مرحلة من مراحل الهيكل العظمي. يحدد هذا عدد القنوات التي ستحتوي عليها مخرجات كل مرحلة.
  • stage_num_blocks (list[int], اختياري، القيمة الافتراضية [1, 1, 3, 1]) — عدد الكتل المستخدمة في كل مرحلة من مراحل الهيكل الأساسي. يتحكم هذا في عمق كل مرحلة من خلال تحديد عدد كتل الالتفاف التي سيتم تجميعها.
  • stage_downsample (list[bool]، اختياري، القيمة الافتراضية [False, True, True, True]) — يحدد ما إذا كان سيتم تقليل حجم خرائط الميزات في كل مرحلة. إذا كانت القيمة True، فسيتم تقليل الأبعاد المكانية لخرائط الميزات.
  • stage_downsample_strides (Sequence[int | list[int] | tuple[int, ...]]، اختياري، القيمة الافتراضية (2, 2, 2, 2)) — أنماط الخطوة (Stride) لكل طبقة مرحلة.
  • stage_light_block (list[bool]، اختياري، القيمة الافتراضية [False, False, True, True]) — يحدد ما إذا كان سيتم استخدام الكتل الخفيفة في كل مرحلة. الكتل الخفيفة هي نسخة من الكتل التلافيفية قد تحتوي على عدد أقل من المعاملات.
  • stage_kernel_size (list[int]، اختياري، القيمة الافتراضية [3, 3, 5, 5]) — أحجام النواة للطبقات التلافيفية في كل مرحلة.
  • stage_numb_of_layers (list[int]، اختياري، القيمة الافتراضية [6, 6, 6, 6]) — عدد الطبقات المستخدمة في كل كتلة من المرحلة.
  • use_learnable_affine_block (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام كتل التحويل التوافقي القابلة للتعلم (LAB) في الشبكة. تضيف LAB معاملات مقياس وانحياز قابلة للتعلم بعد عمليات معينة.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

هذه فئة الإعدادات (Configuration) لتخزين إعدادات HGNetV2Backbone. تُستخدم لتوليد نموذج Hgnet V2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء فئة إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ ustc-community/dfine_x_coco

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

HGNetV2Backbone

فئة transformers.HGNetV2Backbone

< >

( config: HGNetV2Config )

forward

< >

( pixel_values: Tensoroutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BackboneOutput 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 لمعالجة الصور).
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

BackboneOutput أو tuple(torch.Tensor)

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

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

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

  • feature_maps (tuple(torch.Tensor) من الشكل (batch_size, num_channels, height, width)) — خرائط الميزات للمراحل.

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

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

  • 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 HGNetV2Config, HGNetV2Backbone
>>> import torch

>>> config = HGNetV2Config()
>>> model = HGNetV2Backbone(config)

>>> pixel_values = torch.randn(1, 3, 224, 224)

>>> with torch.no_grad():
...     outputs = model(pixel_values)

>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 2048, 7, 7]

HGNetV2ForImageClassification

فئة transformers.HGNetV2ForImageClassification

< >

( config: HGNetV2Config )

المعاملات

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

نموذج HGNetV2 مع رأس تصنيف الصور في الأعلى (طبقة خطية فوق الميزات المجمّعة)، على سبيل المثال لـ ImageNet.

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

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

forward

< >

( pixel_values: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutputWithNoAttention 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 لمعالجة الصور).
  • labels (torch.LongTensor of shape (batch_size,), اختياري) — التسميات لحساب خسارة تصنيف الصور/الانحدار. يجب أن تكون الفهارس ضمن [0, ..., config.num_labels - 1]. إذا كان config.num_labels == 1 يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان config.num_labels > 1 يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

ImageClassifierOutputWithNoAttention أو tuple(torch.Tensor)

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

تتجاوز طريقة HGNetV2ForImageClassification الخاصة بالتقديم (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, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) للنموذج عند إخراج كل مرحلة.

أمثلة:

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

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

>>> model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2")
>>> processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> outputs.logits.shape
torch.Size([1, 2])
Update on GitHub