February 24, 2020

1174 words 6 mins read

serengil/tensorflow-101

serengil/tensorflow-101

TensorFlow 101: Introduction to Deep Learning for Python Within TensorFlow

repo name serengil/tensorflow-101
repo link https://github.com/serengil/tensorflow-101
homepage https://sefiks.com
language Jupyter Notebook
size (curr.) 26112 kB
stars (curr.) 418
created 2017-07-05
license MIT License

TensorFlow 101: Introduction to Deep Learning

I have worked all my life in Machine Learning, and I’ve never seen one algorithm knock over its benchmarks like Deep Learning - Andrew Ng

This repository includes deep learning based project implementations I’ve done from scratch. You can find both the source code and documentation as a step by step tutorial. Model structrues and pre-trained weights are shared as well.

Facial Expression Recognition Code, Tutorial, Real Time Code, Video

This is a custom CNN model. Kaggle FER 2013 data set is fed to the model. This model runs fast and produces satisfactory results. It can be also run real time as well.

Face Recognition

I’ve mentioned one of the most successful face recognition models. Oxford Visual Geometry Group (VGG) developed VGG-Face model. This model is also the winner of imagenet competition. They just tuned the weights of the same imagenet model to detect facial attributes. Moreover, Google announced its face recognition model FaceNet. Furthermore, Carnegie Mellon University open-sourced its face recognition model OpenFace. Finally, Facebook AI Research team announced DeepFace model and it has a close performance to the human level.

• VGG-Face Code, Tutorial

• FaceNet Code, Tutorial

• OpenFace Code, Tutorial

• Facebook DepFace Code, Tutorial

Real Time Deep Face Recognition Implementation

These are the real time implementations of the common face recognition models we’ve mentioned in the previous section. VGG-Face has the highest face recognition score but it comes with the high complexity among models. On the other hand, OpenFace is a pretty model and it has a close accuracy to VGG-Face but its simplicity offers high speed than others.

• VGG-Face Code, Video

• FaceNet Code, Video

• OpenFace Code, Video

• Facebook DeepFace Code, Video

Face Alignment for Face Recognition Code, Tutorial

Google declared that face alignment increase its face recognition model accuracy from 98.87% to 99.63%. This is almost 1% accuracy improvement which means a lot for engineering studies.

Apparent Age and Gender Prediction Tutorial, Code for age, Code for gender, Real Time Code, Video

We’ve used VGG-Face model for apparent age prediction this time. We actually applied transfer learning. Locking the early layers' weights enables to have outcomes fast.

Celebrity You Look-Alike Face Recognition Code, Tutorial, Real Time Code, Video

Applying VGG-Face recognition technology for imdb data set will find your celebrity look-alike if you discard the threshold in similarity score.

Race and Ethnicity Prediction Tutorial, Code, Real Time Code, Video

Ethnicity is a facial attribute as well and we can predict it from facial photos. We customize VGG-Face and we also applied transfer learning to classify 6 different ethnicity groups.

Beauty Score Prediction Tutorial, Code

South China University of Technology published a research paper about facial beauty prediction. They also open-sourced the data set. 60 labelers scored the beauty of 5500 people. We will build a regressor to find facial beauty score. We will also test the built regressor on a huge imdb data set to find the most beautiful ones.

Attractiveness Score Prediction Tutorial, Code

The University of Chicago open-sourced the Chicago Face Database. The database consists of 1200 facial photos of 600 people. Facial photos are also labeled with attractiveness and babyface scores by hundreds of volunteer markers. So, we’ve built a machine learning model to generalize attractiveness score based on a facial photo.

Making Arts with Deep Learning: Artistic Style Transfer Code, Tutorial, Video

What if Vincent van Gogh had painted Istanbul Bosporus? Today we can answer this question. A deep learning technique named artistic style transfer enables to transform ordinary images to masterpieces.

Autoencoder and clustering Code, Tutorial

We can use neural networks to represent data. If you design a neural networks model symmetric about the centroid and you can restore a base data with an acceptable loss, then output of the centroid layer can represent the base data. Representations can contribute any field of deep learning such as face recognition, style transfer or just clustering.

Convolutional Autoencoder and clustering Code, Tutorial

We can adapt same representation approach to convolutional neural networks, too.

Transfer Learning: Consuming InceptionV3 to Classify Cat and Dog Images in Keras Code, Tutorial

We can have the outcomes of the other researchers effortlessly. Google researchers compete on Kaggle Imagenet competition. They got 97% accuracy. We will adapt Google’s Inception V3 model to classify objects.

Handwritten Digit Classification Using Neural Networks Code, Tutorial

We had to apply feature extraction on data sets to use neural networks. Deep learning enables to skip this step. We just feed the data, and deep neural networks can extract features on the data set. Here, we will feed handwritten digit data (MNIST) to deep neural networks, and expect to learn digits.

Handwritten Digit Recognition Using Convolutional Neural Networks with Keras Code, Tutorial

Convolutional neural networks are close to human brain. People look for some patterns in classifying objects. For example, mouth, nose and ear shape of a cat is enough to classify a cat. We don’t look at all pixels, just focus on some area. Herein, CNN applies some filters to detect these kind of shapes. They perform better than conventional neural networks. Herein, we got almost 2% accuracy than fully connected neural networks.

Automated Machine Learning and Auto-Keras for Image Data Code, Model, Tutorial

AutoML concept aims to find the best network structure and hyper-parameters. Here, I’ve applied AutoML to facial expression recognition data set. My custom design got 57% accuracy whereas AutoML found a better model and got 66% accuracy. This means almost 10% improvement in the accuracy.

Explaining Deep Learning Models with SHAP Code, Tutorial

SHAP explains black box machine learning models and makes them transparent, explainable and provable.

Gradient Vanishing Problem Code Tutorial

Why legacy activation functions such as sigmoid and tanh disappear on the pages of the history?

How single layer perceptron works Code

This is the 1957 model implementation of the perceptron.

Requirements

I have tested this repository on the following environments. To avoid environmental issues, confirm your environment is same as below.

C:\>python --version
Python 3.6.4 :: Anaconda, Inc.

C:\>activate tensorflow

(tensorflow) C:\>python
Python 3.5.5 |Anaconda, Inc.| (default, Apr  7 2018, 04:52:34) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> print(tf.__version__)
1.9.0
>>>
>>> import keras
Using TensorFlow backend.
>>> print(keras.__version__)
2.2.0
>>>
>>> import cv2
>>> print(cv2.__version__)
3.4.4

To get your environment up from zero, you can follow the instructions in the following videos.

Installing TensorFlow and Prerequisites Video

Installing Keras Video

Disclaimer

This repo might use some external sources. Notice that related tutorial links and comments in the code blocks cite references already.

Support

There are many ways to support a project - starring⭐️ the GitHub repos is one.

You can also support this project through Patreon.

Licence

This repository is licensed under MIT license - see LICENSE for more details

comments powered by Disqus