Buckets:

hf-doc-build/doc / diffusers /main /ar /api /models /transformer2d.md
mishig's picture
|
download
raw
9.71 kB

Transformer2DModel

نموذج Transformer لبيانات تشبه الصور من CompVis يعتمد على Vision Transformer الذي قدمه Dosovitskiy وآخرون. يقبل Transformer2DModel مدخلات منفصلة (فئات من تضمينات المتجهات) أو مستمرة (تضمينات فعلية).

عندما يكون الإدخال مستمراً:

  1. قِمْ بإسقاط المدخل وإعادة تشكيله إلى (batch_size, sequence_length, feature_dimension).
  2. طبّق كتل Transformer بالطريقة القياسية.
  3. إعادة تشكيل إلى صورة.

عندما يكون الإدخال منفصلاً:

يُفترض أن أحد فئات الإدخال هو البكسل الكامن المقنّع. لا تحتوي الفئات المتنبأ بها للصورة غير الملوّثة على تنبؤ للبكسل المقنّع، لأن الصورة غير الملوّثة لا يمكن تقنيعها.

  1. تحويل المدخلات (فئات البكسلات الكامنة) إلى تمثيلات وتطبيق تمثيلات موضعية.
  2. طبّق كتل Transformer بالطريقة القياسية.
  3. توقّع فئات الصورة غير المُضجّبة.

Transformer2DModel[[diffusers.Transformer2DModel]]

diffusers.Transformer2DModel[[diffusers.Transformer2DModel]]

diffusers.Transformer2DModel(num_attention_heads: int = 16, attention_head_dim: int = 88, in_channels: int | None = None, out_channels: int | None = None, num_layers: int = 1, dropout: float = 0.0, norm_num_groups: int = 32, cross_attention_dim: int | None = None, attention_bias: bool = False, sample_size: int | None = None, num_vector_embeds: int | None = None, patch_size: int | None = None, activation_fn: str = 'geglu', num_embeds_ada_norm: int | None = None, use_linear_projection: bool = False, only_cross_attention: bool = False, double_self_attention: bool = False, upcast_attention: bool = False, norm_type: str = 'layer_norm', norm_elementwise_affine: bool = True, norm_eps: float = 1e-05, attention_type: str = 'default', caption_channels: int = None, interpolation_scale: float = None, use_additional_conditions: bool | None = None)

المصدر

المعاملات:

num_attention_heads (int، اختياري، القيمة الافتراضية 16) : عدد الرؤوس المستخدمة في الانتباه متعدد الرؤوس.

attention_head_dim (int، اختياري، القيمة الافتراضية 88) : عدد القنوات في كل رأس.

in_channels (int، اختياري) : عدد القنوات في المدخلات والمخرجات (حدد إذا كانت المدخلات مستمرة).

num_layers (int، اختياري، القيمة الافتراضية 1) : عدد طبقات كتل Transformer التي سيتم استخدامها.

dropout (float، اختياري، القيمة الافتراضية 0.0) : احتمال الإسقاط (dropout) المستخدم.

cross_attention_dim (int، اختياري) : عدد أبعاد encoder_hidden_states التي سيتم استخدامها.

sample_size (int, اختياري) : عرض الصور الكامنة (يُحدد إذا كان الإدخال منفصلاً). هذا ثابت أثناء التدريب لأنه يُستخدم لتعلم عدد من تضمينات المواقع.

num_vector_embeds (int, اختياري) : عدد فئات التضمينات المتجهية للبيكسلات الكامنة (يُحدد إذا كان الإدخال منفصلاً). يتضمن فئة البيكسل الكامن المقنّع.

activation_fn (str، اختياري، القيمة الافتراضية "geglu") : دالة التنشيط المستخدمة في الشبكة العصبية الأمامية.

num_embeds_ada_norm ( int, اختياري) : عدد خطوات الانتشار المستخدمة أثناء التدريب. مرّرها إذا كان على الأقل أحد طبقات norm_layers هو AdaLayerNorm. هذا العدد ثابت أثناء التدريب لأنه يُستخدم لتعلم عدد من التضمينات التي تُضاف إلى الحالات المخفية. أثناء الاستدلال، يمكنك إزالة الضوضاء لعدد خطوات لا يتجاوز num_embeds_ada_norm.

