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 modeli, Ronneberger ve arkadaşları tarafından biyomedikal görüntü segmentasyonu için ilk olarak tanıtılmıştır ancak 🤗 Diffusers içinde de yaygın olarak kullanılır çünkü girdiyle aynı boyutta görüntüler üretir. Gerçek difüzyon sürecini kolaylaştırdığı için bir difüzyon sisteminin en önemli bileşenlerinden biridir. 🤗 Diffusers içinde, boyut sayısı ve koşullu bir model olup olmadığına bağlı olarak UNet modelinin çeşitli varyantları bulunur. Bu, 1D bir UNet modelidir.

Makalenin özeti şudur:

Derin ağların başarılı bir şekilde eğitilmesinin binlerce etiketli eğitim örneği gerektirdiği konusunda geniş bir uzlaşı vardır. Bu makalede, mevcut etiketli örneklerin daha verimli kullanılmasını sağlayan, veri artırımının güçlü kullanımına dayanan bir ağ ve eğitim stratejisi sunuyoruz. Mimari, bağlamı yakalamak için daralan bir yol ve hassas konumlandırmayı mümkün kılan simetrik bir genişleyen yoldan oluşmaktadır. Böyle bir ağın çok az sayıda görüntüden uçtan uca eğitilebildiğini ve sinirsel yapıların elektron mikroskobik yığınlarında segmentasyonu için ISBI yarışmasında önceki en iyi yöntemi (kayan pencere konvolüsyonel ağ) geride bıraktığını gösteriyoruz. Aynı ağ, iletilen ışık mikroskobu görüntüleri (faz kontrastı ve DIC) üzerinde eğitilerek, bu kategorilerde ISBI hücre takibi yarışması 2015'i büyük bir farkla kazandık. Üstelik ağ hızlıdır. 512x512 boyutundaki bir görüntünün segmentasyonu, güncel bir GPU'da bir saniyeden az sürmektedir. Tam uygulama (Caffe tabanlı) ve eğitilmiş ağlar http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net adresinde mevcuttur.

UNet1DModel

sınıf 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 )

Parametreler

  • sample_size (int, isteğe bağlı) — Örneklemenin varsayılan uzunluğu. Çalışma zamanında uyarlanabilir olmalıdır.
  • in_channels (int, isteğe bağlı, varsayılan 2) — Girdi örneğindeki kanal sayısı.
  • out_channels (int, isteğe bağlı, varsayılan 2) — Çıktıdaki kanal sayısı.
  • extra_in_channels (int, isteğe bağlı, varsayılan 0) — İlk aşağı blok girdisine eklenecek ek kanal sayısı. Girdi verisinin, modelin başlangıçta tasarlandığından daha fazla kanala sahip olduğu durumlarda kullanışlıdır.
  • time_embedding_type (str, isteğe bağlı, varsayılan "fourier") — Kullanılacak zaman gömme türü.
  • freq_shift (float, isteğe bağlı, varsayılan 0.0) — Fourier zaman gömme için frekans kaydırması.
  • flip_sin_to_cos (bool, isteğe bağlı, varsayılan False) — Fourier zaman gömümünde sin'i cos'a çevirip çevirmeyeceğini belirtir.
  • down_block_types (tuple[str], isteğe bağlı, varsayılan ("DownBlock1DNoSkip", "DownBlock1D", "AttnDownBlock1D")) — örnekleme küçültme blok türlerinin tuple'ı.
  • up_block_types (tuple[str], isteğe bağlı, varsayılan ("AttnUpBlock1D", "UpBlock1D", "UpBlock1DNoSkip")) — Örnekleme bloğu türlerinin tuple'ı.
  • block_out_channels (tuple[int], isteğe bağlı, varsayılan (32, 32, 64)) — Blok çıktı kanallarının tuple'ı.
  • mid_block_type (str, isteğe bağlı, varsayılan "UNetMidBlock1D") — UNet'in orta kısmı için blok türü.
  • out_block_type (str, isteğe bağlı, varsayılan None) — UNet'in isteğe bağlı çıktı işleme bloğu.
  • act_fn (str, isteğe bağlı, varsayılan None) — UNet bloklarında isteğe bağlı aktivasyon fonksiyonu.
  • norm_num_groups (int, isteğe bağlı, varsayılan 8) — Normalizasyon için grup sayısı.
  • layers_per_block (int, isteğe bağlı, varsayılan 1) — Blok başına katman sayısı.
  • downsample_each_block (int, isteğe bağlı, varsayılan False) — Örnekleme yapmadan UNet kullanmak için deneysel özellik.

Gürültülü bir örnek ve bir zaman adımı alır ve örnek biçiminde bir çıktı döndüren 1B UNet modeli.

Bu model ModelMixin sınıfından devralır. Tüm modeller için uygulanan genel yöntemleri (indirme veya kaydetme gibi) görmek için üst sınıfın belgelendirmesine bakın.

forward

< >

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

Parametreler

  • sample (torch.Tensor) — Aşağıdaki şekle sahip gürültülü giriş tensörü (batch_size, num_channels, sample_size).
  • timestep (torch.Tensor veya float veya int) — Bir girdinin gürültüsünü gidermek için kullanılacak zaman adımı sayısı.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine UNet1DOutput döndürülüp döndürülmemesi.

Dönüş değeri

UNet1DOutput veya tuple

return_dict True ise bir UNet1DOutput döndürülür, aksi takdirde ilk öğesi örnek tensörü olan bir tuple döndürülür.

UNet1DModel ileri yöntemi.

UNet1DOutput

sınıf diffusers.models.unets.unet_1d.UNet1DOutput

< >

( sample: Tensor )

Parametreler

  • sample (torch.Tensor, şekli (batch_size, num_channels, sample_size)) — Modelin son katmanından çıkan gizli durumlar.

UNet1DModel'in çıktısı.

Update on GitHub