# TransformerTemporalModel

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

## TransformerTemporalModel[[diffusers.TransformerTemporalModel]]

#### diffusers.TransformerTemporalModel[[diffusers.TransformerTemporalModel]]

```python
diffusers.TransformerTemporalModel(num_attention_heads: int = 16, attention_head_dim: int = 88, in_channels: int | None = None, out_channels: int | None = None, num_layers: int = 1, dropout: float = 0.0, norm_num_groups: int = 32, cross_attention_dim: int | None = None, attention_bias: bool = False, sample_size: int | None = None, activation_fn: str = 'geglu', norm_elementwise_affine: bool = True, double_self_attention: bool = True, positional_embeddings: str | None = None, num_positional_embeddings: int | None = None)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_temporal.py#L41)

**参数：**

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[[diffusers.TransformerTemporalModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: typing.Optional[torch.LongTensor] = None, timestep: typing.Optional[torch.LongTensor] = None, class_labels: LongTensor = None, num_frames: int = 1, cross_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_temporal.py#L123)

**参数：**

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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) 中 `self.processor` 下定义的 `AttentionProcessor`。

return_dict (`bool`，*可选*，默认为 `True`)：是否返回 [TransformerTemporalModelOutput](/docs/diffusers/v0.43.0/zh/api/models/transformer_temporal#diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput) 而不是普通元组。

**返回：** [TransformerTemporalModelOutput](/docs/diffusers/v0.43.0/zh/api/models/transformer_temporal#diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput) 或 `tuple`

如果 `return_dict` 为 True，则返回 [TransformerTemporalModelOutput](/docs/diffusers/v0.43.0/zh/api/models/transformer_temporal#diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput)，否则返回一个 `tuple`，其中第一个元素是样本张量。

`TransformerTemporal` 的前向方法。

## TransformerTemporalModelOutput[[diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput]]

#### diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput[[diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput]]

```python
diffusers.models.transformers.transformer_temporal.TransformerTemporalModelOutput(sample: Tensor)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_temporal.py#L29)

**参数：**

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

[TransformerTemporalModel](/docs/diffusers/v0.43.0/zh/api/models/transformer_temporal#diffusers.TransformerTemporalModel) 的输出。

