Skip to main content

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}
}

Metadata

Release files for GANetic 0.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for GANetic 0.0.11
File Size Uploaded
GANetic-0.0.11.tar.gz 8.6 kB Details

Release files / GANetic-0.0.11.tar.gz

Download URL GANetic-0.0.11.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
849f7156a27a4820956aa0f8b3d5ed3058512d3e18118f78faf958ec96e0cc23
BLAKE2b-256 checksum
How to use checksums
a200d23e0b02de4b24d1152a06a620957fc4fc9e3bfc5d75f868ca144937f39c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.0.11 This release

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page