Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 1.78 KB

README.md

File metadata and controls

62 lines (41 loc) · 1.78 KB

Image Denoising AutoEncoder

Dataset

Model was trained on MNIST dataset containing 60000 training images and 10000 test images.

Model Architecture

The model is a convolutional neural network (CNN) consisting of 6 layers.

Conv2d(input_channels,output_channels,kernel_size,padding,stride)
tConv2d(input_channels,output_channels,kernel_size,padding,stride,output-padding)

Encoding Layers

Layer 1: Conv2d(1,32,3,p=1,s=2)
Layer 2: Conv2d(32,64,3,p=1,s=2) 
Layer 3: Conv2d(64,128,5) 

Decoding Layers

Layer 4: tConv2d(128,64,5) 
Layer 5: tConv2d(64,32,3,p=1,s=2,op=1) 
Layer 6: tConv2d(32,1,3,p=1,s=2,op=1) 

Loss Function and Optimization

Hyperparameter value
Batch-Size 32
Learning-rate 0.001
num of Epochs 10
Loss MSE Loss
Optimizer Adam Optimizer

Loss Plot

lossgraph

Noise

Gaussian noise was added via torch.randn() with a tunable noise factor variable.

def add_noise(inputs,noise_factor=0.3):  
  noisy = inputs + (torch.randn_like(inputs) * noise_factor)  
  noisy = torch.clip(noisy,0.,1.)  
  return noisy 

Result

This project was built as a part of IvLabs Summer Internship 2021. You can refer to the IvLabs repository here