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.10.tar.gz (8.6 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: GANetic-0.0.10.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.10.tar.gz
Algorithm Hash digest
SHA256 45d3f39bf4d7f4e8d4d604a9dc282da078d5064d7bf89d3bb0c8c364a205bd8e
MD5 d955d61b39a72144b4ee667571776894
BLAKE2b-256 ce49a6d953cfa906dd69fc0bf1a12d2f2efe19ae0d18b7b9d46ce203c268bbf8

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