Computing gradients is one of core parts in many machine learning algorithms. Fortunately, we have deep learning frameworks handle for us. This post will explain how Tensorflow and Pytorch can help us to compute gradient with an example.

Photo by Tomoe Steineck on Unsplash

Many of us has been familiar with training neural networks using TensorFlow and PyTorch. We already know how to compute gradients and use optimizers to update the weight parameters with some lines of code. This post is about to separate the part of computing gradients in these libraries to see what happens behind the code.

1. Derivatives and Gradients

In 1-dimension, the derivative of a function…

As a machine learning/deep learning researcher, we usually focus on improving the performance of the models on specific datasets. However, the story of bringing the model into real applications is far beyond that. This post provides a short description of Machine learning workflow and a part of it, Deployment.

Photo by Daan Stevens on Unsplash

1. Machine learning workflow.

Let’s have a look at machine learning workflow defined by Amazon web service (AWS) and Google cloud platform (GCP). Those are 2 examples I can find online.

In 2014, for the 10-year celebration, Facebook made a look back video for each user. Recently, Facebook has reminded me of that video and I watched it. I joined the network in 2011 and now, this has been a 10-year journey. Hence, this post is about my experience with the largest social network in the world right now.

For me, there is no doubt about the connectivity power of Fb when bringing people together. And as an IT student, I also admire Fb as one of the biggest technology companies in the world with their high-level technology, researches, etc. …

There were many important events from NVIDIA, AMD, and Apple in October that motivates me to write somethings. This is a kind of reminder for me to catch up with latest technology update as being an IT student.

This post is written from my very limited knowledge and perspective after reviewing some source of information. I will appreciate all constructive comments.

1. NVIDIA GTC 2020. October 5–9th.

I was lucky to have a chance to attend NVIDIA GPU Technology Conference 2020. …

Spark is a well-known engine for processing big data. As a first step to learn Spark, I will try to deploy a Spark cluster on Kubernetes in my local machine.

A Standalone Spark cluster consists of a master node and several worker nodes. There are several ways to deploy a Spark cluster. I prefer Kubernetes because it is a super convenient way to deploy and manage containerized applications.

In this post, I will deploy a Standalone Spark cluster on a single-node Kubernetes cluster in Minikube. The Spark master and workers are containerized applications in Kubernetes. However, in this case, the…

Another complicated concepts: PersistentVolume, PersistentVolumeClaim and StorageClass.

During using JupyterHub on Kubernetes in my previous post (, the data in the notebook is lost everytime the cluster or the pod restarts. It is time to think about persistent storage.

Photo from:

1. Persistent Volume in Kubernetes

Kubernetes introduces API resources that abstract details of how storage is provided from how it is consumed. They are PersistentVolume and PersistentVolumneClaim.

According to K8S documentation:

A PersistentVolume (PV) is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes. …

I could not access the Kubernetes API from jupyter notebook pod, it took me some time to figure out.

Photo from Teddy Guerrier in unsplash:

In my post about manually deploy Jupyterhub on Kubernetes (, everything seems working just fine to the minimum extents. However, the problems came out when I tried more sophisticated functions. Hence, I decide to figure out the problems and update about them gradually.

Of course, “zero to jupyterhub k8s” provides very nice Helm chart with fully supported configurations to deploy JupyterHub on Kubernetes so that we can easily “install and play”. …

My labmate (선배님) and I are trying to install Kubernetes for research. And we decided to first install it on a Virtual box machines cluster.

Virtual Box Machine cluster

First of all, we created a cluster in Virtual Box application. It includes a master node and 2 slave nodes. They are all running on Ubuntu 18.04. We use a network interface for local connect and a network interface to access to the Internet. My labmate helped me to create so I do not know well, actually.

Overview of cluster

Recently, I have learnt to use a graph database called Neo4j. And I do not want to install a lot of software on the computer. Hence, Docker image is a good option.

Neo4j docker image provides an awesome graph database with convenient web UI. However, it does not include plugins which support additional library (such as APOC, Graph Algorithms). I need to do some manual set up before being able to deploy the container with plugins.

I do not know the name of the flower T.T, and my favorite super market is over there.

Neo4j plugins

APOC stands for Awesome Procedures on Cypher, a standard utility library for common procedures and functions. This allowed developers across platforms and industries to…

In this post, I will install Jupyterhub on Kubernetes step by step and manually. This gives me a chance to understand some parts of mechanism behind the scene of a well-known application.

1. Technical overview

1.1. Jupyterhub

JupyterHub brings the power of notebooks to groups of users. It is a set of processes that together provide a single user Jupyter Notebook server for each person in a group. There are three major subsystems in JupyterHub:

  • Hub (Python/Tornado): manages user accounts, authentication, and coordinates Single User Notebook Servers using a Spawner.
  • Proxy: the public facing part of JupyterHub that uses a dynamic proxy to route HTTP…

Mai Ngoc Kien

I am not a morning person

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