Neural Network from scratch: Part 5; C++ Deep Learning Framework Implementation

C++ project.

The main goal of this article is to show how to develop a project in C++ by explaining key concepts of the language: abstract class/interface and inheritance, memory management, smart-pointers, iterator, constexpress, templates, std containers and eigen matrices, static class, namespace, makefile/cmake and debugging (step-by-step, memory leaks detection, profiling). This project will be applied to the development of a simple Deep Learning framework implementing the MSE loss, ReLU and softmax activation functions, linear layer, a feature/label generator and a mini-batch training function.

Continue reading “Neural Network from scratch: Part 5; C++ Deep Learning Framework Implementation”

Neural Network from scratch: Part 4; control a drone with hand signals

Python project.

This article shows how to build a dataset for a specific task and train a neural network through the homemade Deep Learning framework implemented in the previous articles. This neural network will allow controlling a drone with hand signals.

We will create a dataset of hand signals, train several neural networks on it and convert their outputs to commands. The full pipeline will be connected to an Anafi drone to control it through an USB camera.

Continue reading “Neural Network from scratch: Part 4; control a drone with hand signals”

Neural Network from scratch: Part 3; Deep Learning Framework Implementation

Python project.

This article describes, step by step, how to implement a Deep Learning Framework from scratch using only the numpy library. It will show how to implement Convolution, Flatten, Max and Mean Pooling layers. It will also explain how to implement features such as: saving and loading a model to deploy it somewhere, getting its number of parameters, drawing learning curves, printing its description.

Continue reading “Neural Network from scratch: Part 3; Deep Learning Framework Implementation”

Neural Network from scratch: Part 2; FCN implementation

Python project.

This article describes, step by step, how to implement a fully-connected neural network from scratch using only the numpy library. First, it shows how to create a set of non-linearly separable data, and then, how to implement a neural network. Finally, it will explain how to train such a network.

Continue reading “Neural Network from scratch: Part 2; FCN implementation”