How can Scala's type-level computation abilities make a deep learning framework more expressive?
Towards Typesafe Deep Learning in Scala
The preferred language of current deep learning frameworks (TensorFlow, PyTorch, MXNet, DyNet, etc.) is Python, a type-unsafe language. Inspired by the typesafety of Scala, we present Nexus, a prototypical typesafe deep learning engine in Scala. Being extraordinarily expressive in types, Nexus offers unforseen typesafety (axes of tensors are typed statically) and succinctness to deep learning developers by extensive use of typelevel computation through the popular library Shapeless.
In this talk I'll introduce the design of a deep learning framework, and how Scala's type-level computation abilities could make it safer, easier to write and more expressive. Ideas include generalized algebraic data types (GADTs), heterogeneous lists (HLists), program verification (compiling-as-proofs with Scala implicits), and introductory machine learning.