Convolutional Neural Network Projects
Table of Contents
Neural networks reflect the behavior of the human brain, allowing computer programs to recognize patterns and solve common problems in the fields of AI, machine learning, and deep learning. Artificial neural networks (ANNs) are comprised of a node layers, containing an input layer, one or more hidden layers, and an output layer. Each node, or artificial neuron, connects to another and has an associated weight and threshold. If the output of any individual node is above the specified threshold value, that node is activated, sending data to the next layer of the network. Otherwise, no data is passed along to the next layer of the network.
A Convolutional Neural Network (CNN/ConvNet) is, a class of neural networks that specializes in processing data that has a grid-like topology, such as an image. A digital image is a binary representation of visual data. It contains a series of pixels arranged in a grid-like fashion that contains pixel values to denote how bright and what color each pixel should be.
This project consists of various examples of Convolutional Neural Networks developed using Tensorflow which is integrated in the Python programming language.
You may head on the the Projects section to view all the CNN models developed.
Since Tensorflow has been integrated in the Python Programming language, it requires some modules to operate. The list of required modules and installation commands have been given in the next section.
It is advisable if you upgrade your pip version because some modules might require the latest version of pip. To upgrade your pip, run the following command in your command prompt.
> pip install --upgrade pip
Here is the main pre-requisite modules required to run the ConvNet projects.
> pip install tensorflow
> pip install keras
> pip install matplotlib
> pip install numpy
> pip install tk
Note: All of these modules might not be required to run each project. Each project requires different modules, and you may head on to the specific project in order to know more about it.
Here are some ConvNet sample projects:
This Image Recognition/Classification Software is built using the CIFAR-10 Dataset (Canadian Institute for Advanced Research, 10 Classes). The CIFAR-10 dataset consists of 60000 32x32 colour images in 10 classes, with 6000 images per class. There are 50000 training images and 10000 test images.
The dataset is divided into five training batches and one test batch, each with 10000 images. The test batch contains exactly 1000 randomly-selected images from each class. The training batches contain the remaining images in random order, but some training batches may contain more images from one class than another. Between them, the training batches contain exactly 5000 images from each class.
You may head on to Image Recognition to explore and know more about the project.
Note: The dataset is downloaded as soon as you open the main code, but you may also download the CIFAR-10 Dataset Externally. To download the CIFAR-10 Dataset, head on to CIFAR-10 website.
You may explore the working of a Convolutional Neural Network Here.
The working of all the projects can broadly be categorised into two steps:
- Training:
This is the initialising step, or can be considered as the pre-processing step of a ConvNet. This indeed is the most important steop because this is where the CNN actually learns and understands the purpose of the user-application, and compiles a data model which can be integrated in a main driver code/application. This is the primary step where data is sorted, analysed, processed and arranged. - Testing:
This is the secondary step of a CNN which includes the usage of the created data model in the previous step. In this step, you will create the driver code/application which will provide a user interface to interact with the dataset in order to carry out a specific operation, for which the application is designed for. This in summary, is the 'fancy' of a CNN.
To know more about the working of different projects, go ahead and explore all the Projects.
Note: Each CNN is different, and you may or may not put both of these steps in the same code.
Distributed under the MIT License. See LICENSE for more information.
Every program is ever evolving and, that is possible only with valuable contributions. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (git checkout -b functionalities/Feature)
- Commit your Changes (git commit -m 'Add a Feature')
- Push to the Branch (git push origin functionalities/Feature)
- Open a Pull Request
If you have any further ideas or comments, go ahead to the next section and feel free to connect!