Transformers documentation
HGNet-V2
تمت مساهمة هذا النموذج في 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.
from transformers import pipeline
pipeline = pipeline(
task="image-classification",
model="ustc-community/hgnet-v2",
device=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, HGNetV2ForImageClassification
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2", device_map="auto")
processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")
inputs = processor(images=image, return_tensors="pt").to(model.device)
with torch.no_grad():
logits = model(**inputs).logits
predicted_class_id = logits.argmax(dim=-1).item()
class_labels = model.config.id2label
predicted_class_label = class_labels[predicted_class_id]
print(f"The predicted class label is: {predicted_class_label}")HGNetV2Config
فئة transformers.HGNetV2Config
< 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 = 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
forward
< source >( 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
< source >( config: HGNetV2Config )
المعاملات
- config (HGNetV2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج HGNetV2 مع رأس تصنيف الصور في الأعلى (طبقة خطية فوق الميزات المجمّعة)، على سبيل المثال لـ ImageNet.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( 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.LongTensorof 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])