Diffusers documentation
DiTTransformer2DModel
DiTTransformer2DModel
DiT의 이미지형 데이터용 Transformer 모델입니다.
DiTTransformer2DModel
클래스 diffusers.DiTTransformer2DModel
< source >( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = Nonenum_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32attention_bias: bool = Truesample_size: int = 32patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_zero'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-05 )
매개변수
- num_attention_heads (int, optional, 기본값 16) — 멀티헤드 어텐션에 사용할 헤드 수입니다.
- attention_head_dim (int, optional, 기본값 72) — 각 헤드당 채널 수.
- in_channels (int, 기본값 4) — 입력의 채널 수입니다.
- out_channels (int, optional) — 출력의 채널 수입니다. 입력과 출력의 채널 수가 다른 경우 이 매개변수를 지정하세요.
- num_layers (int, optional, 기본값 28) — 사용할 Transformer 블록의 레이어 수입니다.
- dropout (float, optional, 기본값 0.0) — Transformer 블록 내에서 사용할 dropout 확률입니다.
- norm_num_groups (int, optional, 기본값 32) — Transformer 블록 내에서 그룹 정규화에 사용할 그룹 수.
- attention_bias (bool, optional, 기본값 True) — Transformer 블록의 attention에 bias 매개변수를 포함할지 설정합니다.
- sample_size (int, 기본값 32) — 잠재 이미지(latent images)의 너비입니다. 이 매개변수는 학습 중에 고정됩니다.
- patch_size (int, 기본값 2) — 모델이 처리하는 패치의 크기입니다. 순차적이지 않은 데이터를 다루는 아키텍처에 관련이 있습니다.
- activation_fn (str, optional, 기본값 “gelu-approximate”) — Transformer 블록 내 피드포워드 네트워크에 사용할 활성화 함수.
- num_embeds_ada_norm (int, optional, 기본값 1000) — AdaLayerNorm에 사용되는 임베딩의 수입니다. 학습 중에 고정되며 추론 시 최대 디노이징 스텝에 영향을 줍니다.
- upcast_attention (bool, optional, 기본값 False) — true인 경우, 성능 향상을 위해 attention 메커니즘의 차원을 upcast합니다.
- norm_type (str, optional, 기본값 “ada_norm_zero”) — 사용할 정규화 유형을 지정하며, ‘ada_norm_zero’를 사용할 수 있습니다.
- norm_elementwise_affine (bool, optional, 기본값 False) — true인 경우, 정규화 레이어에서 요소별 affine 매개변수를 활성화합니다.
- norm_eps (float, optional, 기본값 1e-5) — 0으로 나누는 것을 방지하기 위해 정규화 레이어의 분모에 추가되는 작은 상수입니다.
DiT(https://huggingface.co/papers/2212.09748)에서 소개한 2D Transformer 모델입니다.
forward
< source >( hidden_states: Tensortimestep: typing.Optional[torch.LongTensor] = Noneclass_labels: typing.Optional[torch.LongTensor] = Nonecross_attention_kwargs: dict = Nonereturn_dict: bool = True )
매개변수
- hidden_states (
torch.LongTensor, 이산인 경우(batch size, num latent pixels)형태, 연속인 경우torch.FloatTensor,(batch size, channel, height, width)형태) — 입력hidden_states. - timestep (
torch.LongTensor, 선택 사항) — 디노이징 단계를 나타내는 데 사용됩니다.AdaLayerNorm에서 임베딩으로 적용될 선택적 timestep입니다. - class_labels (
torch.LongTensor, shape(batch size, num classes), 선택 사항) — 클래스 레이블 조건화를 나타내는 데 사용됩니다.AdaLayerZeroNorm에서 임베딩으로 적용될 선택적 클래스 레이블입니다. - cross_attention_kwargs (
dict[str, Any], 선택) — 지정된 경우 diffusers.models.attention_processor의self.processor에서 정의된AttentionProcessor로 전달되는 kwargs 사전입니다. - return_dict (
bool, 선택 사항, 기본값True) — 단순 tuple 대신 UNet2DConditionOutput를 반환할지 여부.
DiTTransformer2DModel의 forward 메서드입니다.