Learn how to do local machine like development and debugging on the cloud (remote instances) using Visual Studio Code for Deep Learning.

Photo by heylagostechie on Unsplash

Before joining the industry, when I was working as a Graduate Researcher in the Vision and Image Processing Lab at the University of Waterloo, I had access to the beast NVIDIA® GeForce® RTX 2080 Ti locally. So I was able to train models locally without needing to use compute instances on the cloud. (Sadly I didn’t work on models that required multi GPU training.) However, after joining Fugro as a Deep Learning/ Computer Vision Engineer, I was exposed to AWS EC2 instances and S3.

Development on the cloud is a completely different experience compared to just using a laptop/desktop. I’ve…

Photo by ThisisEngineering RAEng on Unsplash

If you have been reading about deep learning, you must have definitely heard the term back-propagation at least once. In this article, I explain back-propagation and computational graphs.

I would recommend you read about gradient descent optimization here, before proceeding with this article. Now, let’s dive right into the explanation.


We will first look at a few key steps involved in network training and terms like forward propagation.

Deep learning network training steps

The overall process for a deep learning network training may be summarized in the following steps.

  1. Data exploration and analysis [This is a huge step involving a lot of sub-steps]
  2. Choice of…

Photo by Remy Gieling on Unsplash

In this article, I’ll be discussing a paper [1] that proposes a compact convolutional neural network (CNN) for detecting anomalies/defects from weakly/coarsely labelled data. The article is organized as follows.

  • Introduction
  • Methodology
    ◦ Segmentation Network
    ◦ Classification Network
    ◦ Architectural Specifications
  • Experimental Setup
    ◦ Loss functions
    ◦ Optimizer
    ◦ Dataset
    ◦ Training setup
  • Results
    ◦ Quantitative Results
    ◦ Qualitative Results
  • Discussion
    ◦ Classification Network Performance
    ◦ Segmentation Network Performance
  • Suggested Modifications
  • Conclusion
  • GitHub code
  • References


Surface defect detection is an essential task in the manufacturing process to ensure that the end product meets the quality standards and works in the…

A convolutional auto encoder based approach for semi-supervised anomaly detection in images.

In this article, I’ll be discussing a paper [1] that proposes an AutoEncoder based approach for the task of semi-supervised anomaly detection. If you want to look at the GitHub repository link, results and conclusion directly, please scroll to the bottom of the article.


Anomaly detection refers to the task of finding unusual instances that stand out from the normal data [1]. The non-conforming patterns can be referred to using different names depending on the application area/domain, such as anomalies, outliers, exceptions, defects, containments, etc. [2] In several applications, these outliers or anomalous samples are of greater interest compared to…

Learn how to perform road crack detection from just 118 images!

Back when I was researching segmentation using Deep Learning and wanted to run some experiments on DeepLabv3[1] using PyTorch, I couldn’t find any online tutorial. What added to the challenge was that torchvision not only does not provide a Segmentation dataset but also there is no detailed explanation available for the internal structure of the DeepLabv3 class. However, I did the transfer learning on my own, and want to share the procedure so that it may potentially be helpful for you.

In this article, I’ll be covering how to use a pre-trained semantic segmentation DeepLabv3 model for the task of…

Photo by eskay lim on Unsplash

I’ve been recently learning about 3D to 2D projection and back projection. One of the most confusing things that I found was constructing transformation matrices from camera to the world using Euler angles. Although rotation as a concept is easy to understand, building transformation matrices and using them can be extremely confusing. In this article, I’ll explain how to create transformation matrices and use them for converting from one reference frame to another. We’ll also visualize the transformations and few sample points by plotting them.


In computer vision, robotics, aerospace, etc. we require the usage of transformation matrices (rotation and…

Photo by Markus Spiske on Unsplash

There are various instances where you would need to use credentials, tokens, API keys etc. to access certain services. For example, you would need to use your SQL server credentials to access certain DB for your application. But, storing those in the codebase as a plain text file is not the best idea. It is a security vulnerability. Anyone with access to your codebase would be able to read those secrets and get unauthorized access to your services and perform malicious actions. You could encrypt the secrets, and share the key external to your application as a config file to…

Learn about data parallelism and model parallelism options available for distributed training on AWS SageMaker.

Photo by Alina Grubnyak on Unsplash

In today’s world, when we have access to humongous data, deeper and bigger deep learning models, training on a single GPU on a local machine can pretty soon become a bottleneck. Some models won’t even fit on a single GPU and even if they do the training could be painfully slow. Running a single experiment could take weeks and months in such a setting i.e. large training data and model. As a result, it can hamper research and development and increase the time taken for making POCs. However, to our relief cloud compute is available which allows one to set…

Photo by OC Gonzalez on Unsplash

How I’m Hanging on During This Nightmare Pandemic

It has been what feels like an eternity since this Covid pandemic started. Not everyone is hit equally by this pandemic. Because of several factors such as money, population density in the neighbourhood, the willingness of the citizens to cooperate and do their part to avoid the spread, etc. some people are facing a nightmare compared to others.

Even for deciding to meet our loved ones we need to factor in the chance of exposure to them and also to ourselves. For international travel, the decision is not even ours and depends…

Photo by Pietro Jeng on Unsplash

I’ll be talking about various techniques that can be used to handle overfitting and underfitting in this article. I’ll briefly discuss underfitting and overfitting, followed by the discussion about the techniques for handling them.


In one of my earlier articles, I talked about the bias-variance trade-off. We talked about the bias-variance relation to model complexity and how underfitting and overfitting looks like. I would encourage you to read the article if you don’t understand these terms:

For a quick recap let us look at the following figure.

Manpreet Singh Minhas

DL/CV Research Engineer | MASc UWaterloo | Follow and subscribe for DL/ML content | https://github.com/msminhas93 | https://www.linkedin.com/in/msminhas93

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