# RFD4ProteinaScheduler

`RFD4ProteinaScheduler` は、RFD4-Proteína の単一モダリティ向けの temporal-score-rescaled flow sampler です。この pipeline は 2 つのインスタンスを使用します。1 つは backbone（`bb_ca`、座標はナノメートル単位）用、もう 1 つはトークンごとのローカル潜在変数（`local_latents`）用です。それぞれに独自の時間スケジュール、ノイズスケジュール、およびリスケールが適用されます。サンプリングループの詳細については、[RFD4ProteinaPipeline](/docs/diffusers/v0.43.0/ja/api/pipelines/rfd4_proteina#diffusers.RFD4ProteinaPipeline) を参照してください。

## 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)
```

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

**パラメータ:**

schedule_mode (`str`) : ノイズとデータの間の時間の間隔: `"log"` または `"power"`。

noise_mode (`str`) : 確率的ウィンドウに注入されるノイズの形状: `"1/t"` または `"tan"`。

tsr_k (`float`) : サンプリング温度がどの程度まで下がるかを指定します。値が大きいほど、温度は低くなります。

tsr_sigma (`float`) : 低温に到達するまでの速さを示します。値が大きいほど速くなります。

tail_steps (`int`、デフォルトは`10`) : `tail_step_multiplier`によって、他の区間よりも細かくされる最後の区間の数。

tail_step_multiplier (`int`、デフォルトは`2`) : 最終的な区間をどの程度細かくするかを示します。

t_lim_ode (`float`、デフォルトは`0.95`) : この値を超えると、ステップは決定論的になります。

t_lim_ode_below (`float`、デフォルトは`0.02`) : この値未満の時間では、ステップは決定論的になります。

RFD4-Proteínaの1つのモダリティ用の、時間スコアを再スケーリングしたフローサンプラー。

pipelineは、バックボーンとトークンごとのローカル潜在変数の2つのモダリティを統合しており、それぞれに1つのスケジューラを使用します。これらは、時間スケジューリング、ノイズスケジューリング、およびリスケールにおいて異なります。

サンプリングの前に`set_timesteps`を呼び出してください。タイムステップはノイズからクリーンなデータに向かって増加します。スケジューラは現在の区間を管理するため、並行して生成を行う場合は共有しないでください。

#### 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)
```

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

**パラメータ:**

num_inference_steps (`int`) : 積分区間の数。

device (`str` または `torch.device`、*任意*) : `timesteps` に使用するデバイスです。区間の長さとノイズ係数は CPU に保持されます。

start_time (`float`, *任意*) : `[0, 1)` における部分拡散の開始時刻です。完全な生成を行う場合は省略してください。

スケジュールを解決し、統合カーソルをリセットします。

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

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

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

**パラメータ:**

original_samples (`torch.Tensor`) : クリーンな状態 `(batch, tokens, D)`。

noise (`torch.Tensor`) : 呼び出し元によってサンプリングされた、同じ形状のノイズ。

timesteps (`float` または `torch.Tensor`) : `[0, 1)` の範囲の時間。スカラーまたは `(batch,)`。

前方周辺分布 `(1 - t) * noise + t * clean` をサンプリングします。

#### ステップ[[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)
```

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

**パラメータ:**

model_output (`torch.Tensor`) : `sample` と同じ形状の予測速度。

timestep (`torch.Tensor`) : `timesteps` の次の要素です。順序が異なるステップは拒否されます。

sample (`torch.Tensor`) : 現在の状態 `(B, N, D)`。

emit_mask (`torch.Tensor`) : 真偽値 `(B, N)`。更新されるトークン（コンテキストやパディングではないもの）に対して true になります。

generator (`torch.Generator` または `list[torch.Generator]`、*省略可*) : 単一の行用のジェネレーター、またはバッチの各行ごとに異なるジェネレーター。省略すると、グローバルストリームが使用されます。

return_dict (`bool`、デフォルトは`True`) : `RFD4ProteinaSchedulerOutput`を返します。それ以外の場合は、状態を保持する1要素のタプルを返します。

**戻り値:** `RFD4ProteinaSchedulerOutput` または `tuple`

更新された状態。

1つの積分区間を進め、`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)
```

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

**パラメータ:**

prev_sample (`torch.Tensor`) : ステップ後の状態。形状は`(B, N, D)`です。`D`は、バックボーンの場合3（ナノメートル単位の座標）、ローカル潜在変数の場合は潜在変数の幅です。

1つのモダリティの更新後の状態。

