Learn practical skills, build real-world projects, and advance your career

# Jovian Commit Essentials
# Please retain and execute this cell without modifying the contents for `jovian.commit` to work
!pip install jovian --upgrade -q
import jovian
jovian.set_project('deep-convolutional-gans')
jovian.set_colab_id('1OJEQiXUxAy6TkfsasO_TjjZBDQWg8NFZ')

deep-convolutional-gans

Use the "Run" button to execute the code.

import torch 
import torch.nn as nn
import numpy as np
import torchvision.transforms as transforms
import torchvision.datasets as dataset
from   torch.utils.data import DataLoader
import torch.optim as optim
def initialize_weights(model):
  for m in model.modules():
    if isinstance(m,(nn.Conv2d,nn.ConvTranspose2d,nn.BatchNorm2d)):
      nn.init.normal_(m.weight.data, 0.0,0.02)
from torch.nn.modules.activation import Sigmoid
class Descriminator(nn.Module):
  def __init__(self,in_ch,feature_d):
    super().__init__()
    self.desc = nn.Sequential(
        nn.Conv2d(in_ch,feature_d,kernel_size=4,stride=2,padding=1),
        nn.LeakyReLU(0.2),
        self._block(feature_d,feature_d*2,4,2,1),
        self._block(feature_d*2,feature_d*4,4,2,1),
        self._block(feature_d*4,feature_d*8,4,2,1),
        nn.Conv2d(feature_d*8,1,4,1,0),
        nn.Sigmoid()
    )
  def _block(self,in_ch,out_ch,kernel_size,stride,padding):  
    return nn.Sequential(
        nn.Conv2d(in_ch,out_ch,kernel_size,stride,padding),
        nn.BatchNorm2d(out_ch),
        nn.LeakyReLU(0.2)
    )
  def forward(self,input):
    return self.desc(input)