該專案是一個深度卷積生成對抗網絡,可以從隨機種子中創建高品質圖像,如肖像、動物、圖畫等。
此模型是生成對抗網路 (GAN),如蒙特婁大學的論文生成對抗網路(2014) 所述
生成器和判別器都是深度卷積神經網絡,如Facebook AI Research的論文《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》 (2015 年)中所示,但有一些改進:
我加入了Nvidia的論文Progressive Growing of GANs for Improve Quality, Stability, and Variation (2017) 中的均衡學習率層
我從AdAdobe Research (2019) 的論文“Making Convolutional Networks Shift-Invariant Again”中添加了雙線性上採樣/下採樣
我從特拉維夫大學的論文《SWAGAN:基於風格的小波驅動生成模型》 (2021 年)實現了小波變換
我使用了具有恆定輸入的基於樣式的架構,從映射網絡學習樣式和噪聲注入,來自Nvidia的論文《用於生成對抗網絡的基於樣式的生成器架構》 (2018)
我添加了TomTom和AdAdobe的論文《MSG-GAN:生成對抗網路的多尺度梯度》 (2019) 中的“跳過連接”
我加入了Microsoft Research (2015) 論文《用於影像辨識的深度殘差學習》中的殘差塊
我在 OpenAI 的《Improved Techniques for Training GANs by OpenAI 》(2016)論文中的判別器末尾添加了小批量標準差
我保留了蒙特利爾大學論文生成對抗網絡(2014)中的原始非飽和損失
我在Nvidia的論文《Analyzing and Improving the Image Quality of StyleGAN》 (2019)中加入了“路徑長度正則化”
我在Google Brain的《Improved Training of Wasserstein GANs》 (2017 年)論文中的判別器上添加了梯度懲罰正則化
我從Nvidia的論文《Training Generative Adversarial Networks with Limited Data 》(2020)中添加了自適應鑑別器增強(ADA),但增強概率未經訓練,必須手動設置(並且由於缺少PyTorch 實現,一些增強被禁用)
我使用pytorch-fid模組從林茨大學(2017) 的論文GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium添加了訓練期間Fréchet Inception Distance (FID)的計算
我加入了一個投影儀,如Nvidia的論文《Analyzing and Improving the Image Quality of StyleGAN》 (2019)中所示
人臉256*256(FID:5.97)
動物臉256*256(FID:6.56)
動漫面孔 256*256 (FID: 3.74)
畫面256*256(FID:20.32)
Google Drive上提供了多個資料集上經過訓練的權重,您只需下載.pt
檔案並將其放入models
資料夾中即可。
執行以下命令來安裝依賴項:
$ pip install -r requirements.txt
(如果你想使用CUDA,你可能需要使用PyTorch的特定指令)
首先,您需要找到並下載映像資料集(少於 5,000 張可能太少,超過 150,000 張則沒有必要) 。您可以在Kaggle上找到很多資料集,以及我在Google Drive上使用的資料集。
然後,在training/settings.py
檔案中,指定資料集的路徑
如果您沒有像我一樣價格過高的 24GB GPU,則預設設定可能不適合您。您可以嘗試:
執行training.ipynb
檔案(由於檢查點,您可以隨時停止訓練並稍後恢復)
運行testing.ipynb
檔案產生隨機映像
運行testing/interpolation.ipynb
檔案產生平滑插值影片的影像
運行testing/projector.ipynb
檔案將真實影像投影到潛在空間中
運行testing/style_mixing.ipynb
檔案來產生風格混合插值影片的圖片
執行testing/timelapse.ipynb
檔案以產生訓練延時影片的影像