Model was trained on MNIST dataset containing 60000 training images and 10000 test images.
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)
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)
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)
Hyperparameter | value |
---|---|
Batch-Size | 32 |
Learning-rate | 0.001 |
num of Epochs | 10 |
Loss | MSE Loss |
Optimizer | Adam Optimizer |
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
This project was built as a part of IvLabs Summer Internship 2021. You can refer to the IvLabs repository here