Package: wgangp-pytorch
WassersteinGAN_GP-PyTorchUpdate (Feb 21, 2020)The mnist and fmnist models are now available. Their usage is identical to the other models:fromwgangp_pytorchimportGeneratormodel=Generator.from_pretrained('g-mnist')OverviewThis repository contains an op-for-op PyTorch reimplementation ofImproved Training of Wasserstein GANs.The goal of this implementation is to be simple, highly extensible, and easy to integrate into your own projects. This implementation is a work in progress -- new features are currently being implemented.At the moment, you can easily:Load pretrained Generate modelsUse Generate models for extended datasetUpcoming features: In the next few days, you will be able to:Quickly finetune an Generate on your own datasetExport Generate models for productionTable of contentsAbout Wasserstein GAN GPModel DescriptionInstallationUsageLoad pretrained modelsExample: Extended datasetExample: VisualContributingAbout Wasserstein GAN GPIf you're new to Wasserstein GAN GP, here's an abstract straight from the paper:Generative Adversarial Networks (GANs) are powerful generative models, but suffer from training instability. The recently proposed Wasserstein GAN (WGAN) makes progress toward stable training of GANs, but sometimes can still generate only low-quality samples or fail to converge. We find that these problems are often due to the use of weight clipping in WGAN to enforce a Lipschitz constraint on the critic, which can lead to undesired behavior. We propose an alternative to clipping weights: penalize the norm of gradient of the critic with respect to its input. Our proposed method performs better than standard WGAN and enables stable training of a wide variety of GAN architectures with almost no hyperparameter tuning, including 101-layer ResNets and language models over discrete data. We also achieve high quality generations on CIFAR-10 and LSUN bedrooms.Model DescriptionWe have two networks, G (Generator) and D (Discriminator).The Generator is a network for generating images. It receives a random noise z and generates images from this noise, which is called G(z).Discriminator is a discriminant network that discriminates whether an image is real. The input is x, x is a picture, and the output is D of x is the probability that x is a real picture, and if it's 1, it's 100% real, and if it's 0, it's not real.InstallationInstall from pypi:pipinstallwgangp_pytorchInstall from source:gitclonehttps://github.com/Lornatang/WassersteinGAN_GP-PyTorch.gitcdWassersteinGAN_gp-PyTorch
pipinstall-e.UsageLoading pretrained modelsLoad an Wasserstein GAN GP:fromwgangp_pytorchimportGeneratormodel=Generator.from_name("g-mnist")Load a pretrained Wasserstein GAN GP:fromwgangp_pytorchimportGeneratormodel=Generator.from_pretrained("g-mnist")Example: Extended datasetAs mentioned in the example, if you load the pre-trained weights of the MNIST dataset, it will create a newimgsdirectory and generate 64 random images in theimgsdirectory.importosimporttorchimporttorchvision.utilsasvutilsfromwgangp_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!")Example: Visualcd $REPO$/framework
sh start.shThen open the browser and type in the browser addresshttp://127.0.0.1:10003/.
Enjoy it.ContributingIf you find a bug, create a GitHub issue, or even better, submit a pull request. Similarly, if you have questions, simply post them as GitHub issues.I look forward to seeing what the community does with these models!