GithubHelp home page GithubHelp logo

hulalazz / deepdarkfantasy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thoughtworksinc/deepdarkfantasy

0.0 1.0 0.0 43.31 MB

A Programming Language for Deep Learning

License: Apache License 2.0

Haskell 100.00%

deepdarkfantasy's Introduction

DeepDarkFantasy

Hackage Join the chat at https://gitter.im/ThoughtWorksInc/DeepDarkFantasy Build Status Coverage Status

What if we combine Functional Programming and Deep Learning?

As we all know, a neural network is just a computable math expression (and hence a program).

Can we add 'ordinary' programming construct to a 'neural network', like branch, loop, pair, sum, list, and function?

Of course, I must still be able to train the network.

Yes! I had add all the above construct, and I am planning to add more.

They all had their own special gradient structure to propagate loss accordingly.

However, in the end of the day, what is updated is only container of double (or other representation of real). Having those construct only make you write networks easier, but does not offer fundamentally different learning capability.


Can we make the language typed so we can detect error before we train the network?

Sort of. I am able to type most stuff, but I am having trouble adding higher kinded type/generic type. However, they can be written as Haskell function (macro in DDF).


Can we make the language modular and extensible so all people can write all sorts of Chuck Norris move into the language?

Yes Yes Yes! The whole language is structured in finally tagless style, so, it is possible to add new operation/constructor, and still retain type safety.

In fact, there isn't even a core language! All feature(function, double, back propagation, pretty printing) is added as ordinary plugin so you can extend/subset the language as you can wish.

Patchouli Go!

You should read the blog before anything.

We have a few example on using DDF:

Hello world

Solving polynomial equation

Training XOR Network

If you want to look into the code base, it is necessary to understand Finally Tagless.

FA Q

Q: How is the speed?

A: Unoptimized. This is more of a proof of concept that we can use function in neural network, than something that can get you good kaggle score right off the shelf. We are working on Partial Evaluation.

Q: Why does this work theoretically?

A: See DDFADC

Q: What does this have to do with Yang Bo's DeepLearning.scala?

A: We work on a prototype for 2-3 months, and split apart.

Q: You seems to have a space in FAQ.

A: I like it that way.

Q: What are you currently working on?

A: I am trying to add a neural network demo.

Thank You Sir

This is heavily inspired by Neural Networks, Types, and Functional Programming, and my colleague, Yang Bo.

Also, I'd like to thanks dram for getting it to work without Incoherent Instances, and fixing it on stack, cabal & travis.

And izgzhen helps with the initial version of Partial Evaluation.

You can be the next contributor!

I Want You image courtesy of Milk Mage aquired here

Please look at This Issue and help solve it.

deepdarkfantasy's People

Contributors

marisakirisame avatar atry avatar dramforever avatar ice1000 avatar billzorn avatar hyiltiz avatar gitter-badger avatar izgzhen avatar

Watchers

Zhang JinXiong(张金雄) 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.