Package: dcgan-pytorch
DCGAN-PyTorchUpdate (January 29, 2020)The mnist and fmnist models are now available. Their usage is identical to the other models:fromdcgan_pytorchimportGeneratormodel=Generator.from_pretrained('g-mnist')OverviewThis repository contains an op-for-op PyTorch reimplementation ofUnsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks.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 Deep Convolutional Generative Adversarial NetworksModel DescriptionInstallationUsageLoad pretrained modelsExample: Extended datasetExample: VisualContributingAbout Deep Convolutional Generative Adversarial NetworksIf you're new to DCGAN, here's an abstract straight from the paper:In recent years, supervised learning with convolutional networks (CNNs) has seen huge adoption in computer vision applications. Comparatively, unsupervised learning with CNNs has received less attention. In this work we hope to help bridge the gap between the success of CNNs for supervised learning and unsupervised learning. We introduce a class of CNNs called deep convolutional generative adversarial networks (DCGANs), that have certain architectural constraints, and demonstrate that they are a strong candidate for unsupervised learning. Training on various image datasets, we show convincing evidence that our deep convolutional adversarial pair learns a hierarchy of representations from object parts to scenes in both the generator and discriminator. Additionally, we use the learned features for novel tasks - demonstrating their applicability as general image representations.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:pipinstalldcgan_pytorchInstall from source:gitclonehttps://github.com/Lornatang/DCGAN-PyTorch.gitcdDCGAN-PyTorch
pipinstall-e.UsageLoading pretrained modelsLoad an Deep-Convolutional-Generative-Adversarial-Networks:fromdcgan_pytorchimportGeneratormodel=Generator.from_name("g-mnist")Load a pretrained Deep-Convolutional-Generative-Adversarial-Networks:fromdcgan_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.utilsasvutilsfromdcgan_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,1,1,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:10001/.
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!