Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save udithhaputhanthri/cf5b9df55e5461cbcc9782736c61c472 to your computer and use it in GitHub Desktop.
Save udithhaputhanthri/cf5b9df55e5461cbcc9782736c61c472 to your computer and use it in GitHub Desktop.
Image-to-Image Translation Using Conditional DCGANs
# for 128,128 size
class Generator(nn.Module):
def __init__(self):
super(Generator,self).__init__()
self.enc_layer1=conv_block(4,8)
self.enc_layer2=conv_block(8,16)
self.enc_layer3=conv_block(16,32)
self.enc_layer4=conv_block(32,64)
self.enc_layer5=conv_block(64,128)
self.bottleneck=conv_block(128,256,kernel_size=4,stride=1,padding=0)
self.dec_layer1=transconv_block(256,128,kernel_size=4,stride=1,padding=0)
self.dec_layer2=transconv_block(256,64)
self.dec_layer3=transconv_block(128,32)
self.dec_layer4=transconv_block(64,16)
self.dec_layer5=transconv_block(32,8)
self.dec_layer6=transconv_block(16,3)
self.dec_layer7=nn.ConvTranspose2d(6,3,kernel_size=1,stride=1,padding=0)
def forward(self,x,z):
z=z.view(-1,1,128,128)
x=x.view(-1,3,128,128)
x_noisy=torch.cat([z,x],1)
enc1=self.enc_layer1(x_noisy)
enc2=self.enc_layer2(enc1)
enc3=self.enc_layer3(enc2)
enc4=self.enc_layer4(enc3)
enc5=self.enc_layer5(enc4)
latent=self.bottleneck(enc5)
dec1=torch.cat([self.dec_layer1(latent),enc5],1)
dec2=torch.cat([self.dec_layer2(dec1),enc4],1)
dec3=torch.cat([self.dec_layer3(dec2),enc3],1)
dec4=torch.cat([self.dec_layer4(dec3),enc2],1)
dec5=torch.cat([self.dec_layer5(dec4),enc1],1)
dec6=torch.cat([self.dec_layer6(dec5),x],1)
output=self.dec_layer7(dec6)
return output
class Discriminator(nn.Module):
def __init__(self):
super(Discriminator,self).__init__()
self.model=nn.Sequential(
conv_block(6,8),
conv_block(8,16),
conv_block(16,32),
conv_block(32,64),
conv_block(64,128),
nn.Conv2d(128,1,kernel_size=4,stride=1,padding=0),
nn.Sigmoid()
)
def forward(self,x,y):
x=x.view(-1,3,128,128)
y=y.view(-1,3,128,128)
concat=torch.cat([x,y],1)
out=self.model(concat)
label=out.view(-1,1)
return label #real/fake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment