涵盖18+ SOTA GAN实现,这个图像生成领域的PyTorch库火了

2021 年 3 月 1 日 机器之心
机器之心报道
作者:杜伟、陈萍

GAN 自从被提出后,便迅速受到广泛关注。我们可以将 GAN 分为两类,一类是无条件下的生成;另一类是基于条件信息的生成。近日,来自韩国浦项科技大学的硕士生在 GitHub 上开源了一个项目,提供了条件 / 无条件图像生成的代表性生成对抗网络(GAN)的实现。


近日,机器之心在 GitHub 上看到了一个非常有意义的项目 PyTorch-StudioGAN,它是一个 PyTorch 库,提供了条件 / 无条件图像生成的代表性生成对抗网络(GAN)的实现。据主页介绍,该项目旨在提供一个统一的现代 GAN 平台,这样机器学习领域的研究者可以快速地比较和分析新思路和新方法等。

该项目的作者为韩国浦项科技大学的硕士生,他的研究兴趣主要包括深度学习、机器学习和计算机视觉。


项目地址:https://github.com/POSTECH-CVLab/PyTorch-StudioGAN

具体而言,该项目具有以下几个显著特征:

  • 提供了大量 PyTorch 框架的 GAN 实现;

  • 基于 CIFAR 10、Tiny ImageNet 和 ImageNet 数据集的 GAN 基准;

  • 相较原始实现的更好的性能和更低的内存消耗;

  • 提供完全最新 PyTorch 环境的预训练模型;

  • 支持多 GPU(DP、DDP 和多节点 DDP)、混合精度、同步批归一化、LARS、Tensorboard 可视化和其他分析方法。


对于这个 PyTorch GAN 库,有网友表示:「看上去很不错!如果可以提供 top-k 等现代训练实践以及各种增强方法就更棒了。」对此,项目作者称其会在 NeurIPS 论文提交截止日期之后,添加一些改进的方法,如 Sinha 等人的 Tok-K 训练以及 Langevin 采样和 SimCLR 增强。


此外,有网友询问是否可以将该项目用于图像之外的其他领域。作者表示可以,即使无法使用一些稳定器(如 diffaug、ada 等),依然可以通过调整 dataLoader 来训练自己的模型。


18+ SOTA GAN 实现

如下图所示,项目作者提供了 18 + 个 SOTA GAN 的实现,包括 DCGAN、LSGAN、GGAN、WGAN-WC、WGAN-GP、WGAN-DRA、ACGAN、ProjGAN、SNGAN、SAGAN、BigGAN、BigGAN-Deep、CRGAN、ICRGAN、LOGAN、DiffAugGAN、ADAGAN、ContraGAN 和 FreezeD。

cBN:条件批归一化;AC:辅助分类器;PD:Projection 判别器;CL:对比学习。

其中,需要注意以下几点:

  • G/D_type 表示将标签信息注入生成器或判别式的方式;

  • EMA 表示生成器中应用更新后的指数移动平均线;

  • Tiny ImageNet 数据集上的实验使用的是 ResNet 架构而不是 CNN。


下图中 StyleGAN2 为即将实现的 GAN 网络,其中 AdaIN 表示自适应实例归一化(Adaptive Instance Normalization)。


环境要求

  • Anaconda

  • Python >= 3.6

  • 6.0.0 <= Pillow <= 7.0.0

  • scipy == 1.1.0

  • sklearn

  • seaborn

  • h5py

  • tqdm

  • torch >= 1.6.0 

  • torchvision >= 0.7.0

  • tensorboard

  • 5.4.0 <= gcc <= 7.4.0

  • torchlars 


用户可以采用以下方法安装推荐的环境:

conda env create -f environment.yml -n studiogan

在 docker 中还可以采用以下方式:

docker pull mgkang/studiogan:latest

以下是创建名字为「studioGAN」容器的命令,同样也可以使用端口号为 6006 来连接 tensoreboard。

docker run -it --gpus all --shm-size 128g -p 6006:6006 --name studioGAN -v /home/USER:/root/code --workdir /root/code mgkang/studiogan:latest /bin/bash

使用方法

使用 GPU 0 的情况下,在 CONFIG_PATH 中对于模型的训练「-t」和评估「-e」进行了定义:

CUDA_VISIBLE_DEVICES=0 python3 src/main.py -t -e -c CONFIG_PATH

在使用 GPU (0, 1, 2, 3) 和 DataParallel 情况下,在 CONFIG_PATH 中对于模型的训练「-t」和评估「-e」进行了定义:

