Diffusers documentation

TransformerTemporalModel

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