This paper introduces a method that very closely estimates the solution that could have been produced by an ensembling technique, requiring only a single model to work with. And in return, not only provides faster inference performance, but also wider optima, and thus making the model better generalized.

Wider optima are goooooood. Source

Article Overview

The idea behind any version of an ensembling technique is to use multiple learning algorithms to obtain better predictive performance than what could be obtained from any of the constituent learning algorithms alone. And to be honest, I’m not a huge fan of them. Now such techniques work great for Kaggle competitions, or anywhere where deployment is not a concern. But elsewise, it’s not an easy technique to work with, because the ratio of accuracy improvement versus performance regression is too low. …


Implementing Deep Image Priors with Pytorch, to remove the watermark from watermarked images, without any model training to learn image priors and statistics.

Final outputs from my project. First original image source, second original image source.

Note

Before I begin, I’d like to point out that this article is only meant to be utilized for educational purposes. I do not encourage any violation of any creator’s original content and hard work in any shape or form.

Project Overview

CNNs are very common for image generation and restoration tasks. And it is believed that their great performance is because of their ability to learn realistic image priors from training on large datasets. The paper Deep Image Prior, shows that the structure of a generator alone is sufficient to provide enough low-level image statistics without any learning. …


Implementing CNN based regression for predicting facial landmarks using Xception Net architecture with Pytorch

Final outputs from my project :). Image sources: source 1, BBC News, source 2, source 3.

Project Overview

The main goal of this project is to make 136 predictions for x and y coordinate values, for a total of 68 facial landmarks. In a nutshell, it’s just a regular regression problem, therefore the model will be predicting 136 scalars as outputs. The issue with such a project is performance. In an image, there could be hundreds of faces, so unless our landmark detection model is fast enough, deploying the project for real-time inference wouldn’t be possible.

Keeping that in mind, I followed a CNN architecture known as Xception Net, using which, I was able to reduce the parameters…


Implementing Deep Convolutional Generative Adversarial Networks or DCGAN to generate high-quality images of shape 128x128 containing fake anime cartoon characters.

Final outputs from my project :)

Project Overview

With this project, I wanted to create some clear looking cartoon characters. Now obviously using the latest version of a Style GAN might have been a better choice, but I decided to stick to a very simple paper for now and got pretty neat results. I’ve Implemented paper called DCGAN, for generating fake anime characters. Such a simple model is actually able to produce surprisingly good results when trained enough. …


Performance is highly concerned when the ultimate goal for a project is deployment. Though, before any deployment, the prototyping of the system is necessary. More prototypes, means more experiments with more failures, hence more improvements. So following practices for having fast prototyping is a natural choice. Let’s have a look at some of the best guides for fast experimentations in Pytorch.

Photo by Marc-Olivier Jodoin on Unsplash

Article Overview

Alright, so Pytorch has been one of my de facto choices for handling complex deep learning pipelines, like reading complex data, creating heavy models, and how can I forget the debugging. Now Pytorch already is pretty fast and memory-efficient, however, I will not hesitate to make my script even faster :) With that being said, let’s have a look at some of the very simple guidelines, that can easily be applied and make your model train both faster and efficiently.

Enabling Asynchronous Data Loading And Preprocessing

In case you don’t know, Pytorch does support asynchronous data loading, that is reading, preprocess, and applying the data augmentations…


In this article we’ll see how simple practices when applied together can significantly improve model accuracy, also easing out and simplify the training process.

Photo by JESHOOTS.COM on Unsplash

Article Overview

I’ve seen a lot of DL projects where people would be using the latest and the greatest from what deep learning has to offer, to finish up a project, and repeating some of the very basic mistakes again and again. And I’ve been there too, but ever since I’ve started working for a startup, it made me responsible enough to not be lazy anymore, and not overlook the basics. So let’s have a glance at some of the silly mistakes I used to make, that I can bet you most likely do too.

1. Training model from scratch

So unless you’re only implementing a project…


Making Sense of Big Data

Implementing gradient accumulation and automatic mixed precision to solve CUDA out of memory issue when training big deep learning models which requires high batch and input sizes

Photo by Ernest Brillo on Unsplash

Article Overview

Do you remember that delightful time, when you were so happily preprocessing your data, building your model with so many efforts, and then right at the moment when you expect to enjoy that soda while your model trains, an error pops up, telling you to get your butt down here again because you don’t have enough CUDA memory to enjoy? Well, I certainly can’t forget that, and this seriously is a really common issue among ML engineers. Alright then, let’s figure out if there’s a solution to our soda problem.

Explaining The Error

RuntimeError: CUDA error: out of memory

There’s nothing to explain…


Photo by Sai Kiran Anagani on Unsplash

Article overview

Ever since this covid pandemic, I’ve been working and studying remotely. And it is unfortunate of course, but I’m just way more productive than I ever was. And this is the best moment for me to try even harder to upsample my progress. With this in mind, I decided to follow Input less, Output more tact. The very first step that naturally comes to my mind is to include some kind of automation in my day to day workspace. And with that said, let’s get started.

My two cents on automation

Automation is not about just automating

In programming at least, the idea behind any automation is to reduce the effort…

Rishik C. Mourya

2nd yr Undergrad | ML Engineer at Nevronas.in | Working at Skylarklabs.ai | Web Developer | When you know nothing matters, the universe is yours — Rick Sanchez

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store