Download Generator.py from AyoubMDL/DCGAN: direct link, hf CLI and curl.
- Browser
- Download file 1.81 kB
-
https://huggingface.co/spaces/AyoubMDL/DCGAN/resolve/main/Generator.py
- Command line
-
hf download hf://spaces/AyoubMDL/DCGAN/Generator.py
-
curl -L -o Generator.py https://huggingface.co/spaces/AyoubMDL/DCGAN/resolve/main/Generator.py
1.81 kB
| import torch | |
| import torch.nn as nn | |
| class Config: | |
| workers = 2 # Number of workers for dataloader | |
| batch_size = 128 # Batch size during training | |
| image_size = 64 | |
| nc = 3 # Number of channels in the training images | |
| nz = 100 # Size of z latent vector (i.e. size of generator input) | |
| ngf = 64 # Size of feature maps in generator | |
| ndf = 64 # Size of feature maps in discriminator | |
| num_epochs = 15 # Number of training epochs | |
| lr = 0.0002 # Learning rate for optimizers | |
| beta1 = 0.5 # Beta1 hyperparam for Adam optimizers | |
| ngpu = 1 # Number of GPUs available. Use 0 for CPU mode. | |
| class Generator(nn.Module): | |
| def __init__(self, ngpu): | |
| super(Generator, self).__init__() | |
| self.ngpu = ngpu | |
| self.network = nn.Sequential( | |
| # input is Z, going into a convolution | |
| nn.ConvTranspose2d(Config.nz, Config.ngf * 8, 4, 1, 0, bias=False), | |
| nn.BatchNorm2d(Config.ngf * 8), | |
| nn.ReLU(True), | |
| # state size. (ngf*8) x 4 x 4 | |
| nn.ConvTranspose2d(Config.ngf * 8, Config.ngf * 4, 4, 2, 1, bias=False), | |
| nn.BatchNorm2d(Config.ngf * 4), | |
| nn.ReLU(True), | |
| # state size. (ngf*4) x 8 x 8 | |
| nn.ConvTranspose2d(Config.ngf * 4, Config.ngf * 2, 4, 2, 1, bias=False), | |
| nn.BatchNorm2d(Config.ngf * 2), | |
| nn.ReLU(True), | |
| # state size. (ngf*2) x 16 x 16 | |
| nn.ConvTranspose2d(Config.ngf * 2, Config.ngf, 4, 2, 1, bias=False), | |
| nn.BatchNorm2d(Config.ngf), | |
| nn.ReLU(True), | |
| # state size. (ngf) x 32 x 32 | |
| nn.ConvTranspose2d(Config.ngf, Config.nc, 4, 2, 1, bias=False), | |
| nn.Tanh() | |
| # state size. (nc) x 64 x 64 | |
| ) | |
| def forward(self, xb): | |
| return self.network(xb) |