Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Programming Language for Deep Learning

License

NotificationsYou must be signed in to change notification settings

ThoughtWorksInc/DeepDarkFantasy

Repository files navigation

DeepDarkFantasy

HackageJoin the chat at https://gitter.im/ThoughtWorksInc/DeepDarkFantasyBuild StatusCoverage 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 infinally 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 theblog 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 understandFinally 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: SeeDDFADC

Q: What does this have to do withYang Bo'sDeepLearning.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 byNeural Networks, Types, and Functional Programming, and my colleague,Yang Bo.

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

Andizgzhen helps with the initial version of Partial Evaluation.

You can be the next contributor!

I Want Youimage courtesy of Milk Mageaquired here

Please look atThis Issue and help solve it.

About

A Programming Language for Deep Learning

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors8

Languages


[8]ページ先頭

©2009-2025 Movatter.jp