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

Model UNet awalnya diperkenalkan oleh Ronneberger dkk. untuk segmentasi citra biomedis, tetapi juga umum digunakan di πŸ€— Diffusers karena menghasilkan citra dengan ukuran yang sama dengan input. Ini adalah salah satu komponen terpenting dalam sistem difusi karena memfasilitasi proses difusi itu sendiri. Terdapat beberapa varian model UNet di πŸ€— Diffusers, tergantung pada jumlah dimensinya dan apakah model tersebut bersifat kondisional atau tidak. Ini adalah model UNet 1D.

Abstrak dari makalah tersebut adalah:

Ada konsensus besar bahwa pelatihan jaringan dalam yang sukses membutuhkan ribuan sampel pelatihan berlabel. Dalam makalah ini, kami menyajikan sebuah jaringan dan strategi pelatihan yang mengandalkan penggunaan kuat augmentasi data untuk menggunakan sampel berlabel yang tersedia secara lebih efisien. Arsitekturnya terdiri dari jalur kontraktif untuk menangkap konteks dan jalur ekspansi simetris yang memungkinkan lokalisasi yang presisi. Kami menunjukkan bahwa jaringan semacam ini dapat dilatih end-to-end dari sangat sedikit gambar dan melampaui metode terbaik sebelumnya (jaringan konvolusional sliding-window) pada tantangan ISBI untuk segmentasi struktur neuron dalam tumpukan mikroskop elektron. Menggunakan jaringan yang sama yang dilatih pada gambar mikroskopi cahaya transmisi (kontras fase dan DIC), kami memenangkan tantangan pelacakan sel ISBI 2015 dalam kategori-kategori tersebut dengan selisih yang besar. Selain itu, jaringan ini cepat. Segmentasi gambar 512x512 membutuhkan waktu kurang dari satu detik pada GPU terbaru. Implementasi lengkap (berbasis Caffe) dan jaringan yang telah dilatih tersedia di http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.

UNet1DModel

kelas 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 )

Parameter

  • sample_size (int, opsional) β€” Panjang default dari sampel. Seharusnya dapat beradaptasi saat runtime.
  • in_channels (int, opsional, default 2) β€” Jumlah channel pada sampel input.
  • out_channels (int, opsional, default 2) β€” Jumlah channel pada output.
  • extra_in_channels (int, opsional, default 0) β€” Jumlah channel tambahan yang akan ditambahkan ke input dari down block pertama. Berguna untuk kasus di mana data input memiliki lebih banyak channel daripada yang awalnya dirancang untuk model.
  • time_embedding_type (str, opsional, defaultnya "fourier") β€” Jenis time embedding yang akan digunakan.
  • freq_shift (float, opsional, default 0.0) β€” Pergeseran frekuensi untuk penanaman waktu Fourier.
  • flip_sin_to_cos (bool, opsional, default False) β€” Apakah akan membalik sin menjadi cos untuk Fourier time embedding.
  • down_block_types (tuple[str], opsional, defaultnya ("DownBlock1DNoSkip", "DownBlock1D", "AttnDownBlock1D")) β€” tuple dari tipe blok downsample.
  • up_block_types (tuple[str], opsional, defaultnya ("AttnUpBlock1D", "UpBlock1D", "UpBlock1DNoSkip")) β€” tuple dari tipe blok upsample.
  • block_out_channels (tuple[int], opsional, default (32, 32, 64)) β€” tuple dari kanal output blok.
  • mid_block_type (str, opsional, default "UNetMidBlock1D") β€” Jenis blok untuk bagian tengah UNet.
  • out_block_type (str, opsional, default None) β€” Blok pemrosesan output opsional dari UNet.
  • act_fn (str, opsional, defaultnya None) β€” Fungsi aktivasi opsional di blok UNet.
  • norm_num_groups (int, opsional, default 8) β€” Jumlah grup untuk normalisasi.
  • layers_per_block (int, opsional, default 1) β€” Jumlah lapisan per blok.
  • downsample_each_block (int, opsional, default False) β€” Fitur eksperimental untuk menggunakan UNet tanpa upsampling.

Model UNet 1D yang menerima sampel berisik dan timestep, lalu mengembalikan output berbentuk sampel.

Model ini mewarisi dari ModelMixin. Periksa dokumentasi kelas induk untuk metode generiknya yang diimplementasikan untuk semua model (seperti mengunduh atau menyimpan).

forward

< >

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

Parameter

  • sample (torch.Tensor) β€” Tensor input berisik dengan bentuk berikut (batch_size, num_channels, sample_size).
  • timestep (torch.Tensor atau float atau int) β€” Jumlah timestep untuk mendenoise input.
  • return_dict (bool, opsional, default True) β€” Apakah akan mengembalikan UNet1DOutput alih-alih tuple biasa.

Mengembalikan

UNet1DOutput atau tuple

Jika return_dict bernilai True, sebuah UNet1DOutput akan dikembalikan, selain itu sebuah tuple akan dikembalikan di mana elemen pertama adalah tensor sampel.

Metode forward dari UNet1DModel.

UNet1DOutput

kelas diffusers.models.unets.unet_1d.UNet1DOutput

< >

( sample: Tensor )

Parameter

  • sample (torch.Tensor dengan bentuk (batch_size, num_channels, sample_size)) β€” Output hidden states dari lapisan terakhir model.

Output dari UNet1DModel.

Update on GitHub