Convolutional-Network-for-MNIST-Data-Classification

thanks to UDACITY Team for providing such a wonderful course where i learned to work with Deep Learning

About this repository

This is a model CNN (Convolutional Neural Network )framework for classifying images . this framework can be used for any type of image classification requirement .

libraries used (python)

  • Tensor flow
  • numpy

To run this Program

install the needed libraries . an easy way to do is to download the miniconda for your os and follow these steps provided in this link

steps

  * download CarND-Term1-Starter-Kit
  * choose between anaconda or docker 
    * #### for anaconda:
          https://github.com/udacity/CarND-Term1-Starter-Kit/blob/master/doc/configure_via_anaconda.md
    * #### for docker
          https://github.com/udacity/CarND-Term1-Starter-Kit/blob/master/doc/configure_via_docker.md
  • after installation , open terminal or cmd prompt and run jupyter with this command
    • jupyter notebook
  • this will open your default web browser .
  • select the Convolutional_Network_for_MNIST_Data_Classification.ipynb file .
  • go to cell -> Run all

Pipeline of program

the working of the program can be broken down to following steps

  1. import the needed libraries
  2. import the MNIST data into the program (please read the instruction in the notebook provided , there maybe some problem )
  3. (if needed) Reshaping the train , test and validation data if needed
  4. building the Neural Network
    • input Layer
    • convolutional network layer 1
    • convolutional network layer 2
    • Neural network
    • Output layer
  5. Running the model

potential shortcoming

  • will consume a huge amount of RAM , CPU usage and TIME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • huge amount of image data is needed to train this model for accurate result