Diffusers documentation

Transformer2DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Transformer2DModel

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

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

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

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

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

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

Transformer2DModel

فئة diffusers.Transformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 88in_channels: int | None = Noneout_channels: int | None = Nonenum_layers: int = 1dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = Noneattention_bias: bool = Falsesample_size: int | None = Nonenum_vector_embeds: int | None = Nonepatch_size: int | None = Noneactivation_fn: str = 'geglu'num_embeds_ada_norm: int | None = Noneuse_linear_projection: bool = Falseonly_cross_attention: bool = Falsedouble_self_attention: bool = Falseupcast_attention: bool = Falsenorm_type: str = 'layer_norm'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05attention_type: str = 'default'caption_channels: int = Noneinterpolation_scale: float = Noneuse_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

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict = Noneclass_labels: typing.Optional[torch.LongTensor] = Nonecross_attention_kwargs: dict = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_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)، اختياري) — يُستخدم للإشارة إلى تسميات الفئات الشرطية. تسميات فئات اختيارية تُطبَّق كتمثيل مضمّن (embedding) في AdaLayerZeroNorm.
  • cross_attention_kwargs ( dict[str, Any], اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • attention_mask ( torch.Tensor, اختياري) — قناع انتباه (attention mask) بأبعاد (batch, key_tokens) يُطبَّق على encoder_hidden_states. إذا كان 1 يُحفظ القناع، وإلا إذا كان 0 يُستبعد. يُحوَّل القناع إلى انحياز (bias) يضيف قيمًا سالبة كبيرة إلى درجات الانتباه المقابلة لرموز “الاستبعاد”.
  • 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 عادي.

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

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.

Update on GitHub