Kertas | Proyek
Ini adalah implementasi palet yang tidak resmi: model difusi gambar-ke-gambar oleh Pytorch , dan terutama diwarisi dari versi super-resolusi gambar-super-resolution-via-iterative-refinement. Templat kode berasal dari proyek benih saya yang lain: didistribusikan-pytorch-template.
Ada beberapa detail implementasi dengan deskripsi kertas:
Guided-Diffusion , yang memberikan dorongan substansial untuk kualitas sampel.DDPM .Palette dan embedanya dengan transformasi affine.Palette . Saya mencoba menyelesaikan tugas berikut secara berurutan:
Eksperimen tindak lanjut tidak pasti, karena kurangnya waktu dan sumber daya GPU:
Model DDPM membutuhkan sumber daya komputasi yang signifikan, dan kami hanya membangun beberapa contoh model untuk memvalidasi ide -ide dalam makalah ini.
Hasil dengan 200 zaman dan iterasi 930k, dan 100 sampel pertama dalam topeng centering dan topeng tidak teratur.
![]() | ![]() |
|---|
Hasil dengan 16 zaman dan iterasi 660k, dan beberapa sampel memilih dalam topeng centering.
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Hasil dengan 8 zaman dan iterasi 330k, dan beberapa sampel memilih dalam uncropping.
![]() | ![]() |
|---|
| Tugas | Dataset | Ema | FID (-) | Adalah (+) |
|---|---|---|---|---|
| Menghain dengan topeng centering | Celeba-hq | PALSU | 5.7873 | 3.0705 |
| Inpainting dengan topeng tidak teratur | Celeba-hq | PALSU | 5.4026 | 3.1221 |
pip install - r requirements . txt| Dataset | Tugas | Iterasi | GPU × Hari × BS | Url |
|---|---|---|---|---|
| Celeba-hq | Inpainting | 930k | 2 × 5 × 3 | Google Drive |
| Tempat2 | Inpainting | 660k | 4 × 8 × 10 | Google Drive |
BS menunjukkan ukuran sampel per GPU.
Kami mendapatkan sebagian besar dari mereka dari Kaggle, yang mungkin sedikit berbeda dari versi resmi, dan Anda juga dapat mengunduhnya dari situs web resmi.
Kami menggunakan divisi default dari set data ini untuk pelatihan dan evaluasi. Daftar file yang kami gunakan dapat ditemukan di Celeba-HQ, Places2.
Setelah menyiapkan data sendiri, Anda perlu memodifikasi file konfigurasi yang sesuai untuk menunjuk ke data Anda. Ambil berikut sebagai contoh:
" which_dataset " : { // import designated dataset using arguments
" name " : ["data.dataset", "InpaintDataset"], // import Dataset() class
" args " :{ // arguments to initialize dataset
" data_root " : " your data path " ,
" data_len " : -1,
" mask_mode " : " hybrid "
}
}, Lebih banyak pilihan tentang DataLoader dan validasi split juga dapat ditemukan di datasets bagian dari file configure.
resume_state dari file configure ke direktori pos pemeriksaan sebelumnya. Ambil contoh berikut, direktori ini berisi status pelatihan dan model yang disimpan: " path " : { //set every part file path
" resume_state " : "experiments/inpainting_celebahq_220426_150122/checkpoint/100"
},load_everything dari model.py , default adalah jaringan . Ikuti pengaturan tutorial, pengoptimal dan model akan dimuat dari 100.State dan 100_network.pth. netG_label = self . netG . __class__ . __name__
self . load_network ( network = self . netG , network_label = netG_label , strict = False ) python run . py - p train - c config / inpainting_celebahq . json Kami menguji tulang punggung U-Net yang digunakan dalam SR3 dan Guided Diffusion , dan Guided Diffusion seseorang memiliki kinerja yang lebih kuat dalam percobaan kami saat ini. Lebih banyak pilihan tentang tulang punggung , kehilangan dan metrik dapat ditemukan di bagian which_networks File.
python run . py - p test - c config / inpainting_celebahq . jsonBuat dua folder yang menyimpan gambar kebenaran tanah dan sampel gambar, dan nama file mereka harus saling berhubungan.
Jalankan skrip:
python eval . py - s [ ground image path ] - d [ sample image path ]Pekerjaan kami didasarkan pada karya teoretis berikut:
Dan kami mendapat banyak manfaat dari proyek -proyek berikut: