# RFD4ProteinaScheduler

`RFD4ProteinaScheduler` é o amostrador de fluxo com reescalonamento da pontuação temporal do RFD4-Proteína para uma modalidade. O pipeline utiliza duas instâncias, uma para o backbone (`bb_ca`, coordenadas em nanômetros) e outra para os latentes locais por token (`local_latents`), cada uma com seu próprio cronograma de tempo, cronograma de ruído e reescalonamento. Consulte [RFD4ProteinaPipeline](/docs/diffusers/v0.43.0/pt/api/pipelines/rfd4_proteina#diffusers.RFD4ProteinaPipeline) para o loop de amostragem.

## RFD4ProteinaScheduler[[diffusers.RFD4ProteinaScheduler]]

#### diffusers.RFD4ProteinaScheduler[[diffusers.RFD4ProteinaScheduler]]

```python
diffusers.RFD4ProteinaScheduler(schedule_mode: str, noise_mode: str, tsr_k: float, tsr_sigma: float, tail_steps: int = 10, tail_step_multiplier: int = 2, t_lim_ode: float = 0.95, t_lim_ode_below: float = 0.02)
```

[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L76)

**Parâmetros:**

schedule_mode (`str`) : Espaçamento dos tempos entre ruído e dados: `"log"` ou `"power"`.

noise_mode (`str`) : Forma do ruído injetado na janela estocástica: `"1/t"` ou `"tan"`.

tsr_k (`float`) : Quão baixa é a temperatura de amostragem; quanto maior, mais baixa.

tsr_sigma (`float`) : A velocidade com que a temperatura baixa é atinguída; valores maiores significam mais rápido.

tail_steps (`int`, padrão `10`) : Número de intervalos finais que são mais finos que os demais por `tail_step_multiplier`.

tail_step_multiplier (`int`, padrão `2`) : O quão mais finos são os intervalos finais.

t_lim_ode (`float`, padrão `0.95`) : Acima deste valor, o passo é determinístico.

t_lim_ode_below (`float`, padrão `0.02`) : Abaixo deste tempo, o passo é determinístico.

Amostrador de fluxo com reescalonamento de pontuação temporal para uma modalidade do RFD4-Proteína.

O pipeline integra duas modalidades, o backbone e os latentes locais por token, cada um com um agendador. Eles diferem em seu agendamento de tempo, agendamento de ruído e reescalonamento.

Chame `set_timesteps` antes da amostragem. Os tempos aumentam do ruído em direção aos dados limpos. Um agendador rastreia o intervalo atual e não deve ser compartilhado por gerações concorrentes.

#### set_timesteps[[diffusers.RFD4ProteinaScheduler.set_timesteps]]

```python
set_timesteps(num_inference_steps: int, device: typing.Union[str, torch.device, NoneType] = None, start_time: float | None = None)
```

[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L133)

**Parâmetros:**

num_inference_steps (`int`) : Número de intervalos de integração.

device (`str` ou `torch.device`, *opcional*) : Dispositivo para `timesteps`. Os comprimentos dos intervalos e os coeficientes de ruído permanecem na CPU.

start_time (`float`, *opcional*) : Tempo inicial da difusão parcial em `[0, 1)`. Omita para geração completa.

Resolve o cronograma e reinicia o cursor de integração.

#### add_noise[[diffusers.RFD4ProteinaScheduler.add_noise]]

```python
add_noise(original_samples: Tensor, noise: Tensor, timesteps: typing.Union[float, torch.Tensor])
```

[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L194)

**Parâmetros:**

original_samples (`torch.Tensor`) : Estado limpo `(batch, tokens, D)`.

noise (`torch.Tensor`) : Ruído da mesma forma, gerado pelo chamador.

timesteps (`float` ou `torch.Tensor`) : Tempo em `[0, 1)`, um escalar ou `(batch,)`.

Amostrar a marginal direta `(1 - t) * noise + t * clean`.

#### etapa[[diffusers.RFD4ProteinaScheduler.step]]

```python
step(model_output: Tensor, timestep: Tensor, sample: Tensor, emit_mask: Tensor, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, return_dict: bool = True)
```

[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L212)

**Parâmetros:**

model_output (`torch.Tensor`) : Velocidade prevista, com a mesma forma de `sample`.

timestep (`torch.Tensor`) : O próximo elemento de `timesteps`. Passos fora de ordem são rejeitados.

sample (`torch.Tensor`) : Estado atual `(B, N, D)`.

emit_mask (`torch.Tensor`) : Booleano `(B, N)`, verdadeiro para os tokens que são atualizados (não são contexto nem padding).

generator (`torch.Generator` ou `list[torch.Generator]`, *opcional*) : Um gerador para uma única linha ou geradores distintos para cada linha do lote. Omiti-los usa o fluxo global.

return_dict (`bool`, padrão `True`) : Retorna `RFD4ProteinaSchedulerOutput`; caso contrário, uma tupla de um item contendo o estado.

**Retorna:** `RFD4ProteinaSchedulerOutput` ou `tuple`

O estado atualizado.

Avance um intervalo de integração e atualize `step_index`.

## RFD4ProteinaSchedulerOutput[[diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput]]

#### diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput[[diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput]]

```python
diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput(prev_sample: Tensor)
```

[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L19)

**Parâmetros:**

prev_sample (`torch.Tensor`) : O estado após o passo, com forma `(B, N, D)`: `D` é 3 para o backbone (coordenadas em nanômetros) e a largura latente para os latentes locais.

Estado atualizado de uma modalidade.

