Diffusers documentation
TransformerTemporalModel
TransformerTemporalModel
用于类视频数据的 Transformer 模型。
TransformerTemporalModel
class diffusers.TransformerTemporalModel
< 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 = 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
< source >( 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
< source >( sample: Tensor )