Skip to content

rhasanbd/Convolutional-Neural-Networks

Repository files navigation

Convolutional Neural Networks

If github in unable to render a Jupyter notebook, copy the link of the notebook and enter into the nbviewer: https://nbviewer.jupyter.org/

These notebooks provide an introduction to the Convolutional Neural Networks (CNNs).

  • Notebook 1: Motivation, CNN architecture, Fully-Connected (FC) Networks vs CNNs, Biological origin, CNN layers, CNN formalization

  • Notebook 2: Convolution: Nuts & Bolts - I: Convolution operation, Single channel & multi-channel input, and multiple filters, Mathematical definition of convolution

  • Notebook 3: Convolution: Nuts & Bolts - II

    -- Handcraft edge detector filters

    -- Edge detection in a single-channel image using a single filter

    -- Define a convolution function for multi-channel image using and multiple filters

    -- Edge detection in a multi-channel image using multiple filters

    -- Edge detection using TensorFlow's convolution function

  • Notebook 4: Convolution: Nuts & Bolts - III

    -- Convolution: How it Changes the Size of an Image (Feature Map)

    -- Can we keep the size of the input unchanged?

    -- Padding: SAME and VALID

    -- What is the role of padding when stride > 1?

    -- Python Function for "SAME" Padding

    -- Convolution Function: Multi-Channel Input, Multiple Filters and Padding

    -- Edge Detection: Convolution with Padding

    -- Manually Define a 2D Convolution Class for Convnets

  • Notebook 5: Pooling

    -- Motivation

    -- Max Pooling, Average Pooling, p-norm pooling, Pooling by Multi-Layer Perceptron (MLP)

    -- Max Pooling: Python implementation

    -- Depthwise Max Pooling, implementation

    -- Global Average Pooling

  • Notebook 6: CNN Training - I

    -- Forward Propagation (Softmax layer, Conv layer, Pooling layer)

    -- Backward Propagation (Softmax layer, Pooling layer)

  • Notebook 7: CNN Training - II

    -- Backward Propagation (Conv layer)

  • Notebook 8: Convnet Cheat Sheet

    -- Formulas for calculating the size & parameters in each layer

    -- LeNet-5 Architecture: TensorFlow implementation & detail discussion

    -- Compute memory requirement

    -- Compute multiplications & additions

    -- Larger Filters vs Smaller Filters

    -- 1 x 1 filters

    -- How Do We Create an Optimal Convnet?

  • Notebook 9: Notable Convnet Architectures - I

    -- ImageNet Large Scale Visual Recognition Challenge (ILSVRC)

    -- AlexNet (2012)

    -- ZFNet (2013)

    -- VGGNet (2014)

    -- Network in Network (NiN) 2013

    -- Incention-v1 (2014):GoogLeNet

    -- Inception-v2 (2015)

    -- Inception-v3 (2015)

  • Notebook 10: Notable Convnet Architectures - II

    -- ResNet (2015)

    -- Pre-Activation ResNet (2016)

    -- Wide ResNet (2016)

    -- ResNeXt (Aggregated Residual Transformations for Deep Neural Networks) (2016)

  • Notebook 11: Notable Convnet Architectures - III

    -- Inception-v4 (2016)

    -- Xception (2016)

    -- DenseNet (2017)

    -- Ensemble Method: Deep Feature Fusion (2016)

    -- Squeeze-and-Excitation Network (SENet) (2017)

    -- Comparison of the Notable Convnet Architectures: Bird's-Eye View

The notebooks are partially adapted from:

  • Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (2nd Edition) by Aurélien Géron

  • Dive into Deep Learning by Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J. Smola https://d2l.ai/

  • Deep Learning by Ian Goodfellow and Yoshua Bengio and Aaron Courville https://www.deeplearningbook.org/

  • Introduction to Deep Learning at Carnegie Mellon University https://deeplearning.cs.cmu.edu/S21/index.html

  • Deep Learning with Python by Francois Chollet

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published