With increasing reserach work carried out in deep learning over the last decade, image recognition systems have improved and are now used in many applications. Neural networks have been trained to perform: Image recognition & classification, Object detection, Image style transfer, Image colorization, Image reconstruction, Image super-resolution, and many more.
In this hobby project, the work is related to the first mentioned application. On Jupyter notebooks, one will find detailed information on:
- Compiling and training a neural network model
- Accuracy and evaluation of a neural network model
- Convolutional neural networks (CNN) in Keras
- Modifying pre-trained neural networks
- Enhancements to convolutional neural networks (Transfer Learning)
- Modifying pre-trained neural networks
MNIST and CIFAR-10 datasets are used and the work is done with Keras (an open-source neural-network library written in Python). The CIFAR-10 dataset consists of 60000 32x32 colour images in 10 classes. The MNIST is a database of handwritten digits (black and white images and size normalized to fit in a 28x28 pixel box). An example of a handwritten digit from MNIST is shown.
Fully connected neural network model
Processes involved in a convolutional neural network model
To view the project work, open:
- Introduction to Neural Networks.ipynb
- Introduction to Convolution Neural Networks.ipynb
- Or use the Jupyter nbviewer links Neural Networks and Convolution Neural Networks, try the option 'Execute on Binder' to play with the code and learn/refresh machine learning concepts
or if you want to jump to CNN directly
- Training_and_evaluation_CNN.ipynb
- TransferLearning_Tuning_CNN.ipynb
- Use the Jupyter nbviewer links CNN and Pre-trained neural networks