Buckets:

mishig's picture
|
download
raw
9.18 kB
# UNet2DModel
[UNet](https://huggingface.co/papers/1505.04597) modeli, Ronneberger ve arkadaşları tarafından biyomedikal görüntü segmentasyonu için ilk olarak tanıtılmıştır; ancak girdi ile aynı boyutta görüntüler ürettiği için 🤗 Diffusers'ta da yaygın olarak kullanılır. Gerçek difüzyon sürecini kolaylaştırdığı için bir difüzyon sisteminin en önemli bileşenlerinden biridir. 🤗 Diffusers'ta, boyut sayısı ve koşullu bir model olup olmadığına bağlı olarak UNet modelinin çeşitli varyantları bulunur. Bu, 2D 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ındaki 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.*
## UNet2DModel[[diffusers.UNet2DModel]]
#### diffusers.UNet2DModel[[diffusers.UNet2DModel]]
```python
diffusers.UNet2DModel(sample_size: int | tuple[int, int] | None = None, in_channels: int = 3, out_channels: int = 3, center_input_sample: bool = False, time_embedding_type: str = 'positional', time_embedding_dim: int | None = None, freq_shift: int = 0, flip_sin_to_cos: bool = True, down_block_types: tuple = ('DownBlock2D', 'AttnDownBlock2D', 'AttnDownBlock2D', 'AttnDownBlock2D'), mid_block_type: str | None = 'UNetMidBlock2D', up_block_types: tuple = ('AttnUpBlock2D', 'AttnUpBlock2D', 'AttnUpBlock2D', 'UpBlock2D'), block_out_channels: tuple = (224, 448, 672, 896), layers_per_block: int = 2, mid_block_scale_factor: float = 1, downsample_padding: int = 1, downsample_type: str = 'conv', upsample_type: str = 'conv', dropout: float = 0.0, act_fn: str = 'silu', attention_head_dim: int | None = 8, norm_num_groups: int = 32, attn_norm_num_groups: int | None = None, norm_eps: float = 1e-05, resnet_time_scale_shift: str = 'default', add_attention: bool = True, class_embed_type: str | None = None, num_class_embeds: int | None = None, num_train_timesteps: int | None = None)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_2d.py#L39)
**Parametreler:**
sample_size (`int` veya `tuple[int, int]`, *isteğe bağlı*, varsayılan `None`) : Girdi/çıktı örneğinin yüksekliği ve genişliği. Boyutlar, `2 ** (len(block_out_channels) - 1)`'in katı olmalıdır.
in_channels (`int`, *isteğe bağlı*, varsayılan 3) : Girdi örneğindeki kanal sayısı.
out_channels (`int`, *isteğe bağlı*, varsayılan 3) : Çıktıdaki kanal sayısı.
center_input_sample (`bool`, *isteğe bağlı*, varsayılan `False`) : Girdi örneğinin ortalanıp ortalanmayacağını belirtir.
time_embedding_type (`str`, *isteğe bağlı*, varsayılan `"positional"`) : Kullanılacak zaman gömme türü.
freq_shift (`int`, *isteğe bağlı*, varsayılan 0) : Fourier zaman gömme için frekans kaydırması.
flip_sin_to_cos (`bool`, *isteğe bağlı*, varsayılan `True`) : Fourier zaman gömümünde sin'in cos'a çevrilip çevrilmeyeceğini belirtir.
down_block_types (`tuple[str]`, *isteğe bağlı*, varsayılan `("DownBlock2D", "AttnDownBlock2D", "AttnDownBlock2D", "AttnDownBlock2D")`) : aşağı örneklem bloğu türlerinin bir demeti.
mid_block_type (`str`, *isteğe bağlı*, varsayılan `"UNetMidBlock2D"`) : UNet'in orta kısmı için blok türü, `UNetMidBlock2D` veya `None` olabilir.
up_block_types (`tuple[str]`, *isteğe bağlı*, varsayılan `("AttnUpBlock2D", "AttnUpBlock2D", "AttnUpBlock2D", "UpBlock2D")`) : örnekleme bloğu türlerinin tuple'ı.
block_out_channels (`tuple[int]`, *isteğe bağlı*, varsayılan `(224, 448, 672, 896)`) : blok çıktı kanalları tuple'ı.
layers_per_block (`int`, *isteğe bağlı*, varsayılan `2`) : Blok başına katman sayısı.
mid_block_scale_factor (`float`, *isteğe bağlı*, varsayılan `1`) : Orta blok için ölçekleme faktörü.
downsample_padding (`int`, *isteğe bağlı*, varsayılan `1`) : Downsample konvolüsyonu için dolgu.
downsample_type (`str`, *isteğe bağlı*, varsayılan `conv`) : Küçültme katmanları için küçültme türü. "conv" ve "resnet" arasında seçim yapın
upsample_type (`str`, *isteğe bağlı*, varsayılan `conv`) : Yukarı örneklemeye katmanları için yukarı örneklem türü. "conv" ve "resnet" arasında seçim yapın
dropout (`float`, *opsiyonel*, varsayılan 0.0) : Kullanılacak dropout olasılığı.
act_fn (`str`, *isteğe bağlı*, varsayılan `"silu"`) : Kullanılacak aktivasyon fonksiyonu.
attention_head_dim (`int`, *isteğe bağlı*, varsayılan `8`) : Dikkat başı boyutu.
norm_num_groups (`int`, *isteğe bağlı*, varsayılan `32`) : Normalizasyon için grup sayısı.
attn_norm_num_groups (`int`, *isteğe bağlı*, varsayılan `None`) : Bir tamsayıya ayarlanırsa, orta bloktaki `Attention` katmanında, verilen grup sayısı ile bir group norm katmanı oluşturulur. `None` olarak bırakılırsa, group norm katmanı yalnızca `resnet_time_scale_shift` `default` olarak ayarlanmışsa oluşturulur ve oluşturulursa `norm_num_groups` grup içerir.
norm_eps (`float`, *isteğe bağlı*, varsayılan `1e-5`) : Normalizasyon için epsilon.
resnet_time_scale_shift (`str`, *isteğe bağlı*, varsayılan `"default"`) : ResNet blokları için zaman ölçeği kaydırma yapılandırması (bkz. `ResnetBlock2D`). `default` veya `scale_shift` seçeneklerinden birini seçin.
class_embed_type (`str`, *isteğe bağlı*, varsayılan `None`) : Zaman gömme değerleriyle nihayetinde toplanacak sınıf gömme türü. `None`, `"timestep"` veya `"identity"` seçeneklerinden birini seçin.
num_class_embeds (`int`, *isteğe bağlı*, varsayılan `None`) : `class_embed_type` `None` olduğunda sınıf koşullandırması yapılırken `time_embed_dim`'e yansıtılacak öğrenilebilir gömme matrisinin giriş boyutu.
Gürültülü bir örnek ve bir zaman adımı alır ve örnek biçiminde bir çıktı döndüren 2B UNet modeli.
Bu model [ModelMixin](/docs/diffusers/main/tr/api/models/overview#diffusers.ModelMixin) sınıfından devralır. Tüm modeller için uygulanan genel yöntemlerini (indirme veya kaydetme gibi) görmek için üst sınıfın belgelendirmesine bakın.
#### forward[[diffusers.UNet2DModel.forward]]
```python
forward(sample: Tensor, timestep: typing.Union[torch.Tensor, float, int], class_labels: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_2d.py#L249)
**Parametreler:**
sample (`torch.Tensor`) : Şekli `(batch, channel, height, width)` olan gürültülü giriş tensörü.
timestep (`torch.Tensor` veya `float` veya `int`) : Bir girdinin gürültüsünü gidermek için kullanılacak zaman adımı sayısı.
class_labels (`torch.Tensor`, *isteğe bağlı*, varsayılan `None`) : Koşullandırma için isteğe bağlı sınıf etiketleri. Gömümleri, zaman adımları gömümleriyle toplanır.
return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine [UNet2DOutput](/docs/diffusers/main/tr/api/models/unet2d#diffusers.models.unets.unet_2d.UNet2DOutput) döndürülüp döndürülmemesi.
**Dönüş:** [UNet2DOutput](/docs/diffusers/main/tr/api/models/unet2d#diffusers.models.unets.unet_2d.UNet2DOutput) veya `tuple`
`return_dict` True ise bir [UNet2DOutput](/docs/diffusers/main/tr/api/models/unet2d#diffusers.models.unets.unet_2d.UNet2DOutput) döndürülür, aksi takdirde ilk öğesi örnek tensörü olan bir `tuple` döndürülür.
[UNet2DModel](/docs/diffusers/main/tr/api/models/unet2d#diffusers.UNet2DModel) ileri yöntemi.
## UNet2DOutput[[diffusers.models.unets.unet_2d.UNet2DOutput]]
#### diffusers.models.unets.unet_2d.UNet2DOutput[[diffusers.models.unets.unet_2d.UNet2DOutput]]
```python
diffusers.models.unets.unet_2d.UNet2DOutput(sample: Tensor)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unets/unet_2d.py#L27)
**Parametreler:**
sample (`torch.Tensor`, şekli `(batch_size, num_channels, height, width)`) : Modelin son katmanından çıkan gizli durumlar.
[UNet2DModel](/docs/diffusers/main/tr/api/models/unet2d#diffusers.UNet2DModel)'in çıktısı.

Xet Storage Details

Size:
9.18 kB
·
Xet hash:
4c79294e0db350aed46cf06a805b369f277a75eeffea7e8dfa3819d9df8e04e1

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.