机器之心报道
编辑:杜伟
整个项目在 NVIDIA V100 内部集群上消耗了 92 个 GPU year 和 225 兆瓦时的电力,英伟达的 StyleGAN3 果然「壕气冲天」。
今年 7 月,英伟达 StyleGAN 团队在 NeurIPS 2021 论文《 Alias-Free Generative Adversarial Networks 》中推出了 Alias-Free GAN,也即 StyleGAN3。
论文地址:https://arxiv.org/pdf/2106.12423.pdf
我们知道,典型的 GAN 具有分层卷积性质,但它们的合成过程过度依赖于绝对像素坐标。这就导致图像细节会粘连在坐标上,而不在描述对象的表面。因此,英伟达的研究者探究导致生成器网络中出现混叠的 careless 信号处理的根本原因。通过将网络中所有信号解读为连续性,他们进行了普遍适用的、小的架构变化,保证多余信息不会参与分层合成过程,并由此得到了 StyleGAN3。
与 StyleGAN2 相比,StyleGAN3 获得了类似的 FID,但内部表征存在显著差异,并在亚像素尺度上实现了真正的图像平移和旋转不变性,从而大幅度提升生成图像的质量。研究者在论文中表示,StyleGAN3 为更适用于视频和动画的生成模型铺平了道路。
我们从以下两个 Demo 可以看出 StyleGAN3 和 StyleGAN2 的效果差异,StyleGAN3 在头发、胡须、笑容等的转换、移动方面更加地流畅、平滑。
当时,StyleGAN3 没有开源代码。近日,英伟达终于上传了 StyleGAN3 的官方 PyTorch 实现。短短一天时间,GitHub 获星 1.4k。
GitHub地址:https://github.com/NVlabs/stylegan3
项目主页:https://nvlabs.github.io/stylegan3/
不过,英伟达的 StyleGAN3 项目消耗了令人难以想象的资源和电力。研究者在论文中表示,整个项目在 NVIDIA V100 内部集群上消耗了 92 个 GPU year(即单个 GPU 一年的计算)和 225 兆瓦时(Mwh)的电力。
对此,有网友评论称,「225 兆瓦时的电力相当于整个核反应堆运行大约 15 分钟,果然「残暴」啊!」
英伟达StyleGAN3 的开源也让用户的「脑洞」打开,推特上一位大神 @RiversHaveWings「玩出了花」。
StyleGAN3 新特性
StyleGAN3 库是 StyleGAN2-ADA 官方 PyTorch 实现的更新版,具有以下几个新特性:
Alias-free 生成器架构和训练配置(stylegan3-t 和 stylegan3-r);
提供交互式可视化(visualizer.py)、频谱分析(avg_spectra.py)和视频生成(gen_video.py)的工具;
同变性度量(eqt50k_int、 eqt50k_frac 和 eqr50k);
其他改进:减少内存使用、训练速度略升以及 bug 修复。
就兼容性来说,StyleGAN3 兼容使用 stylegan2-ada 和 stylegan2-ada-pytorch 创建的旧的网络 pickles,支持 ADA 和迁移学习等旧的 StyleGAN2 训练配置,并提升了与英伟达 Ampere GPU 和更新版本 PyTorch、CuDNN 等的兼容性。
安装要求
安装 StyleGAN3 时需要满足以下一些要求:
支持 Linux 和 Windows 系统,但从性能和兼容性两方面考虑,建议使用 Linux 系统;
1 到 8 块至少 12G 内存的高端英伟达 GPU。团队已经使用 Tesla V100 和 A100 GPU 完成了所有测试和开发;
64-bit Python 3.8 和 PyTorch 1.9.0(或更新版本);
CUDA 工具包 11.1 或更新版本;
用户可以使用 Miniconda3,通过以下命令创建 StyleGAN3 Python 环境:conda env create -f environment.yml
和 conda activate stylegan3;
对于 Docker 用户,确保自己正确安装英伟达 Container Runtime (https://docs.docker.com/config/containers/resource_constraints/#gpu),并使用提供 Dockerfile 创建具有所需库依赖的映像。
交互式可视化工具
StyleGAN3 库包含一个交互式模型可视化工具,可用于探索训练模型的各种特性。工具启动前需要运行以下代码
可视化界面如下所示:
StyleGAN3 的更多细节详见 GitHub 项目。
参考链接:https://www.reddit.com/r/MachineLearning/comments/q6ark8/r_stylegan3_aliasfree_generative_adversarial/