# FlowMatchHeunDiscreteScheduler

`FlowMatchHeunDiscreteScheduler` مبني على أخذ العينات المطابق للتدفق (flow-matching) الذي تم تقديمه في [EDM](https://huggingface.co/papers/2403.03206).

## FlowMatchHeunDiscreteScheduler[[diffusers.FlowMatchHeunDiscreteScheduler]]

#### diffusers.FlowMatchHeunDiscreteScheduler[[diffusers.FlowMatchHeunDiscreteScheduler]]

```python
diffusers.FlowMatchHeunDiscreteScheduler(num_train_timesteps: int = 1000, shift: float = 1.0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L43)

**المعاملات:**

num_train_timesteps (`int`، القيمة الافتراضية 1000) : عدد خطوات الانتشار لتدريب النموذج.

shift (`float`، القيمة الافتراضية 1.0) : قيمة الإزاحة لجدول خطوات الزمن.

مجدول Heun.

يرث هذا النموذج من [SchedulerMixin](/docs/diffusers/v0.43.0/ar/api/schedulers/overview#diffusers.SchedulerMixin) و [ConfigMixin](/docs/diffusers/v0.43.0/ar/api/configuration#diffusers.ConfigMixin). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدولات التعلم، مثل التحميل والحفظ.

#### index_for_timestep[[diffusers.FlowMatchHeunDiscreteScheduler.index_for_timestep]]

```python
index_for_timestep(timestep: typing.Union[float, torch.FloatTensor], schedule_timesteps: typing.Optional[torch.FloatTensor] = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L179)

**المعاملات:**

timestep (`float` أو `torch.FloatTensor`) : قيمة خطوة الزمن (timestep) التي يجب البحث عنها في الجدول الزمني.

schedule_timesteps (`torch.FloatTensor`، *اختياري*) : جدول خطوات الزمن للبحث فيه. إذا كان `None`، يتم استخدام `self.timesteps`.

**يعيد:** `int`

مؤشر خطوة الزمن في الجدول الزمني.

ابحث عن فهرس خطوة زمنية محددة في جدول الخطوات الزمنية.

#### scale_noise[[diffusers.FlowMatchHeunDiscreteScheduler.scale_noise]]

```python
scale_noise(sample: FloatTensor, timestep: typing.Union[float, torch.FloatTensor], noise: FloatTensor)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L106)

**المعاملات:**

sample (`torch.FloatTensor`) : العينة المدخلة.

timestep (`float` أو `torch.FloatTensor`) : الخطوة الزمنية الحالية في سلسلة الانتشار.

noise (`torch.FloatTensor`) : متجه الضوضاء.

**يعيد:** `torch.FloatTensor`

عينة إدخال مُقيّمة.

العملية الأمامية في مطابقة التدفق

#### set_begin_index[[diffusers.FlowMatchHeunDiscreteScheduler.set_begin_index]]

```python
set_begin_index(begin_index: int = 0)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L96)

**المعاملات:**

begin_index (`int`، القيمة الافتراضية `0`) : فهرس البداية للمجدول.

يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.

#### set_timesteps[[diffusers.FlowMatchHeunDiscreteScheduler.set_timesteps]]

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

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L139)

**المعاملات:**

num_inference_steps (`int`) : عدد خطوات الانتشار المستخدمة عند توليد العينات باستخدام نموذج مُدرَّب مسبقًا.

device (`str` أو `torch.device`، *اختياري*) : الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كان `None`، فلن يتم نقل خطوات الزمن.

يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).

#### خطوة[[diffusers.FlowMatchHeunDiscreteScheduler.step]]

```python
step(model_output: FloatTensor, timestep: typing.Union[float, torch.FloatTensor], sample: FloatTensor, s_churn: float = 0.0, s_tmin: float = 0.0, s_tmax: float = inf, s_noise: float = 1.0, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L225)

**المعاملات:**

model_output (`torch.FloatTensor`) : المخرجات المباشرة من نموذج الانتشار المُتعلَّم.

timestep (`float` أو `torch.FloatTensor`) : الخطوة الزمنية المنفصلة الحالية في سلسلة الانتشار.

sample (`torch.FloatTensor`) : نسخة حالية من عينة أنشأها عملية الانتشار.

s_churn (`float`) : معامل العشوائية الذي يتحكم في كمية الضوضاء المضافة أثناء أخذ العينات. تزيد القيم الأعلى من العشوائية.

s_tmin (`float`) : الحد الأدنى لخطوة الزمن لتطبيق العشوائية. لن يُضاف الضوضاء إلا للخطوات الزمنية التي تتجاوز هذه القيمة.

s_tmax (`float`) : الحد الأقصى لخطوة الزمن (timestep) لتطبيق العشوائية. لن يُضاف الضوضاء إلا للخطوات التي تكون قيمتها أقل من هذا الحد.

s_noise (`float`، القيمة الافتراضية 1.0) : معامل التدرج للضوضاء المضافة إلى العينة.

generator (`torch.Generator`، *اختياري*) : مولّد أرقام عشوائية.

return_dict (`bool`) : ما إذا كان يجب إرجاع مجموعة `FlowMatchHeunDiscreteSchedulerOutput` أم لا.

**يعيد:** `FlowMatchHeunDiscreteSchedulerOutput` أو `tuple`

If return_dict is `True`, `FlowMatchHeunDiscreteSchedulerOutput` is returned, otherwise a tuple is returned where the first element is the sample tensor.

تنبّأ بالعيّنة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المُتعلَّم (والتي تكون في الغالب الضوضاء المتنبَّأ بها).

