Code Monkey home page Code Monkey logo

complex_convolutional_neural_network_architecture's Introduction

Complex_Convolutional_Neural_Network_Architecture

This repository conatins my implemetations of some of the famous, complex Convolutional Neural Net Archiectures. The models have been developed from scratch using Tensorflow's Keras functional API, which is a way to create models that are more flexible than the tf.keras.Sequential API. The functional API can handle models with non-linear topology, models with shared layers, and models with multiple inputs or outputs. This architecture makes it possible for the neural network to learn both deep patterns (using the deep path) and simple rules (through the short path).

Please feel free to copy the architectures for your projects and do not forget to acknowledge this repository by starring it.

List of developed models

Models starting from branching-dangling models, to depthwise and point-wise convolutions have been experimented. I have also implemented the U-net, which is a unique architecture specifically for biomedical image segmentation. At last, I have made a custom complex model where I have mixed all the concepts used in below mentioned archutectures, and trained it on Cifar dataset. The multi-class training was done on just 50k images and the classification accuracy was about 72% after training for 100 epochs.

  • AlexNet - AlexNet is the name of a convolutional neural network which has had a large impact on the field of machine learning, specifically in the application of deep learning to machine vision.
  • ResNet - A residual neural network (ResNet) is an artificial neural network (ANN) of a kind that builds on constructs known from pyramidal cells in the cerebral cortex. Residual neural networks do this by utilizing skip connections, or shortcuts to jump over some layers.
  • UNet - The architecture consists of a contracting path to capture context and a symmetric expanding path that enables precise localization in BioMedical Apllications.
  • GoogleNet - It utilises Inception modules, which allow the network to choose between multiple convolutional filter sizes in each block. An Inception network stacks these modules on top of each other, with occasional max-pooling layers with stride 2 to halve the resolution of the grid.
  • Xception - XCeption is an efficient architecture that relies on two main points : Depthwise Separable Convolution. Shortcuts between Convolution blocks as in ResNet.
  • MobileNet - MobileNet is a type of convolutional neural network designed for mobile and embedded vision applications. They are based on a streamlined architecture that uses 2 stage depthwise separable and pointwise convolutions to build lightweight deep neural networks that can have low latency for mobile and embedded devices.
  • Squeeze and Excitation Network (SeNets) - The SENet can enhance the important features and weaken the unimportant features by controlling the scale. It can make the extracted features more directivity.

Keras Functions used and their explaination

  • Input() - This is just the defination of an input layer and has nothing to do with the functioning or structure of the model.
  • Conv2D() - Implements a 2D convolution on the previous layer. It creates numer of outputs and then concatenates them into 1 layer i.e.along the z-axis.
  • MaxPool2D() - Implements pooling of the previous layer by transmitting only the largest neuron from a pool of neurons.
  • AvgPool2D() - Implements pooling of the previous layer by transmitting the average value of all the neuron from a defined pool.
  • BatchNormalization() - Normalizes the neurons by shrinking down the values in the range of 0 to 1.
  • Flatten() - Flattens a layer i.e makes in 1D
  • Dense() - A fully connected dense multi-layer perceptron.
  • Dropout() - The Dropout layer randomly sets input units to 0 with a frequency of rate at each step during training time, which helps prevent overfitting.
  • Model() - Defines a keras model.
  • plot_model() - Plots the structure of the model
  • Concatenate()

Transfer Learning

Transfer learning (TL) is a research problem in ML that focuses on storing knowledge gained while solving one problem and applying it to a different but related problem. For example, knowledge gained while learning to recognize Cats could apply when trying to recognize Tigers. In this repo, I have also trained the developed models on various objects and have saved the weights as tensorflow weights. Feel free to download thoses weights, add your own layers and implement Transfer Learning for your project.


U-Net Xception
GoogleNet Alexnet
Unet MobileNet

complex_convolutional_neural_network_architecture's People

Contributors

jash-2000 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

sriharshitha842

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.