Buckets:
Transformer2DModel
Một mô hình Transformer cho dữ liệu dạng ảnh từ CompVis, dựa trên Vision Transformer do Dosovitskiy et al. giới thiệu. Transformer2DModel chấp nhận đầu vào rời rạc (các lớp của vector nhúng) hoặc liên tục (các vector nhúng thực).
Khi đầu vào là liên tục:
- Chiếu đầu vào và định dạng lại thành
(batch_size, sequence_length, feature_dimension). - Áp dụng các khối Transformer theo cách tiêu chuẩn.
- Định dạng lại thành ảnh.
Khi đầu vào là rời rạc:
Giả định rằng một trong các lớp đầu vào là pixel tiềm ẩn bị che. Các lớp dự đoán của hình ảnh không nhiễu không chứa dự đoán cho pixel bị che vì hình ảnh không nhiễu không thể bị che.
- Chuyển đổi đầu vào (các lớp pixel tiềm ẩn) thành các embedding và áp dụng các embedding vị trí.
- Áp dụng các khối Transformer theo cách tiêu chuẩn.
- Dự đoán các lớp của ảnh không nhiễu.
Transformer2DModel[[diffusers.Transformer2DModel]]
diffusers.Transformer2DModel[[diffusers.Transformer2DModel]]
diffusers.Transformer2DModel(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, num_vector_embeds: int | None = None, patch_size: int | None = None, activation_fn: str = 'geglu', num_embeds_ada_norm: int | None = None, use_linear_projection: bool = False, only_cross_attention: bool = False, double_self_attention: bool = False, upcast_attention: bool = False, norm_type: str = 'layer_norm', norm_elementwise_affine: bool = True, norm_eps: float = 1e-05, attention_type: str = 'default', caption_channels: int = None, interpolation_scale: float = None, use_additional_conditions: bool | None = None)
Tham số:
num_attention_heads (int, tuỳ chọn, mặc định là 16) : Số lượng đầu (heads) được sử dụng cho chú ý đa đầu (multi-head attention).
attention_head_dim (int, tùy chọn, mặc định là 88) : Số lượng kênh trong mỗi đầu.
in_channels (int, tuỳ chọn) : Số lượng kênh trong đầu vào và đầu ra (cần chỉ định nếu đầu vào là liên tục).
num_layers (int, tuỳ chọn, mặc định là 1) : Số lượng lớp khối Transformer cần sử dụng.
dropout (float, tuỳ chọn, mặc định là 0.0) : Xác suất dropout cần sử dụng.
cross_attention_dim (int, optional) : Số chiều của encoder_hidden_states cần sử dụng.
sample_size (int, tuỳ chọn) : Độ rộng của các ảnh tiềm ẩn (cần chỉ định nếu đầu vào là rời rạc). Giá trị này được cố định trong quá trình huấn luyện vì nó được dùng để học một số lượng embedding vị trí.
num_vector_embeds (int, tuỳ chọn) : Số lượng lớp của các vector nhúng của các pixel tiềm ẩn (cần chỉ định nếu đầu vào là rời rạc). Bao gồm cả lớp cho pixel tiềm ẩn bị che.
activation_fn (str, tùy chọn, mặc định là "geglu") : Hàm kích hoạt được sử dụng trong mạng truyền thẳng.
num_embeds_ada_norm ( int, optional) : Số bước khuếch tán được sử dụng trong quá trình huấn luyện. Truyền tham số này nếu ít nhất một trong các norm_layers là AdaLayerNorm. Giá trị này được cố định trong quá trình huấn luyện vì nó được dùng để học một số lượng embedding nhất định, các embedding này sẽ được cộng vào các trạng thái ẩn. Trong quá trình suy luận, bạn có thể khử nhiễu với số bước không vượt quá num_embeds_ada_norm.
attention_bias (bool, tùy chọn) : Cấu hình xem chú ý của TransformerBlocks có nên chứa tham số bias hay không.
Mô hình Transformer 2D cho dữ liệu dạng ảnh.
forward[[diffusers.Transformer2DModel.forward]]
forward(hidden_states: Tensor, encoder_hidden_states: typing.Optional[torch.Tensor] = None, timestep: typing.Optional[torch.LongTensor] = None, added_cond_kwargs: dict[str, torch.Tensor] = None, class_labels: typing.Optional[torch.LongTensor] = None, cross_attention_kwargs: dict[str, typing.Any] = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_attention_mask: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
Tham số:
hidden_states (torch.LongTensor có hình dạng (batch size, num latent pixels) nếu rời rạc, torch.Tensor có hình dạng (batch size, channel, height, width) nếu liên tục) : hidden_states đầu vào.
encoder_hidden_states ( torch.Tensor có shape (batch size, sequence len, embed dims), optional) : Các embedding điều kiện cho lớp cross attention. Nếu không được cung cấp, cross-attention sẽ mặc định là self-attention.
timestep ( torch.LongTensor, tùy chọn) : Dùng để chỉ bước khử nhiễu. Timestep tùy chọn được áp dụng dưới dạng embedding trong AdaLayerNorm.
class_labels ( torch.LongTensor có shape (batch size, num classes), tuỳ chọn) : Dùng để chỉ định điều kiện nhãn lớp. Các nhãn lớp tuỳ chọn sẽ được áp dụng dưới dạng embedding trong AdaLayerZeroNorm.
cross_attention_kwargs ( dict[str, Any], tùy chọn) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến AttentionProcessor như đã định nghĩa dưới self.processor trong diffusers.models.attention_processor.
attention_mask ( torch.Tensor, tùy chọn) : Một attention mask có shape (batch, key_tokens) được áp dụng cho encoder_hidden_states. Nếu 1, mask được giữ lại, ngược lại nếu 0, nó sẽ bị loại bỏ. Mask sẽ được chuyển đổi thành một bias, thêm các giá trị âm lớn vào các điểm attention tương ứng với các token "loại bỏ".
encoder_attention_mask ( torch.Tensor, tùy chọn) : Mặt nạ chú ý chéo (cross-attention mask) được áp dụng cho encoder_hidden_states. Hỗ trợ hai định dạng: * Mặt nạ (batch, sequence_length) True = giữ lại, False = loại bỏ. * Thiên lệch (bias) (batch, 1, sequence_length) 0 = giữ lại, -10000 = loại bỏ. Nếu ndim == 2: sẽ được hiểu là một mặt nạ, sau đó được chuyển đổi thành một thiên lệch nhất quán với định dạng ở trên. Thiên lệch này sẽ được cộng vào các điểm chú ý chéo (cross-attention scores).
return_dict (bool, tùy chọn, mặc định là True) : Có nên trả về một UNet2DConditionOutput thay vì một tuple thông thường hay không.
Trả về:
Nếu return_dict là True, một Transformer2DModelOutput sẽ được trả về, ngược lại một tuple sẽ được trả về trong đó phần tử đầu tiên là tensor mẫu.
Phương thức forward của Transformer2DModel.
Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
Tham số:
sample (torch.Tensor có shape (batch_size, num_channels, height, width) hoặc (batch size, num_vector_embeds - 1, num_latent_pixels) nếu Transformer2DModel là discrete) : Đầu ra của hidden states được điều kiện bởi đầu vào encoder_hidden_states. Nếu là discrete, trả về các phân phối xác suất cho các latent pixels chưa bị nhiễu.
Đầu ra của Transformer2DModel.
Xet Storage Details
- Size:
- 9.12 kB
- Xet hash:
- e01b31f8f78a9095b90700645d5a8e936ff2330e0807577a72a6d14005bb8053
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.