Diffusers 文件
DiTTransformer2DModel
並獲得增強的文件體驗
開始使用
DiTTransformer2DModel
來自 DiT 的影像類資料的 Transformer 模型。
DiTTransformer2DModel
class diffusers.DiTTransformer2DModel
< 來源 >( num_attention_heads: int = 16 attention_head_dim: int = 72 in_channels: int = 4 out_channels: typing.Optional[int] = None num_layers: int = 28 dropout: float = 0.0 norm_num_groups: int = 32 attention_bias: bool = True sample_size: int = 32 patch_size: int = 2 activation_fn: str = 'gelu-approximate' num_embeds_ada_norm: typing.Optional[int] = 1000 upcast_attention: bool = False norm_type: str = 'ada_norm_zero' norm_elementwise_affine: bool = False norm_eps: float = 1e-05 )
引數
- num_attention_heads (int, 可選,預設為 16) — 用於多頭注意力機制的頭數量。
- attention_head_dim (int, 可選,預設為 72) — 每個頭的通道數。
- in_channels (int, 預設為 4) — 輸入的通道數。
- out_channels (int, 可選) — 輸出的通道數。如果輸出通道數與輸入不同,則指定此引數。
- num_layers (int, 可選,預設為 28) — 要使用的 Transformer 塊層數。
- dropout (float, 可選,預設為 0.0) — 在 Transformer 塊中使用的 dropout 機率。
- norm_num_groups (int, 可選,預設為 32) — Transformer 塊中用於組歸一化的組數。
- attention_bias (bool, 可選,預設為 True) — 配置 Transformer 塊的注意力機制是否包含偏置引數。
- sample_size (int, 預設為 32) — 潛在影像的寬度。此引數在訓練期間是固定的。
- patch_size (int, 預設為 2) — 模型處理的補丁大小,與處理非序列資料的架構相關。
- activation_fn (str, 可選,預設為 “gelu-approximate”) — 在 Transformer 塊的前饋網路中使用的啟用函式。
- num_embeds_ada_norm (int, 可選,預設為 1000) — AdaLayerNorm 的嵌入數量,在訓練期間固定,並影響推理期間的最大去噪步數。
- upcast_attention (bool, 可選,預設為 False) — 如果為 True,則向上轉換注意力機制的維度,以提高效能。
- norm_type (str, 可選,預設為 “ada_norm_zero”) — 指定使用的歸一化型別,可以是 “ada_norm_zero”。
- norm_elementwise_affine (bool, 可選,預設為 False) — 如果為 True,則在歸一化層中啟用逐元素仿射引數。
- norm_eps (float, 可選,預設為 1e-5) — 新增到歸一化層分母中的小常數,以防止除以零。
DiT (https://huggingface.co/papers/2212.09748) 中引入的 2D Transformer 模型。
forward
< 來源 >( hidden_states: Tensor timestep: typing.Optional[torch.LongTensor] = None class_labels: typing.Optional[torch.LongTensor] = None cross_attention_kwargs: typing.Dict[str, typing.Any] = None return_dict: bool = True )
引數
- hidden_states (如果離散,形狀為
(batch size, num latent pixels)
的torch.LongTensor
;如果連續,形狀為(batch size, channel, height, width)
的torch.FloatTensor
) — 輸入hidden_states
。 - timestep (
torch.LongTensor
, 可選) — 用於指示去噪步驟。可選的時間步,作為嵌入應用到AdaLayerNorm
。 - class_labels (形狀為
(batch size, num classes)
的torch.LongTensor
, 可選) — 用於指示類別標籤條件。可選的類別標籤,作為嵌入應用到AdaLayerZeroNorm
。 - cross_attention_kwargs (
Dict[str, Any]
, 可選) — 一個 kwargs 字典,如果指定,將作為引數傳遞給 diffusers.models.attention_processor 中定義的self.processor
的AttentionProcessor
。 - return_dict (
bool
, 可選, 預設為True
) — 是否返回 UNet2DConditionOutput 而不是普通元組。
的 DiTTransformer2DModel 前向方法。