Papier | Projekt
Dies ist eine inoffizielle Implementierung von Palette: Image-zu-Image-Diffusionsmodelle von Pytorch und wird hauptsächlich von seiner Superauflösungsversion im Bild-Super-Auflösungs-VIA-Iiterativ-Refinement geerbt. Die Codevorlage stammt aus meinem anderen Saatgutprojekt: verteilt-pytorch-Template.
Es gibt einige Implementierungsdetails mit Papierbeschreibungen:
Guided-Diffusion angepasst, die der Stichprobenqualität erheblich steigert.DDPM verwendet.Palette und einbetten Sie es mit affine Transformation ein.Palette beschrieben. Ich versuche die folgenden Aufgaben in Ordnung zu beenden:
Das Follow-up-Experiment ist aufgrund mangelnder Zeit- und GPU-Ressourcen ungewiss:
Das DDPM -Modell erfordert erhebliche Rechenressourcen, und wir haben nur einige Beispielmodelle erstellt, um die Ideen in diesem Artikel zu validieren.
Ergebnisse mit 200 Epochen und 930.000 Iterationen sowie die ersten 100 Proben in Zentriermaske und unregelmäßiger Maske.
![]() | ![]() |
|---|
Ergebnisse mit 16 Epochen und 660K -Iterationen und den mehreren ausgewählten Proben in der Zentriermaske.
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Ergebnisse mit 8 Epochen und 330.000 Iterationen und die verschiedenen ausgewählten Proben in Enthüllung.
![]() | ![]() |
|---|
| Aufgaben | Datensatz | EMA | Fid (-) | Ist (+) |
|---|---|---|---|---|
| Inpainting mit Zentriermaske | Celeba-HQ | FALSCH | 5.7873 | 3.0705 |
| Inpainting mit unregelmäßiger Maske | Celeba-HQ | FALSCH | 5.4026 | 3.1221 |
pip install - r requirements . txt| Datensatz | Aufgabe | Iterationen | GPUs × Tage × Bs | URL |
|---|---|---|---|---|
| Celeba-HQ | Inpainting | 930k | 2 × 5 × 3 | Google Drive |
| Plätze2 | Inpainting | 660k | 4 × 8 × 10 | Google Drive |
BS zeigt die Probengröße pro GPU an.
Wir erhalten die meisten von ihnen von Kaggle, die sich möglicherweise etwas von der offiziellen Version unterscheiden, und Sie können sie auch von der offiziellen Website herunterladen.
Wir verwenden die Standardabteilung dieser Datensätze für Schulungen und Bewertung. Die von uns verwendeten Dateilisten finden Sie in Celeba-HQ, Places2.
Nachdem Sie eigene Daten erstellt haben, müssen Sie die entsprechende Konfigurationsdatei so ändern, dass sie auf Ihre Daten verweisen. Nehmen Sie das Folgende als Beispiel:
" 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 "
}
}, Weitere Auswahlmöglichkeiten zum DataLoader und zur Validierungsaufteilung finden Sie auch in datasets die Teil der Konfigurationsdatei sind.
resume_state der Datei auf das Verzeichnis des vorherigen Checkpoint. Nehmen wir Folgendes als Beispiel: Dieses Verzeichnis enthält Schulungszustände und ein gespeichertes Modell: " path " : { //set every part file path
" resume_state " : "experiments/inpainting_celebahq_220426_150122/checkpoint/100"
},load_everything von model.py fest, Standard ist Netzwerk . Befolgen Sie die Tutorial -Einstellungen, die Optimierer und Modelle werden von 100.State bzw. 100_network.PTH geladen. 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 Wir testen das in SR3 verwendete U-NET-Rückgrat und die Guided Diffusion Guided Diffusion und haben in unseren aktuellen Experimenten eine robustere Leistung. Weitere Auswahlmöglichkeiten zu Rückgrat , Verlust und Metrik finden Sie in which_networks Teil der Konfigurationsdatei.
python run . py - p test - c config / inpainting_celebahq . jsonErstellen Sie zwei Ordner, die Bodenwahrheitsbilder und Beispielbilder speichern, und ihre Dateinamen müssen sich gegenseitig entsprechen.
Führen Sie das Skript aus:
python eval . py - s [ ground image path ] - d [ sample image path ]Unsere Arbeit basiert auf folgenden theoretischen Werken:
Und wir profitieren viel von den folgenden Projekten: