这是一个名为WGAN的新alogorithm,一个传统GAN训练的替代品!

wgan-pytorch的Python项目详细描述


瓦瑟施泰因·皮托奇

更新(2020年2月21日)

mnist和fmnist模型现在可用。它们的用法与其他型号相同:

fromwgan_pytorchimportGeneratormodel=Generator.from_pretrained('g-mnist')

概述

此存储库包含Wasserstein GAN的op for op PyTorch重新实现。在

这个实现的目标是简单,高度可扩展,并且易于集成到您自己的项目中。这个实现是一个正在进行的工作——新特性目前正在实现中。在

目前,您可以轻松地:

  • 加载预训练生成模型
  • 为扩展数据集使用生成模型

即将推出的功能:在接下来的几天内,您将能够:

  • 在您自己的数据集上快速调整生成
  • 导出生成生产模型

目录

  1. About Wasserstein GAN
  2. Model Description
  3. Installation
  4. Usage
  5. Contributing

关于Wasserstein GAN

如果你是刚接触过Wasserstein GAN,这里有一个直接摘自报纸的摘要:

我们引入了一种新的算法WGAN,它是传统GAN训练的一种替代。在这个新的模型中,我们证明我们可以提高学习的稳定性,消除模式崩溃等问题,并提供有意义的学习曲线,有助于调试和超参数搜索。此外,我们还证明了相应的优化问题是合理的,并提供了大量的理论工作,强调了与分布之间其他距离的深层联系。在

型号说明

我们有两个网络,G(生成器)和D(鉴别器)。生成器是生成图像的网络。它接收到一个随机噪声z,并从该噪声中生成图像,称为G(z),鉴别器是鉴别图像是否真实的鉴别网络。输入是x,x是一张图片,输出是D,x是一张真实图片的概率,如果是1,它是100%真实的,如果是0,它就不是真实的。在

安装

从pypi安装:

^{pr2}$

从源安装:

git clone https://github.com/Lornatang/WassersteinGAN-PyTorch.git
cd WassersteinGAN-PyTorch
pip install -e .

用法

加载预训练模型

装上一个瓦瑟斯坦干:

fromwgan_pytorchimportGeneratormodel=Generator.from_name("g-mnist")

加载预训练的Wasserstein GAN:

fromwgan_pytorchimportGeneratormodel=Generator.from_pretrained("g-mnist")

示例:扩展数据集

如示例中所述,如果加载MNIST数据集的预先训练的权重,它将创建一个新的imgs目录,并在imgs目录中生成64个随机图像。在

importosimporttorchimporttorchvision.utilsasvutilsfromwgan_pytorchimportGeneratordevice=torch.device("cuda:0"iftorch.cuda.is_available()else"cpu")model=Generator.from_pretrained("g-mnist")model.to(device)# switch to evaluate modemodel.eval()try:os.makedirs("./imgs")exceptOSError:passwithtorch.no_grad():foriinrange(64):noise=torch.randn(64,100,device=device)fake=model(noise)vutils.save_image(fake.detach(),f"./imgs/fake_{i:04d}.png",normalize=True)print("The fake image has been generated!")

示例:视觉

cd $REPO$/framework
sh start.sh

然后打开浏览器并输入浏览器地址http://127.0.0.1:10002/。 好好享受吧。在

贡献

如果你发现了一个bug,创建了一个GitHub问题,或者提交一个pull请求。类似地,如果您有问题,只需将其作为GitHub问题发布即可。在

我期待着看到社区对这些模型做了什么!在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过标记名检索多个标记中的元素以进行selenium自动化测试   java iText如何查找最后一行被拆分到下一页   java如何在hudson中的特定jdk上运行Findbugs和PMD?   如何确保java程序与java Environment 6兼容?   对形状进行分组,这样我就可以通过鼠标点击和java处理循环浏览它们   使用生成器映射对象时,java定义无效   maven Java:Struts2和IntelliJ供初学者使用   java子类不继承父类字段   java Android Grid View在Android版本kitkat上崩溃   java Hibernate从缓存返回错误的列表,即使预期的列表与缓存的列表不同   java SendGrid:模板和替换标记   用于普通生产者| Kafka流的java自定义分区器   安卓理解Java内部类中的作用域   无法从Android Studio中的非静态方法调用java非静态方法   比较两个XML响应的JavaXMLUnit   java使用keytool列出密钥   不使用Java客户端库将视频上传到YouTube数据API v3   java My While循环即使在满足条件时也不会结束   自动在外部存储字符串数据,以便以后在Java中使用