Optimization How to Use Maximum Likelihood Estimation for Parametric Classification Methods In some previous tutorials that discussed how Bayes' rule works, a decision was made based on some probabilities (e.g. the likelihood and prior). Either these probabilities were given explicitly

Computer Vision How To Speed Up Object Detection Using NumPy Reshape and Transpose This is Part 4 of our ongoing series on NumPy optimization. In Parts 1 and 2 we covered the concepts of vectorization and broadcasting, and how they can be applied

Optimization Gradient Descent and Optimization In Deep Learning The most common method underlying many of the deep learning model training pipelines is gradient descent. But vanilla gradient descent can encounter several problems, like getting stuck at local minima

NumPy Nuts and Bolts of NumPy Optimization Part 3: Understanding NumPy Internals, Strides, Reshape and Transpose We cover basic mistakes that can lead to unnecessary copying of data and memory allocation in NumPy. We further cover NumPy internals, strides, reshaping, and transpose in detail.

NumPy Nuts and Bolts of NumPy Optimization Part 2: Speed Up K-Means Clustering by 70x In this part we'll see how to speed up an implementation of the k-means clustering algorithm by 70x using NumPy. We cover how to use cProfile to find bottlenecks in the code, and how to address them using vectorization.

NumPy Nuts and Bolts of NumPy Optimization Part 1: Understanding Vectorization and Broadcasting In Part 1 of our series on writing efficient code with NumPy we cover why loops are slow in Python, and how to replace them with vectorized code. We also dig deep into how broadcasting works, along with a few practical examples.

Research Neural Architecture Search Part 1: An Overview With countless options to design neural networks, an effective architecture search algorithm would be game-changing. Here we look at the state of the art.

Python NumPy Array Processing With Cython: 1250x Faster Here we see how to speed up NumPy array processing using Cython. By explicitly declaring the "ndarray" data type, your array processing can be 1250x faster.

Python Boosting Python Scripts With Cython Python might be one of today's most popular languages, but it's definitely not the most efficient. See how Cython can easily boost your Python scripts.

Series: Gradient Descent with Python Implementing Gradient Descent in Python, Part 2: Extending for Any Number of Inputs This is the second tutorial in the series which discusses extending the implementation for allowing the GD algorithm to work with any number of inputs in the input layer.

Series: Gradient Descent with Python Implementing Gradient Descent in Python, Part 1: The Forward and Backward Pass In this tutorial, which is the Part 1 of the series, we are going to make a worm start by implementing the GD for just a specific ANN architecture in which there is an input layer with 1 input and an output layer with 1 output.

Series: Optimization Intro to optimization in deep learning: Momentum, RMSProp and Adam In this post, we take a look at a problem that plagues training of neural networks, pathological curvature.

Series: Optimization Intro to optimization in deep learning: Gradient Descent An in-depth explanation of Gradient Descent, and how to avoid the problems of local minima and saddle points.