Skip to main content

A Collection of GANs - PyTorch

Project description

GANetic

A collection of highly customizable GANs implemented in PyTorch.

Table of Contents

Installation

Stable version:

pip install ganetic

Latest version:

pip install git+https://github.com/kingjuno/ganetic.git

Usage

DCGAN

import torch

from ganetic.dcgan import Discriminator, Generator

netG = Generator(
    nz=100,  # length of latent vector
    nc=3,    # number of channels in the training images.
    ngf=64,  # size of feature maps in generator
)
netD = Discriminator(
    nc=3,    # number of channels in the training images.
    ndf=64,  # size of feature maps in discriminator
)

noise = torch.randn(1, 100)
fake_img = netG(noise)
prediction = netD(fake_img)

SRGAN

import torch

from ganetic.srgan import Generator, Discriminator

img = torch.randn(1, 3, 64, 64)
gen = Generator(
    scale_factor=4, # scale factor for super resolution
    nci=3,          # number of channels in input image
    nco=3,          # number of channels in output image
    ngf=64,         # number of filters in the generator
    no_of_residual_blocks=5
)
disc = Discriminator(
    input_shape=(3, 256, 256),
    ndf=64,              # number of filters in the discriminator
    negative_slope=0.2,  # negative slope of leaky relu
)

HR_img = gen(img)
pred = disc(HR_img)

Pix2Pix

import torch

from ganetic.pix2pix import Discriminator, Generator

img = torch.randn(1, 3, 256, 256)
gen = Generator(
    nci=3,  # number of channels in input image
    nco=3,  # number of channels in output image
    ngf=64  # number of filters in the generator
)

disc = Discriminator(
    nci=3,  # number of channels in input image
    ndf=64  # number of filters in the discriminator
)

fake = gen(img)
pred = disc(img, fake)

Conditional GANs

import torch

from ganetic.cgan import Discriminator, Generator

gen = Generator(
    n_classes=10,
    nz=100,
    nc=3,
    ngf=64,
    out_size=64,
    activation='relu',
    last_activation='tanh'
)
disc = Discriminator(
    n_classes=10,
    nc=3,
    ndf=64,
    in_size=64,
    activation='LeakyReLU',
    last_activation='sigmoid'
)

z = torch.randn(64, 100)
label = torch.LongTensor(64).random_(0, 10)

print(gen(z, label).shape)
print(disc(gen(z, label), label).shape)

CycleGAN

import torch

from ganetic.cyclegan import Discriminator, Generator

img = torch.randn(1, 3, 128, 128)

gen = Generator(
    nci=3,
    nco=3,
    ngf=64,
    no_of_residual_blocks=9,
    activation=torch.nn.ReLU(True),
    last_activation=torch.nn.Tanh(),
)
print(gen(img).shape)
disc = Discriminator(
    nci=3,
    ndf=64,
    no_of_layers=3,
    activation=torch.nn.ReLU(True),
    last_activation=torch.nn.Sigmoid(),
)
print(disc(img).shape)

Citations

@article{radford2015unsupervised,
  title={Unsupervised representation learning with deep convolutional generative adversarial networks},
  author={Radford, Alec and Metz, Luke and Chintala, Soumith},
  journal={arXiv preprint arXiv:1511.06434},
  year={2015}
}
@inproceedings{ledig2017photo,
  title={Photo-realistic single image super-resolution using a generative adversarial network},
  author={Ledig, Christian and Theis, Lucas and Husz{\'a}r, Ferenc and Caballero, Jose and Cunningham, Andrew and Acosta, Alejandro and Aitken, Andrew and Tejani, Alykhan and Totz, Johannes and Wang, Zehan and others},
  booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
  pages={4681--4690},
  year={2017}
}
@inproceedings{isola2017image,
  title={Image-to-image translation with conditional adversarial networks},
  author={Isola, Phillip and Zhu, Jun-Yan and Zhou, Tinghui and Efros, Alexei A},
  booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
  pages={1125--1134},
  year={2017}
}
@article{mirza2014conditional,
  title={Conditional generative adversarial nets},
  author={Mirza, Mehdi and Osindero, Simon},
  journal={arXiv preprint arXiv:1411.1784},
  year={2014}
}
@inproceedings{zhu2017unpaired,
  title={Unpaired image-to-image translation using cycle-consistent adversarial networks},
  author={Zhu, Jun-Yan and Park, Taesung and Isola, Phillip and Efros, Alexei A},
  booktitle={Proceedings of the IEEE international conference on computer vision},
  pages={2223--2232},
  year={2017}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

GANetic-0.0.11.tar.gz (8.6 kB view details)

Uploaded Source

File details

Details for the file GANetic-0.0.11.tar.gz.

File metadata

  • Download URL: GANetic-0.0.11.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for GANetic-0.0.11.tar.gz
Algorithm Hash digest
SHA256 849f7156a27a4820956aa0f8b3d5ed3058512d3e18118f78faf958ec96e0cc23
MD5 674d601af0e4dc9c883015db3c50789d
BLAKE2b-256 a200d23e0b02de4b24d1152a06a620957fc4fc9e3bfc5d75f868ca144937f39c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page