Diffusers documentation

TransformerTemporalModel

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

TransformerTemporalModel

用于类视频数据的 Transformer 模型。

TransformerTemporalModel

class diffusers.TransformerTemporalModel

< >

( 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 = Noneactivation_fn: str = 'geglu'norm_elementwise_affine: bool = Truedouble_self_attention: bool = Truepositional_embeddings: str | None = Nonenum_positional_embeddings: int | 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 维度数量。
  • attention_bias (bool, 可选) — 配置 TransformerBlock 的注意力机制是否包含偏置参数。
  • sample_size (int, 可选) — 潜在图像的宽度(如果输入为 discrete,则需指定)。 由于该值用于学习位置嵌入的数量,因此在训练过程中是固定的。
  • activation_fn (str, 可选,默认为 "geglu") — 前馈网络中使用的激活函数。支持的激活函数请参见 diffusers.models.activations.get_activation。
  • norm_elementwise_affine (bool, 可选) — 配置 TransformerBlock 是否使用可学习的逐元素仿射参数进行归一化。
  • double_self_attention (bool, 可选) — 配置每个 TransformerBlock 是否应包含两个自注意力层。
  • positional_embeddings — (str, 可选): 在将序列输入传递使用前,应用于该序列的位置嵌入类型。
  • num_positional_embeddings — (int,可选): 应用位置嵌入的序列最大长度。

用于类视频数据的 Transformer 模型。

forward

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.LongTensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneclass_labels: LongTensor = Nonenum_frames: int = 1cross_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True ) → TransformerTemporalModelOutput or tuple

参数

  • hidden_states(如果为离散值,则为形状为 (batch size, num latent pixels) 的 torch.LongTensor;如果为连续值,则为形状为 (batch size, channel, height, width) 的 torch.Tensor) — 输入的 hidden_states。
  • encoder_hidden_states ( torch.LongTensor,形状为 (batch size, encoder_hidden_states dim),可选) — 用于交叉注意力层的条件嵌入。如果未提供,交叉注意力将默认为自注意力。
  • timestep ( torch.LongTensor, 可选) — 用于指示去噪步骤。作为嵌入应用于 AdaLayerNorm 的可选时间步。
  • class_labels ( torch.LongTensor,形状为 (batch size, num classes),可选) — 用于指示类别标签条件。作为嵌入应用于 AdaLayerZeroNorm 的可选类别标签。
  • num_frames (int, 可选,默认为 1) — 每个批次中要处理的帧数。此参数用于重塑隐藏状态。
  • cross_attention_kwargs (dict, 可选) — 一个 kwargs 字典,如果指定,将作为参数传递给 diffusers.models.attention_processor 中 self.processor 下定义的 AttentionProcessor。
  • return_dict (bool,可选,默认为 True) — 是否返回 TransformerTemporalModelOutput 而不是普通元组。

返回值

TransformerTemporalModelOutput 或 tuple

如果 return_dict 为 True,则返回一个 TransformerTemporalModelOutput,否则返回一个 tuple,其中第一个元素是样本张量。

TransformerTemporal 的前向方法。

TransformerTemporalModelOutput

class diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput

< >

( sample: Tensor )

参数

  • sample (torch.Tensor,形状为 (batch_size x num_frames, num_channels, height, width)) — 基于 encoder_hidden_states 输入条件生成的隐藏状态输出。

TransformerTemporalModel 的输出。

Update on GitHub