attention_bias (bool، اختياري) : يحدد ما إذا كان يجب أن يحتوي انتباه TransformerBlocks على معامل انحياز.

نموذج Transformer ثنائي الأبعاد للبيانات المشابهة للصور.

forward[[diffusers.Transformer2DModel.forward]]

forward(hidden_states: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, timestep: typing.Optional[torch.LongTensor] = None, added_cond_kwargs: dict[str, torch.Tensor] = None, class_labels: typing.Optional[torch.LongTensor] = None, cross_attention_kwargs: dict[str, typing.Any] = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.Tensor] = None, return_dict: bool = True)

المصدر

المعاملات:

hidden_states (torch.LongTensor من الشكل (batch size, num latent pixels) إذا كانت منفصلة، torch.Tensor من الشكل (batch size, channel, height, width) إذا كانت مستمرة) : مدخلات hidden_states.

encoder_hidden_states ( torch.Tensor من الشكل (batch size, sequence len, embed dims), اختياري) : تمثيلات شرطية لطبقة الانتباه المتقاطع. إذا لم تُقدَّم، فإن الانتباه المتقاطع يتحول افتراضيًا إلى الانتباه الذاتي.

timestep ( torch.LongTensor, اختياري) : يُستخدم للإشارة إلى خطوة إزالة الضوضاء. خطوة زمنية اختيارية تُطبَّق كتضمين في AdaLayerNorm.

class_labels ( torch.LongTensor من الشكل (batch size, num classes), اختياري) : يُستخدم للإشارة إلى تكييف تسميات الفئات. تسميات فئات اختيارية تُطبَّق كتضمين في AdaLayerZeroNorm.

cross_attention_kwargs ( dict[str, Any], اختياري) : قاموس kwargs يُمرَّر إلى AttentionProcessor إذا تم تحديده، كما هو معرَّف تحت self.processor في diffusers.models.attention_processor.

attention_mask ( torch.Tensor, اختياري) : يُطبَّق قناع انتباه على encoder_hidden_states بشكل (batch, key_tokens). إذا كان 1 يُحافظ على القناع، وإلا إذا كان 0 يُستبعد. سيُحوَّل القناع إلى انحياز، يضيف قيمًا سالبة كبيرة إلى درجات الانتباه المقابلة لرموز "الاستبعاد".

encoder_attention_mask ( torch.Tensor, اختياري) : قناع الانتباه المتقاطع المطبّق على encoder_hidden_states. يتم دعم صيغتين: * قناع (batch, sequence_length) حيث True = الإبقاء، False = التخلّي. * انحياز (batch, 1, sequence_length) حيث 0 = الإبقاء، -10000 = التخلّي. إذا كان ndim == 2: سيتم تفسيره كقناع، ثم تحويله إلى انحياز متوافق مع الصيغة المذكورة أعلاه. سيُضاف هذا الانحياز إلى درجات الانتباه المتقاطع.

return_dict (bool، اختياري، القيمة الافتراضية True) : ما إذا كان يجب إرجاع UNet2DConditionOutput بدلاً من tuple عادي.

يعيد:

إذا كان return_dict صحيحًا، يُعاد Transformer2DModelOutput، وإلا يُعاد tuple يكون عنصره الأول هو متجه العينة.

طريقة Transformer2DModel الأمامية.

Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)

المصدر

المعاملات:

sample (torch.Tensor من الشكل (batch_size, num_channels, height, width) أو (batch size, num_vector_embeds - 1, num_latent_pixels) إذا كان Transformer2DModel منفصلاً): مخرجات الحالات المخفية المشروطة على مدخل encoder_hidden_states. إذا كان منفصلاً، يعيد توزيعات الاحتمال للبكسلات الكامنة غير الملوثة.

مخرجات Transformer2DModel.

Xet Storage Details

Size:
9.71 kB
·
Xet hash:
3f362e4ea9f4e6541c4f61d404cd8c2ad65545f17a90ffc2ee7e1df54fa2c6f3

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.