Mohanad Kaleia

Idea for a cause

Caffe Tutorial: build, train and predict

Caffe is one of the most popular tools for deep learning, with it you can easily build, train and use deep neural networks and it is considered as the fastest framework as the time of writing this post. The reason why I’m writing this post is because I could not find one article that can answer all of my questions, I had to go back and forth between caffe’s official website, and other blogs in order to get the full picture of how to use Caffe. In this post I’m gonna cover the following points, of how to create a neural network, how can I train it and then use the trained model to predict new samples, I will cover the different approach and highlights the differences between them. Also, I’m gonna cover how to get and use a pre-trained model from Model Zoo. 
In this post, we will implement LeNet on MNIST dataset, where the LeNet is known for its ability to classify handwritten digits. So let’s get started!
I will suppose that you already have Caffe installed on your device or you have an access to remote machine with Caffe installed on it. If you did not install it you can refer to another post that I wrote on how to install Caffe on a CPU only machine

Read More

Install Caffe on Ubuntu with no GPU

If you are reading this post then for sure you know what is Caffe and most probably you want to install it on your machine so I don’t want to speak about what is Caffe and how to use it, this post is just to explain how to install it without having a hard time hopefully. Okay, the installation of Caffe was not straight forward to me, I ran into several problems, first my system was not clean, I had a lot of broken packages that drove me crazy, until I decided eventually to install Caffe on a clean Ubuntu system in a virtual machine without GPU not the best option but for testing and get hands dirty it is okay. I need to mention that my operating system is Ubuntu 16.04. Read More


When you got a statistical data and you need to describe your data in a mathematical function, you need then to fit a distribution with your data. In general four steps in fitting distributions:

  1. Choose a function that you think fits the more with your data
  2. Estimate parameters
  3. Evaluate the quality of the fit
  4. Do statistical test

This article, in general, is not aimed to give information how to fit a distribution with a specific language, although you can do that very easily using R, or Python. Read More

Linear System Analysis – Review

Hello everyone,

As a student at Oklahoma University in Electrica and Computer Engineering, I took a course of Linear Analysis. The course material was available online from Stanford. Honestly, it was one of the best courses, very helpful and enjoyable. In this post, I’m gonna write about my experience and what I’ve learned from this course. (Note this post will be updated by adding more details later on).

In this course we took a look at the linear dynamical systems, it starts with a general overview on linear algebra including basis, dimension, null space of a matrix, range of a matrix, rank of a matrix, conservation of dimension, orthogonal and orthonormal set of vectors, QR factorization. Read More

How to use Bluetooth Beacons in positioning problem – part 1

Recently, I was working on a project to find the position of a target point (e.g. mobile phone), in an indoor environment. Many technologies are being used in this area including WIFI, Bluetooth, RFID and all kind of sensors you can imagine on your mobile phone.

In this article, I will explain my experiment in detecting position based on Bluetooth beacons, I used three estimote beacons, with a Raspberry pi 3 to be as the target point that I want to detect its position.

Read More

Voronoi Diagram


In mathematics, a Voronoi diagram is a partitioning of a plane into regions based on distance to points in a specific subset of the plane. That set of points (called seeds, sites, or generators) is specified beforehand, and for each seed there is a corresponding region consisting of all points closer to that seed than to any other. These regions are called Voronoi cells. The Voronoi diagram of a set of points is dual to its Delaunay triangulation.

The origin of Voronoi diagram dates back to the 17th century. R. Descartes claims in his book [2] that the solar system consists of vortices. This concept has independently emerged, and proven useful, in various fields of science.

Read More