Transformers documentation
RADIO
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-06-30.
RADIO
RADIO (اختصار Reduce All Domains Into One) هو عائلة من نماذج الرؤية الأساسية من NVIDIA، تم تدريبها عبر تقطير متعدد المعلمين (مثل CLIP وDINOv2 وSAM) في هيكل عظمي واحد من نوع ViT. ينتج النموذج تمثيلاً summary على مستوى الصورة، بالإضافة إلى features مكثفة ذات أبعاد مكانية، ويدعم دقات إدخال متغيرة من خلال مولّد رقعات Cropped Position Embedding (CPE).
يُبيّن المثال أدناه كيفية استخراج ميزات الصور باستخدام فئة RadioModel.
import requests
import torch
from PIL import Image
from transformers import CLIPImageProcessor, RadioModel
hf_repo = "nvidia/C-RADIOv4-H"
device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"
model = RadioModel.from_pretrained(hf_repo)
model.eval().to(device)
image_processor = CLIPImageProcessor(
size={"height": 224, "width": 224}, do_resize=True, do_center_crop=False, do_normalize=False
)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
pixel_values = image_processor(images=image, return_tensors="pt").pixel_values
pixel_values = pixel_values.to(device)
with torch.no_grad():
outputs = model(pixel_values)
summary = outputs.summary # (1, 2560) image-level embedding
features = outputs.features # (1, 196, 1280) dense spatial featuresRadioConfig
فئة transformers.RadioConfig
< 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 = Nonehidden_size: int = 1280num_hidden_layers: int = 32num_attention_heads: int = 16mlp_ratio: float = 4.0hidden_act: str = 'gelu'layer_norm_eps: float = 1e-06attention_probs_dropout_prob: float = 0.0hidden_dropout_prob: float = 0.0drop_path_rate: float = 0.0use_swiglu_ffn: bool = Falseqkv_bias: bool = Truelayerscale_value: float = 1.0num_channels: int = 3patch_size: int = 16image_size: int = 224max_img_size: int = 2048num_cls_tokens: int = 3num_registers: int = 7video_temporal_patch_size: int | None = Nonepatch_dim: int | None = Nonevideo_patch_dim: int | None = Nonesummary_idxs: list[int] | None = Nonenorm_mean: list[float] | tuple[float, float, float] = (0.48145466, 0.4578275, 0.40821073)norm_std: list[float] | tuple[float, float, float] = (0.26862954, 0.26130258, 0.27577711)initializer_range: float = 0.02 )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية1280) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية32) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - mlp_ratio (
float، اختياري، القيمة الافتراضية 4.0) — نسبة حجم الطبقة المخفية في شبكة MLP إلىhidden_size. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وما إلى ذلك. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - attention_probs_dropout_prob (
float، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط الاحتمالات الخاصة بالانتباه. - hidden_dropout_prob (
float، اختياري، القيمة الافتراضية0.0) — احتمال الإسقاط (Dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع. - drop_path_rate (
float, اختياري، القيمة الافتراضية0.0) — معدل إسقاط المسار (Drop path) لدمج البقع (patch fusion). - use_swiglu_ffn (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام شبكة SwiGLU للتغذية الأمامية في طبقات المُشفِّر بدلاً من شبكة MLP القياسية. - qkv_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إضافة انحياز إلى الاستعلامات والمفاتيح والقيم. - layerscale_value (
float، اختياري، القيمة الافتراضية 1.0) — القيمة الأولية لمعاملات LayerScale. لا يحتوي C-RADIO على LayerScale؛ القيمة الافتراضية1.0تجعل LayerScale (الموروث) عملية هوية. - num_channels (
int، اختياري، القيمة الافتراضية3) — عدد قنوات الإدخال. - patch_size (
int، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - image_size (
int، اختياري، القيمة الافتراضية224) — حجم (دقة) كل صورة. - max_img_size (
int, اختياري، القيمة الافتراضية 2048) — أقصى حجم صورة مدعوم (بالبكسل) يُستخدم لتحديد حجم جدول تضمين الموضع (position embedding) في مولّد رقعة CPE. - num_cls_tokens (
int، اختياري، القيمة الافتراضية 3) — عدد رموز الفئة (الملخص) المُتعلَّمة التي تُضاف في بداية تسلسل الباتشات. - num_registers (
int، اختياري، القيمة الافتراضية 7) — عدد رموز التسجيل المُتعلَّمة التي تُضاف إلى بداية تسلسل الباتش. - video_temporal_patch_size (
int, اختياري) — عدد الإطارات المكدسة زمنياً لكل رقعة. عند ضبطه، يبني مولّد الرقع أيضاًvideo_patch_projectionلرقع الفيديو المكدسة زمنياً؛Noneيعطّل مسار الفيديو. - patch_dim (
int, اختياري) — الحجم المسطّح لرقعة صورة واحدة. يُشتق منnum_channelsوpatch_size. - video_patch_dim (
int, اختياري) — الحجم المسطّح لرقعة فيديو واحدة مُجمّعة زمنياً. يُشتق منvideo_temporal_patch_sizeوpatch_dim؛ وNoneلنقاط التفتيش المخصصة للصور فقط. - summary_idxs (
list[int]، اختياري، القيمة الافتراضية[0, 1]) — فهارس رموز الفئة التي سيتم جمعها وتسطيحها في مضمون المخرجاتsummary. - norm_mean (
tuple[float, float, float]، اختياري، القيمة الافتراضيةOPENAI_CLIP_MEAN) — متوسط لكل قناة يستخدمه مُعدِّد المدخلات لتطبيع قيم البكسلات. - norm_std (
tuple[float, float, float]، اختياري، القيمة الافتراضيةOPENAI_CLIP_STD) — انحراف معياري لكل قناة يستخدمه مُعدِّد المدخلات لتطبيع قيم البكسلات. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
هذه فئة الإعدادات المخزنة لإعدادات نموذج RadioModel. تُستخدم لاستحداث نموذج Radio وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ nvidia/C-RADIOv4-H
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
RadioModel
فئة transformers.RadioModel
< source >( config: RadioConfig )
المعاملات
- config (RadioConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Radio الخام الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensorimage_grid_hw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → RadioModelOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, height, width)أو(total_patches, num_channels * patch_size**2)) — صور بحجم واحد، أو، باستخدامimage_grid_hw، البقع المسطحة لصور بأحجام مختلفة مدمجة معًا. يتم ترتيب كل بقعة على أساس القناة، أي(num_channels, patch_size, patch_size). - image_grid_hw (
torch.LongTensorمن الشكل(num_images, 2)، اختياري) — شبكة الباتشات(height, width)لكل صورة فيpixel_valuesالمعبأة.
يعيد
RadioModelOutput أو tuple(torch.Tensor)
RadioModelOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعدادات (RadioConfig) والمدخلات.
تُعيد طريقة RadioModel الأمامية تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
ملخص (
torch.Tensorمن الشكل(batch_size, num_summary_idxs * hidden_size)) — تمثيل مُلخَّص مُسطَّح، تم جمعه من رموز cls التي حددهاconfig.summary_idxs.الميزات (
torch.Tensorمن الشكل(batch_size, num_patches, hidden_size)) — ميزات رقمية مكثفة. في حال المدخلات المعبأة (عند تقديمimage_grid_hw)، تكون ميزات الأرقام لجميع الصور مدمجة معًا، من الشكل(total_patches, hidden_size).last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل الرموز الكامل (رموز البادئة + البقع) من طبقة المُشفِّر النهائية. في حال المدخلات المعبأة، تكون تسلسلات جميع الصور مدمجة معًا، من الشكل(total_sequence_length, hidden_size).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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.