Diffusers documentation

UNet1DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

UNet1DModel

Модель UNet была первоначально представлена Ronneberger et al. для сегментации биомедицинских изображений, однако она также широко используется в 🤗 Diffusers, поскольку на выходе формирует изображения того же размера, что и входные. Это один из ключевых компонентов диффузионной системы, так как именно он обеспечивает непосредственный процесс диффузии. В 🤗 Diffusers существует несколько вариантов модели UNet в зависимости от её размерности и того, является ли она условной моделью. Здесь представлена одномерная модель UNet.

Аннотация из статьи:

Существует широкое согласие в том, что успешное обучение глубоких сетей требует тысяч размеченных обучающих примеров. В данной статье мы представляем сеть и стратегию обучения, которые опираются на активное использование аугментации данных для более эффективного использования доступных размеченных примеров. Архитектура состоит из сжимающего пути для захвата контекста и симметричного расширяющего пути, обеспечивающего точную локализацию. Мы показываем, что такая сеть может быть обучена end-to-end по очень малому количеству изображений и превосходит предыдущий лучший метод (сверточная сеть со скользящим окном) на конкурсе ISBI по сегментации нейронных структур в электронных микроскопических стопках. Используя ту же сеть, обученную на изображениях, полученные с помощью световой микроскопии (фазовый контраст и DIC), мы с большим отрывом выиграли конкурс ISBI по отслеживанию клеток 2015 года в этих категориях. Кроме того, сеть работает быстро. Сегментация изображения 512x512 занимает менее секунды на современном GPU. Полная реализация (на основе Caffe) и обученные сети доступны по адресу http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.

UNet1DModel

класс diffusers.UNet1DModel

< >

( sample_size: int = 65536sample_rate: int | None = Nonein_channels: int = 2out_channels: int = 2extra_in_channels: int = 0time_embedding_type: str = 'fourier'time_embedding_dim: int | None = Noneflip_sin_to_cos: bool = Trueuse_timestep_embedding: bool = Falsefreq_shift: float = 0.0down_block_types: tuple = ('DownBlock1DNoSkip', 'DownBlock1D', 'AttnDownBlock1D')up_block_types: tuple = ('AttnUpBlock1D', 'UpBlock1D', 'UpBlock1DNoSkip')mid_block_type: str = 'UNetMidBlock1D'out_block_type: str = Noneblock_out_channels: tuple = (32, 32, 64)act_fn: str = Nonenorm_num_groups: int = 8layers_per_block: int = 1downsample_each_block: bool = False )

Параметры

  • sample_size (int, необязательный) — Длина выборки по умолчанию. Должна быть настраиваемой во время выполнения.
  • in_channels (int, необязательный, по умолчанию 2) — Количество каналов во входном образце.
  • out_channels (int, необязательный, по умолчанию 2) — Количество каналов на выходе.
  • extra_in_channels (int, необязательный, по умолчанию 0) — Количество дополнительных каналов, добавляемых на вход первого down-блока. Полезно в случаях, когда входные данные содержат больше каналов, чем было предусмотрено при первоначальном проектировании модели.
  • time_embedding_type (str, необязательный, по умолчанию "fourier") — Тип используемого временного эмбеддинга.
  • freq_shift (float, необязательный, по умолчанию 0.0) — Сдвиг частоты для временного встраивания Фурье.
  • flip_sin_to_cos (bool, необязательный, по умолчанию False) — Определяет, следует ли заменять sin на cos во временном вложении Фурье.
  • down_block_types (tuple[str], необязательный, по умолчанию ("DownBlock1DNoSkip", "DownBlock1D", "AttnDownBlock1D")) — кортеж типов блоков понижающего дискретизирования.
  • up_block_types (tuple[str], необязательный, по умолчанию ("AttnUpBlock1D", "UpBlock1D", "UpBlock1DNoSkip")) — кортеж типов блоков апсэмплинга.
  • block_out_channels (tuple[int], необязательный, по умолчанию (32, 32, 64)) — кортеж количества выходных каналов блоков.
  • mid_block_type (str, необязательный, по умолчанию "UNetMidBlock1D") — Тип блока для средней части UNet.
  • out_block_type (str, необязательный, по умолчанию None) — Необязательный блок обработки вывода UNet.
  • act_fn (str, необязательный, по умолчанию None) — Необязательная функция активации в блоках UNet.
  • norm_num_groups (int, необязательный, по умолчанию 8) — количество групп для нормализации.
  • layers_per_block (int, необязательный, по умолчанию 1) — Количество слоев в каждом блоке.
  • downsample_each_block (int, необязательный, по умолчанию False) — Экспериментальная функция для использования UNet без апсемплинга.

Модель 1D UNet, которая принимает зашумленный образец и шаг времени и возвращает вывод той же формы.

Эта модель наследуется от ModelMixin. См. документацию суперкласса для его универсальных методов, реализованных для всех моделей (например, загрузка или сохранение).

forward

< >

( sample: Tensortimestep: typing.Union[torch.Tensor, float, int]return_dict: bool = True ) → UNet1DOutput or tuple

Параметры

  • sample (torch.Tensor) — Шумовой входной тензор со следующей формой (batch_size, num_channels, sample_size).
  • timestep (torch.Tensor или float или int) — Количество шагов для денойзинга входных данных.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать UNet1DOutput вместо обычного кортежа.

Возвращает

UNet1DOutput или tuple

Если return_dict равно True, возвращается UNet1DOutput, иначе возвращается tuple, где первый элемент — это тензор выборки.

Метод forward модели UNet1DModel.

UNet1DOutput

класс diffusers.models.unets.unet_1d.UNet1DOutput

< >

( sample: Tensor )

Параметры

  • sample (torch.Tensor формы (batch_size, num_channels, sample_size)) — Скрытые состояния, выведенные последним слоем модели.

Вывод UNet1DModel.

Update on GitHub