Diffusers documentation
Transformer2DModel
Transformer2DModel
نموذج Transformer لبيانات تشبه الصور من CompVis يعتمد على Vision Transformer الذي قدمه Dosovitskiy وآخرون. يقبل Transformer2DModel مدخلات منفصلة (فئات من تضمينات المتجهات) أو مستمرة (تضمينات فعلية).
عندما يكون الإدخال مستمراً:
- قِمْ بإسقاط المدخل وإعادة تشكيله إلى
(batch_size, sequence_length, feature_dimension). - طبّق كتل Transformer بالطريقة القياسية.
- إعادة تشكيل إلى صورة.
عندما يكون الإدخال منفصلاً:
يُفترض أن أحد فئات الإدخال هو البكسل الكامن المقنّع. لا تحتوي الفئات المتنبأ بها للصورة غير الملوّثة على تنبؤ للبكسل المقنّع، لأن الصورة غير الملوّثة لا يمكن تقنيعها.
- تحويل المدخلات (فئات البكسلات الكامنة) إلى تمثيلات وتطبيق تمثيلات موضعية.
- طبّق كتل Transformer بالطريقة القياسية.
- توقّع فئات الصورة غير المُضجّبة.
Transformer2DModel
فئة diffusers.Transformer2DModel
< source >( 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
< source >( 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
< source >( 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.