Buckets:
Transformer2DModel
Модель Transformer для изображений от CompVis, основанная на Vision Transformer, предложенном Dosovitskiy et al. Transformer2DModel принимает дискретные (классы векторных эмбеддингов) или непрерывные (собственно эмбеддинги) входные данные.
Когда вход является непрерывным:
- Проекция входных данных и изменение их формы до
(batch_size, sequence_length, feature_dimension). - Примените блоки Transformer стандартным способом.
- Изменение формы в изображение.
Когда вход является дискретным:
Предполагается, что один из входных классов представляет собой замаскированный латентный пиксель. Предсказанные классы для изображения без шума не содержат предсказания для замаскированного пикселя, поскольку изображение без шума не может быть замаскировано.
- Преобразовать вход (классы латентных пикселей) в эмбеддинги и применить позиционные эмбеддинги.
- Примените блоки Transformer стандартным способом.
- Предсказать классы изображения без шума.
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)
Параметры:
num_attention_heads (int, optional, по умолчанию 16) : Количество головок для использования в механизме внимания с несколькими головками.
attention_head_dim (int, необязательный, по умолчанию 88) : Количество каналов в каждой голове.
in_channels (int, необязательный) : Количество каналов на входе и выходе (указывается, если вход является непрерывным).
num_layers (int, необязательный, по умолчанию 1) : Количество блоков Transformer, используемых в модели.
dropout (float, необязательный, по умолчанию 0.0) : Вероятность dropout, которую следует использовать.
cross_attention_dim (int, optional) : Количество измерений encoder_hidden_states, которые следует использовать.
sample_size (int, необязательный) : Ширина латентных изображений (указывается, если вход дискретный). Это значение фиксировано во время обучения, поскольку используется для обучения набора позиционных эмбеддингов.
num_vector_embeds (int, optional) : Количество классов векторных эмбеддингов латентных пикселей (указывается, если вход дискретный). Включает класс для замаскированного латентного пикселя.
activation_fn (str, необязательный, по умолчанию "geglu") : Функция активации, используемая в полносвязном слое.
num_embeds_ada_norm ( int, optional) : Количество шагов диффузии, используемых во время обучения. Укажите, если хотя бы один из norm_layers является AdaLayerNorm. Это значение фиксировано во время обучения, поскольку используется для обучения набора эмбеддингов, добавляемых к скрытым состояниям. Во время инференса вы можете выполнять денуазинг не более чем за num_embeds_ada_norm шагов.
attention_bias (bool, необязательный) : Настройка того, должен ли параметр смещения (bias) присутствовать в механизме внимания TransformerBlocks.
Двумерная модель Transformer для данных, похожих на изображения.
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)
Параметры:
hidden_states (torch.LongTensor формы (batch size, num latent pixels) для дискретных, torch.Tensor формы (batch size, channel, height, width) для непрерывных) : входные hidden_states.
encoder_hidden_states ( torch.Tensor формы (batch size, sequence len, embed dims), optional) : Условные эмбеддинги для слоя кросс-внимания. Если не заданы, кросс-внимание по умолчанию работает как само-внимание.
timestep ( torch.LongTensor, необязательный) : Используется для указания шага денойзинга. Необязательный временной шаг, применяемый как эмбеддинг в AdaLayerNorm.
class_labels ( torch.LongTensor формы (batch size, num classes), необязательный) : Используется для указания условий по классам. Необязательные метки классов, применяемые как эмбеддинг в AdaLayerZeroNorm.
cross_attention_kwargs ( dict[str, Any], необязательный) : Словарь kwargs, который при указании передаётся в AttentionProcessor, определённый в self.processor в diffusers.models.attention_processor.
attention_mask ( torch.Tensor, необязательный) : маска внимания формы (batch, key_tokens) применяется к encoder_hidden_states. Если значение равно 1, маска сохраняется, иначе, если равно 0, она отбрасывается. Маска преобразуется в смещение (bias), которое добавляет большие отрицательные значения к оценкам внимания, соответствующим токенам, подлежащим отбрасыванию.
encoder_attention_mask ( torch.Tensor, необязательный) : Маска кросс-внимания, применяемая к encoder_hidden_states. Поддерживаются два формата: * Маска (batch, sequence_length) True = сохранить, False = отбросить. * Смещение (batch, 1, sequence_length) 0 = сохранить, -10000 = отбросить. Если ndim == 2: значение будет интерпретировано как маска, а затем преобразовано в смещение, соответствующее описанному выше формату. Это смещение будет добавлено к оценкам кросс-внимания.
return_dict (bool, необязательный, по умолчанию True) : Возвращать ли UNet2DConditionOutput вместо обычного кортежа.
Возвращает:
Если return_dict равно True, возвращается Transformer2DModelOutput, иначе — tuple, первым элементом которого является тензор выборки.
Метод forward модели 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)
Параметры:
sample (torch.Tensor формы (batch_size, num_channels, height, width) или (batch size, num_vector_embeds - 1, num_latent_pixels), если Transformer2DModel дискретный): выходные скрытые состояния, обусловленные входом encoder_hidden_states. Если модель дискретная, возвращает распределения вероятностей для ненашумленных латентных пикселей.
Вывод Transformer2DModel.
Xet Storage Details
- Size:
- 11.4 kB
- Xet hash:
- 4e4a934b3db53484ae4d0618c56c2dcc33d1336361f78b528251ff0ffea98f69
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.