CUDA_VISIBLE_DEVICES=0,1,2,3 python3 src/main.py -t -e -c CONFIG_PATH

在 python3 src/main.py 程序中查看可用选项,通过 Tensorboard 可以监控 IS、FID、F_beta、Authenticity Accuracies 以及最大奇异值:

~ PyTorch-StudioGAN/logs/RUN_NAME>>> tensorboard --logdir=./ --port PORT

可视化以及分析生成图像

StudioGAN 支持 图像可视化、k 最近邻分析、线性差值以及频率分析 。所有的结果保存在「./figures/RUN_NAME/*.png」中。

图像可视化的代码和示例如下:

CUDA_VISIBLE_DEVICES=0,...,N python3 src/main.py -iv -std_stat --standing_step STANDING_STEP -c CONFIG_PATH --checkpoint_folder CHECKPOINT_FOLDER --log_output_path LOG_OUTPUT_PATH


k 最近邻分析,这里固定 K=7,第一列中是生成的图像:

CUDA_VISIBLE_DEVICES=0,...,N python3 src/main.py -knn -std_stat --standing_step STANDING_STEP -c CONFIG_PATH --checkpoint_folder CHECKPOINT_FOLDER --log_output_path LOG_OUTPUT_PATH


线性插值(仅适用于有条件的 Big ResNet 模型 )的代码和示例如下:

CUDA_VISIBLE_DEVICES=0,...,N python3 src/main.py -itp -std_stat --standing_step STANDING_STEP -c CONFIG_PATH --checkpoint_folder CHECKPOINT_FOLDER --log_output_path LOG_OUTPUT_PATH


参考链接:https://www.reddit.com/r/MachineLearning/comments/lu9gen/p_pytorch_gan_library_that_provides/

AWS白皮书《策略手册:数据、 分析与机器学习》


曾存储过 GB 级业务数据的组织现在发现,所存储的数据量现已达 PB 级甚至 EB 级。要充分利用这 些海量数据的价值,就需要利用现代化云数据基础设施,从而将不同的信息竖井融合统一。

无论您处于数据现代化改造过程中的哪个阶段,本行动手册都能帮助您完善策略,在整个企业范围内高效扩展数据、分析和机器学习,从而加快创新并推动业务发展。

点击阅读原文,免费领取白皮书


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

登录查看更多
1

相关内容

GAN:生成性对抗网,深度学习模型的一种,在神经网络模型中引入竞争机制,非常流行。
专知会员服务
94+阅读 · 2021年2月6日
生成对抗网络GAN在各领域应用研究进展(中文版),37页pdf
专知会员服务
150+阅读 · 2020年12月30日
生成对抗网络GAN的发展与最新应用
专知会员服务
125+阅读 · 2020年8月13日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
31+阅读 · 2020年1月10日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
Github 项目推荐 | PyTorch 实现的 GAN 文本生成框架
AI研习社
35+阅读 · 2019年6月10日
带你读论文 | 生成对抗网络GAN论文TOP 10
微软研究院AI头条
24+阅读 · 2019年4月11日
必读!生成对抗网络GAN论文TOP 10
GAN生成式对抗网络
58+阅读 · 2019年3月20日
论文推荐 | 生成对抗网络GAN论文TOP 10
机器学习算法与Python学习
5+阅读 · 2019年3月20日
用PyTorch实现各种GANs(附论文和代码地址)
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
wGAN如何解决GAN已有问题(附代码实现)
数据派THU
17+阅读 · 2017年6月27日
Arxiv
1+阅读 · 2021年6月23日
Arxiv
9+阅读 · 2021年2月8日
Arxiv
4+阅读 · 2018年3月23日
Arxiv
5+阅读 · 2018年1月29日
VIP会员
相关资讯
Github 项目推荐 | PyTorch 实现的 GAN 文本生成框架
AI研习社
35+阅读 · 2019年6月10日
带你读论文 | 生成对抗网络GAN论文TOP 10
微软研究院AI头条
24+阅读 · 2019年4月11日
必读!生成对抗网络GAN论文TOP 10
GAN生成式对抗网络
58+阅读 · 2019年3月20日
论文推荐 | 生成对抗网络GAN论文TOP 10
机器学习算法与Python学习
5+阅读 · 2019年3月20日
用PyTorch实现各种GANs(附论文和代码地址)
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
wGAN如何解决GAN已有问题(附代码实现)
数据派THU
17+阅读 · 2017年6月27日
Top
微信扫码咨询专知VIP会员