Functional Programming

Neural networks are Monads, which can be created by composing higher order functions.
Along with the Monad, we also provide an Applicative type class, to perform multiple calculations in parallel.

Dynamic Neural Networks

Neural networks are programs, too.
All Scala features, including functions, expressions and control flows, are available in neural networks,
which can be even evaluated step by step in a Jupyter Notebook.

Plugins

DeepLearning.scala supports plugins. There are various plugins providing algorithms, models, hyperparameters or other features.
You can share your own plugins as simple as creating a Github Gist.

DeepLearning.scala is an open source deep-learning toolkit in Scala created by our colleagues at ThoughtWorks.
We're excited about this project because it uses differentiable functional programming to create and compose neural networks; a developer simply writes code in Scala with static typing.