# RFD4ProteinaScheduler

`RFD4ProteinaScheduler` là trình lấy mẫu flow có điểm theo thời gian được điều chỉnh lại của RFD4-Proteína cho một chế độ. Pipeline sử dụng hai instance, một cho backbone (`bb_ca`, tọa độ tính bằng nanomet) và một cho các latent cục bộ theo từng token (`local_latents`), mỗi instance có lịch trình thời gian, lịch trình nhiễu và việc điều chỉnh lại riêng. Xem [RFD4ProteinaPipeline](/docs/diffusers/v0.43.0/vi/api/pipelines/rfd4_proteina#diffusers.RFD4ProteinaPipeline) để biết vòng lặp lấy mẫu.

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

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

**Tham số:**

schedule_mode (`str`) : Khoảng cách giữa các thời điểm của nhiễu và dữ liệu: `"log"` hoặc `"power"`.

noise_mode (`str`) : Hình dạng của nhiễu được tiêm vào cửa sổ ngẫu nhiên: `"1/t"` hoặc `"tan"`.

tsr_k (`float`) : Nhiệt độ lấy mẫu thấp đến mức nào; giá trị cao hơn nghĩa là thấp hơn.

tsr_sigma (`float`) : Tốc độ đạt đến nhiệt độ thấp; giá trị cao hơn nghĩa là nhanh hơn.

tail_steps (`int`, mặc định là `10`) : Số lượng khoảng cuối cùng có độ mịn cao hơn phần còn lại theo hệ số `tail_step_multiplier`.

tail_step_multiplier (`int`, mặc định là `2`) : Mức độ chi tiết của các khoảng cuối cùng.

t_lim_ode (`float`, mặc định là `0.95`) : Sau thời điểm này, bước là tất định.

t_lim_ode_below (`float`, mặc định là `0.02`) : Dưới ngưỡng thời gian này, bước là tất định.

Trình lấy mẫu luồng được điều chỉnh lại theo điểm thời gian cho một chế độ của RFD4-Proteína.

Pipeline tích hợp hai phương thức, phần backbone và các biến tiềm năng cục bộ theo từng token, mỗi phương thức có một trình lập lịch riêng. Chúng khác nhau về lịch trình thời gian, lịch trình nhiễu và việc chuẩn hóa lại.

Gọi `set_timesteps` trước khi lấy mẫu. Thời gian tăng dần từ nhiễu về phía dữ liệu sạch. Một trình lập lịch sẽ theo dõi khoảng thời gian hiện tại và không nên được dùng chung cho các lần tạo đồng thời.

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

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

**Tham số:**

num_inference_steps (`int`) : Số lượng khoảng tích phân.

device (`str` hoặc `torch.device`, *tuỳ chọn*) : Thiết bị cho `timesteps`. Độ dài khoảng thời gian và hệ số nhiễu được giữ trên CPU.

start_time (`float`, *optional*) : Thời điểm bắt đầu khuếch tán một phần trong `[0, 1)`. Bỏ qua để tạo toàn bộ.

Giải quyết lịch trình và đặt lại con trỏ tích hợp.

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

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

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

**Tham số:**

original_samples (`torch.Tensor`) : Trạng thái sạch `(batch, tokens, D)`.

noise (`torch.Tensor`) : Nhiễu có cùng hình dạng, được người gọi tạo ra.

timesteps (`float` hoặc `torch.Tensor`) : Thời gian trong `[0, 1)`, một số vô hướng hoặc `(batch,)`.

Mẫu biên phía trước `(1 - t) * noise + t * clean`.

#### bước[[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)
```

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

**Tham số:**

model_output (`torch.Tensor`) : Tốc độ dự đoán, có hình dạng giống `sample`.

timestep (`torch.Tensor`) : Phần tử tiếp theo của `timesteps`. Các bước không theo thứ tự sẽ bị từ chối.

sample (`torch.Tensor`) : Trạng thái hiện tại `(B, N, D)`.

emit_mask (`torch.Tensor`) : Boolean `(B, N)`, true cho các token được cập nhật (không phải ngữ cảnh hoặc padding).

generator (`torch.Generator` hoặc `list[torch.Generator]`, *tuỳ chọn*) : Một generator cho một hàng duy nhất hoặc các generator riêng biệt cho từng hàng trong batch. Nếu bỏ qua, hệ thống sẽ sử dụng luồng toàn cục.

return_dict (`bool`, mặc định là `True`) : Trả về `RFD4ProteinaSchedulerOutput`; nếu không, một tuple chứa một phần tử giữ trạng thái.

**Trả về:** `RFD4ProteinaSchedulerOutput` hoặc `tuple`

Trạng thái đã được cập nhật.

Tiến hành một khoảng tích phân và cập nhật `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)
```

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

**Tham số:**

prev_sample (`torch.Tensor`) : Trạng thái sau bước, có hình dạng `(B, N, D)`: `D` là 3 đối với phần thân (tọa độ tính bằng nanomet) và là chiều rộng tiềm ẩn đối với các biến tiềm ẩn cục bộ.

Trạng thái cập nhật của một phương thức.

