Deep Learning Framework
Deep Learning Framework is a term that stands for a tool with functionality to create and use deep learning network architectures and that are able to work with big data. There are a wide variety of frameworks available and we provide an overview below. This overview includes the different platforms or programming languages that can be used when working with them. This is useful since in practice you would also combine some of the frameworks when working with real data since not all frameworks are on the same level. For more general information we refer to our article on deep learning. This overview explains a bit more in detail the different deep learning framework options.
Caffe
One of the well known deep learning frameworks is the Caffe tool that was developed by the Berkely AI Research (BAIR) team. The framework is written in C++ with a Python interface and many contributors have added features to the software. It can use GPUs and CPUs. There is a CaffeOnSpark in order to provide more parallelization features developed by Yahoo. More details can be obtained from our article on Caffe Deep Learning.
Microsoft Cognitive Toolkit (known before as CNTK)
The open source deep learning toolkit Computational Network Toolkit (CNTK), more recently named Microsoft Cognitive Toolkit, was developed by Microsoft Research. It can be used with Python and C++. It further offers functionalities for parallelization using CPUs and GPUs across multiple machines. In order to get more information we refer to our article on the Microsoft Cognitive Toolkit.
DeepLearning4J
One interesting framework option is DeepLearning4J since it is an open source library written for Java and C++. It further includes functionalities for parallelization using Spark on CPUs and taking advantage of GPUs.
Keras
One often used deep learning framework is Keras that enables fast experimentation with deep learning and runs on top of other frameworks like MXNet, DeepLearning 4J, TensorFlow, CNTK, or Theano. It is a minimal but modular and extensible tool that can be easily used with Python.
MXNet
One very popular open source deep learning framework is MXNet that is also used by Amazon Web Services. It is scalable and can be used with a wide variety of languages including C++, Python, Matlab, JavaScript, Go, R, Scala, or Perl. Further functionalities include parallelization across multiple GPUs and multiple machines. In addition MXNet is often available in public clouds such as Amazon or Microsoft Azure.
Nervana Neon
Intel Nervana and its Neon is a more recent deep learning framework that is optimized for Intel platforms. The framework is not open source but supports GPUs and CPUs with being optimized for Intel CPUs.
TensorFlow
One of the most used framework option is the open source software library TensorFlow that was originally developed by Google. The TensorFlow Python API is the most rich API while there are also APIs for Java, C, and Go to deploy deep learning models in applications. More details can be obtained from our article on TensorFlow.
Theano
Another often used framework is the open source machine library Theano. It is available for Python and uses NumPy syntax. Further functionalities include parallelization on CPU or GPU architectures. The use of Theano shared variables can avoid some problems of transfer from host memory to device memory as described in our article on GPU Memory.
Torch
The deep learning framework Torch is an open source library that is used by Facebook, IBM, and others.. It is based on the Lua programming language that includes the scripting language LuaJIT and an underlying C implementation.
Deep Learning Framework Details
We recommend the following video in context: