Code Monkey home page Code Monkey logo

claudioflow's Introduction

ClaudioFlow

ClaudioFlow is a didactic full-featured Deep Learning framework implemented only using NumPy, with a focus on simplicity and code readability (rather than performance).

Most modules in the code link to a web resource or to pages of the Deep Learning Book by Goodfellow et al. that explains the theory behind them.

ClaudioFlow architecture draws a lot of inspiration from Torch 7's clean approach, as well as Keras interfaces.

Example usage

model = SequentialModel([
    LinearLayer(2, 5),
    TanhLayer(),
    LinearLayer(5, 1),
    TanhLayer(),
])

Defining new layers

Similarly to Torch, you just need to implement a forward() and a backward() function, and you get a functioning layer.

class MyNewLayer:
    def forward(self, x):
        self.x = x
        return x**2
    def backward(self, delta):
        return delta * 2 * self.x
        
model = SequentialModel([
   LinearLayer(2, 5),
   MyNewLayer(),
])
 
model.learn(...)

Why

The only good way to understand modern neural network is to try to implement one from scratch. After that you can use TensorFlow.

Implementend features

  • Minibatch learning with train/validation/test sets and "patience"
  • Tests with numerical gradient checks
  • Softmax Negative Log Likelihood (Cross Entropy)
  • Working examples like Multi-layer Perceptron for Mnist classification
  • SGD Momentum / AdaGrad / RMSProp
  • Sigmoid / Relu / Tanh and more common activation functions

Work in progress

  • Recurrent Networks
  • LSTM
  • Convolutions
  • Reinforcement learning

Will never have

  • Automatic differentiation: Theano is perfect if you need that in python.

claudioflow's People

Contributors

santinic avatar

Watchers

 avatar  avatar  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.