Buckets:
| # DDPMScheduler | |
| [Denoising Diffusion Probabilistic Models](https://huggingface.co/papers/2006.11239) (DDPM) авторов Джонатана Хо, Аджая Джейна и Питера Аббеля предлагает модель на основе диффузии с тем же названием. В контексте библиотеки 🤗 Diffusers DDPM обозначает дискретный планировщик удаления шума из статьи, а также соответствующий пайплайн. | |
| Аннотация из статьи: | |
| *Мы представляем результаты синтеза изображений высокого качества с использованием диффузионных вероятностных моделей, класса латентных переменных, вдохновлённого соображениями из неравновесной термодинамики. Наши лучшие результаты получены путём обучения на взвешенной вариационной границе, спроектированной на основе новой связи между диффузионными вероятностными моделями и сопоставлением скоростей сглаживания шума с динамикой Ланжевена. Наши модели естественным образом допускают схему прогрессивного сжимающего декодирования с потерями, которую можно интерпретировать как обобщение авторегрессионного декодирования. На безусловном наборе данных CIFAR10 мы получаем Inception score 9,46 и FID score 3,17, являющийся лучшим на данный момент. На LSUN 256x256 мы получаем качество образцов, сопоставимое с ProgressiveGAN. Наша реализация доступна по адресу [этот URL](https://github.com/hojonathanho/diffusion).* | |
| ## DDPMScheduler[[diffusers.DDPMScheduler]] | |
| #### diffusers.DDPMScheduler[[diffusers.DDPMScheduler]] | |
| ```python | |
| diffusers.DDPMScheduler(num_train_timesteps: int = 1000, beta_start: float = 0.0001, beta_end: float = 0.02, beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2', 'sigmoid'] = 'linear', trained_betas: numpy.ndarray | list[float] | None = None, variance_type: typing.Literal['fixed_small', 'fixed_small_log', 'fixed_large', 'fixed_large_log', 'learned', 'learned_range'] = 'fixed_small', clip_sample: bool = True, prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon', thresholding: bool = False, dynamic_thresholding_ratio: float = 0.995, clip_sample_range: float = 1.0, sample_max_value: float = 1.0, timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'leading', steps_offset: int = 0, rescale_betas_zero_snr: bool = False) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L137) | |
| **Параметры:** | |
| num_train_timesteps (`int`, по умолчанию `1000`) : Количество шагов диффузии для обучения модели. | |
| beta_start (`float`, по умолчанию `0.0001`) : начальное значение `beta` для инференса. | |
| beta_end (`float`, по умолчанию `0.02`) : Итоговое значение `beta`. | |
| beta_schedule (`"linear"`, `"scaled_linear"`, `"squaredcos_cap_v2"` или `"sigmoid"`, по умолчанию `"linear"`) : расписание beta, отображение диапазона beta в последовательность значений beta для шагов модели. | |
| trained_betas (`np.ndarray`, *необязательный*) : Массив бета-значений для прямой передачи в конструктор без использования `beta_start` и `beta_end`. | |
| variance_type (`"fixed_small"`, `"fixed_small_log"`, `"fixed_large"`, `"fixed_large_log"`, `"learned"` или `"learned_range"`, по умолчанию `"fixed_small"`) : Обрезает дисперсию при добавлении шума к денойзированному образцу. | |
| clip_sample (`bool`, по умолчанию `True`) : Обрезает предсказанную выборку для обеспечения численной стабильности. | |
| clip_sample_range (`float`, по умолчанию `1.0`) : Максимальная величина для обрезки выборок. Действительно только при `clip_sample=True`. | |
| prediction_type (`"epsilon"`, `"sample"`, or `"v_prediction"`, defaults to `"epsilon"`) : Prediction type of the scheduler function; can be `epsilon` (predicts the noise of the diffusion process), `sample` (directly predicts the noisy sample`) or `v_prediction` (see section 2.4 of [Imagen Video](https://huggingface.co/papers/2210.02303) paper). | |
| thresholding (`bool`, по умолчанию `False`) : Использовать ли метод «динамического порога». Этот метод не подходит для моделей диффузии в латентном пространстве, таких как Stable Diffusion. | |
| dynamic_thresholding_ratio (`float`, по умолчанию `0.995`) : Коэффициент для метода динамического порогового значения. Действительно только при `thresholding=True`. | |
| sample_max_value (`float`, по умолчанию `1.0`) : Пороговое значение для динамического порогового выделения. Действительно только при `thresholding=True`. | |
| timestep_spacing (`"linspace"`, `"leading"`, or `"trailing"`, defaults to `"leading"`) : The way the timesteps should be scaled. Refer to Table 2 of the [Common Diffusion Noise Schedules and Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) for more information. | |
| steps_offset (`int`, по умолчанию `0`) : Смещение, добавляемое к шагам инференса, как требуется некоторыми семействами моделей. | |
| rescale_betas_zero_snr (`bool`, по умолчанию `False`) : Нужно ли перемасштабировать беты для нулевого конечного SNR. Это позволяет модели генерировать очень яркие и тёмные образцы, а не ограничиваться образцами со средней яркостью. Непосредственно связано с [`--offset_noise`](https://github.com/huggingface/diffusers/blob/74fd735eb073eb1d774b1ab4154a0876eb82f055/examples/dreambooth/train_dreambooth.py#L506). | |
| `DDPMScheduler` исследует связи между сопоставлением скоров денойзинга и сэмплированием по динамике Ланжевена. | |
| Эта модель наследуется от [SchedulerMixin](/docs/diffusers/main/ru/api/schedulers/overview#diffusers.SchedulerMixin) и [ConfigMixin](/docs/diffusers/main/ru/api/configuration#diffusers.ConfigMixin). Общие методы, которые библиотека реализует для всех планировщиков, такие как загрузка и сохранение, описаны в документации суперкласса. | |
| #### add_noise[[diffusers.DDPMScheduler.add_noise]] | |
| ```python | |
| add_noise(original_samples: Tensor, noise: Tensor, timesteps: IntTensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L569) | |
| **Параметры:** | |
| original_samples (`torch.Tensor`) : исходные образцы, к которым будет добавлен шум. | |
| noise (`torch.Tensor`) : Шум, который нужно добавить к образцам. | |
| timesteps (`torch.IntTensor`) : Шаги, указывающие уровень шума для каждого примера. | |
| **Возвращает:** `torch.Tensor` | |
| Шумные образцы. | |
| Добавьте шум к исходным образцам в соответствии с величиной шума на каждом шаге (это процесс прямой диффузии). | |
| #### get_velocity[[diffusers.DDPMScheduler.get_velocity]] | |
| ```python | |
| get_velocity(sample: Tensor, noise: Tensor, timesteps: IntTensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L611) | |
| **Параметры:** | |
| sample (`torch.Tensor`) : Входной образец. | |
| noise (`torch.Tensor`) : Тензор шума. | |
| timesteps (`torch.IntTensor`) : Шаги для вычисления скорости. | |
| **Возвращает:** `torch.Tensor` | |
| Вычисленная скорость. | |
| Вычислите предсказание скорости из выборки и шума согласно формуле скорости. | |
| #### previous_timestep[[diffusers.DDPMScheduler.previous_timestep]] | |
| ```python | |
| previous_timestep(timestep: int) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L648) | |
| **Параметры:** | |
| timestep (`int`) : Текущий шаг. | |
| **Возвращает:** `int` или `torch.Tensor` | |
| Предыдущий шаг по времени. | |
| Вычислите предыдущий шаг временной шкалы в цепочке диффузии. | |
| #### scale_model_input[[diffusers.DDPMScheduler.scale_model_input]] | |
| ```python | |
| scale_model_input(sample: Tensor, timestep: int | None = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L257) | |
| **Параметры:** | |
| sample (`torch.Tensor`) : Входной образец. | |
| timestep (`int`, *необязательный*) : Текущий шаг в цепочке диффузии. | |
| **Возвращает:** `torch.Tensor` | |
| Масштабированный входной образец. | |
| Обеспечивает совместимость с планировщиками, которым необходимо масштабировать входную модель денуазинга в зависимости от текущего шага. | |
| #### set_timesteps[[diffusers.DDPMScheduler.set_timesteps]] | |
| ```python | |
| set_timesteps(num_inference_steps: int = None, device: typing.Union[str, torch.device] = None, timesteps: list[int] | None = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L274) | |
| **Параметры:** | |
| num_inference_steps (`int`, *optional*) : Количество шагов диффузии, используемое при генерации образцов с помощью предобученной модели. Если используется, `timesteps` должно быть `None`. | |
| device (`str` или `torch.device`, *необязательный*) : Устройство, на которое следует переместить шаги. Если `None`, шаги не перемещаются. | |
| timesteps (`list[int]`, *optional*) : Пользовательские шаги (timesteps) для поддержки произвольного интервала между ними. Если `None`, используется стандартная стратегия равномерного распределения шагов. Если передан параметр `timesteps`, `num_inference_steps` должен быть `None`. | |
| Устанавливает дискретные временные шаги, используемые для цепочки диффузии (выполняется перед инференсом). | |
| #### шаг[[diffusers.DDPMScheduler.step]] | |
| ```python | |
| step(model_output: Tensor, timestep: int, sample: Tensor, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L461) | |
| **Параметры:** | |
| model_output (`torch.Tensor`) : Прямой вывод из обученной диффузионной модели. | |
| timestep (`int`) : Текущий дискретный шаг времени в цепочке диффузии. | |
| sample (`torch.Tensor`) : Текущая инстанция сэмпла, созданная процессом диффузии. | |
| generator (`torch.Generator`, *необязательный*) : генератор случайных чисел. | |
| return_dict (`bool`, по умолчанию `True`) : Возвращать ли [DDPMSchedulerOutput](/docs/diffusers/main/ru/api/schedulers/ddpm#diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput) или `tuple`. | |
| **Возвращает:** [DDPMSchedulerOutput](/docs/diffusers/main/ru/api/schedulers/ddpm#diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput) или `tuple` | |
| If return_dict is `True`, [DDPMSchedulerOutput](/docs/diffusers/main/ru/api/schedulers/ddpm#diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput) is returned, otherwise a tuple is returned where the first element is the sample tensor. | |
| Предскажите образец из предыдущего шага времени, обращая SDE. Эта функция распространяет процесс диффузии от выходов обученной модели (чаще всего — предсказанного шума). | |
| ## DDPMSchedulerOutput[[diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput]] | |
| #### diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput[[diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput]] | |
| ```python | |
| diffusers.schedulers.scheduling_ddpm.DDPMSchedulerOutput(prev_sample: Tensor, pred_original_sample: typing.Optional[torch.Tensor] = None) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_ddpm.py#L31) | |
| **Параметры:** | |
| prev_sample (`torch.Tensor` формы `(batch_size, num_channels, height, width)` для изображений) : Вычисленная выборка `(x_{t-1})` для предыдущего шага. `prev_sample` следует использовать как следующий вход модели в цикле шумоподавления. | |
| pred_original_sample (`torch.Tensor` формы `(batch_size, num_channels, height, width)` для изображений) : Предсказанный денойзированный образец `(x_{0})` на основе вывода модели из текущего шага. `pred_original_sample` можно использовать для предпросмотра прогресса или для guidance. | |
| Класс результата для вывода функции `step` планировщика. | |
Xet Storage Details
- Size:
- 15.4 kB
- Xet hash:
- 0c46b22fafc9ac618bc0f0ccb084ad31447df6e46f26f962602669934719380e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.