Git Product home page Git Product logo

deeplearning.scala's Introduction

DeepLearning.scala

Join the chat at https://gitter.im/ThoughtWorksInc/DeepLearning.scala Build Status Scaladoc

DifferentiableAny DifferentiableNothing DifferentiableSeq DifferentiableDouble DifferentiableFloat DifferentiableHList DifferentiableCoproduct DifferentiableINDArray

DeepLearning.scala is a DSL for creating complex neural networks.

With the help of DeepLearning.scala, regular programmers are able to build complex neural networks from simple code. You write code almost as usual, the only difference being that code based on DeepLearning.scala is differentiable, which enables such code to evolve by modifying its parameters continuously.

Features

Differentiable basic types

Like Theano and other deep learning toolkits, DeepLearning.scala allows you to build neural networks from mathematical formulas. It supports floats, doubles, GPU-accelerated N-dimensional arrays, and calculates derivatives of the weights in the formulas.

Differentiable ADTs

Neural networks created by DeepLearning.scala support ADT data structures (e.g. HList and Coproduct), and calculate derivatives through these data structures.

Differentiable control flow

Neural networks created by DeepLearning.scala may contains control flows like if/else/match/case in a regular language. Combined with ADT data structures, you can implement arbitary algorithms inside neural networks, and still keep some of the variables used in the algorithms differentiable and trainable.

Composability

Neural networks created by DeepLearning.scala are composable. You can create large networks by combining smaller networks. If two larger networks share some sub-networks, the weights in shared sub-networks trained with one network affect the other network.

Static type system

All of the above features are statically type checked.

Roadmap

v1.0

Version 1.0 is the current version with all of the above features. The final version will be released in March 2017.

v2.0

  • Support for/while and other higher-order functions on differenitable Seqs.
  • Support for/while and other higher-order functions on GPU-accelerated differenitable N-dimensional arrays.

Version 2.0 will be released in Q2 2017.

v3.0

  • Support using custom case classes inside neural networks.
  • Support distributed models and distributed training on Spark.

Version 3.0 will be released in late 2017.

Links

Acknowledges

DeepLearning.scala is heavily inspired by my colleague @MarisaKirisame. Originally, we worked together for a prototype of deep learning framework, then we split our work aprt to this project and DeepDarkFantasy.

@milessabin's shapeless provides a solid foundation for type-level programming as used in DeepLearning.scala.

deeplearning.scala's People

Contributors

atry avatar izhangzhihao avatar gitter-badger avatar bucry avatar gdemelo avatar marisakirisame avatar

Watchers

James Cloos avatar lingya 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.