该项目是一个深度卷积生成对抗网络,可以从随机种子中创建高质量图像,如肖像、动物、图画等。
该模型是生成对抗网络 (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) 中的均衡学习率层
我从Adobe Research (2019) 的论文“Making Convolutional Networks Shift-Invariant Again”中添加了双线性上采样/下采样
我从特拉维夫大学的论文《SWAGAN:基于风格的小波驱动生成模型》 (2021 年)中实现了小波变换
我使用了具有恒定输入的基于样式的架构,从映射网络学习样式和噪声注入,来自Nvidia的论文《用于生成对抗网络的基于样式的生成器架构》 (2018)
我添加了TomTom和Adobe的论文《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
文件以生成训练延时视频的图像