A simple library for creating complex neural networks

DeepLearning.scala is a deep learning toolkit for Scala,

combining object-oriented and functional programming constructs,

aims to create statically typed dynamic neural networks

from map/reduce and other higher order functions.

DeepLearning.scala allows you to build neural networks from mathematical formulas. It supports floatsdoublesGPU-accelerated N-dimensional arrays, and calculates derivatives of the weights in the formulas.

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.

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.

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.
Technology Radar Vol.16
Technology Radar Vol.16

China Intelligent Empowerment Team


Head of Thoughtworks Big Data and AI Team

With 15 years of enterprise architecture and management consulting experience. To help many large enterprises to optimize business processes, build a digital enterprise architecture, to achieve business agility.


Lead Consultant of Thoughtworks Big Data Team

Founded Binding.scala and DeepLearning.scala. He now focuses on applying meta-programming and functional programming paradigms in different domains.

Xiaolei WANG

Thoughtworks Big Data Chief Scientist

More than ten years of coding experience, good at data management, data mining and machine learning. Committed to solving the problem with beautiful theory.

Zhihao ZHANG

Major contributor of DeepLearning.scala framework

Also major contributor of contributor of:

Scalaz & RAII.scala & TryT.scala & Future.scala. He also has some experience in Machine Learning.

Contact Us

Questions, ideas, insights and inspiration?Contact us today.