Diffusers documentation
UNet1DModel
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
< source >( 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ılanFalse) — 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ılanNone) — UNet'in isteğe bağlı çıktı işleme bloğu. - act_fn (
str, isteğe bağlı, varsayılanNone) — 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ılanFalse) — Ö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
< source >( 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.Tensorveyafloatveyaint) — 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ılanTrue) — 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
< source >( sample: Tensor )
UNet1DModel'in çıktısı.