Git Product home page Git Product logo

convolutional-network's Introduction

Convolutional network

  • an implementation of a deep convolutional neural network
  • done in Python and Numpy, with no external machine learning framework used

The purpose of this project was to understand the full architecture of a conv net and to visually break down what's going on while training to recognize images. In particular, I was interested in seeing how the weight kernels pick up some pattern over the course of the training.

DONE:

Setting up:
  • set up the architecutre by specifying the number of layers (convolutional, pooling, fully connected (FC) and final (classify) layer)
  • make sure to use an FC layer as your last layer before classifying
  • tweak your hyperparameters
  • make sure you see the pattern changes in the weight kernels after each batch update
Training:
  • use run.py to start the training
  • see the output images on each convolutional layer + pooling layer while training
  • see the filters being trained ! They should slowly resemble the feqtures in your images

TO IMPROVE:

Even though you can get some insights into the learning during training, the network is extremely slow! This is mainly because it was never designed and optimized to process large volume of images. It would be great to rewrite this in Theano or Tensorflow

FURTHER IDEAS:

  • once optimized -> build an interactive visualization in the browser of the filters being trained
  • building a generative model that reproduces the image based on a label
  • maximizing a given classification (final activation) by backpropagating all the way to your image (input layer) and updating pixel values -> could provide some better intuition on what the network thinks of a class's features.

convolutional-network's People

Contributors

dorajam avatar

Watchers

James Cloos avatar

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.