Deep Learning Frameworks of 2017 Jan

TensorFlow

· Interface: Python, (C++)

· Automatic Differentiation

· Multi GPU, Cluster Support

· Currently most popular

Karas

· On top of Tensorflow (and Theano)

· Interface: Python

· Goal: provide a simplified interface

· Also: TF Learn, TF Slim

Torch

· Used by researchers doing lower level (closer to the details) neural net work

· Interface: Lua

· Fragmented across different plugins

Theano

· Interface: Python (tight NumPy integration)

· One of the earlier frameworks with GPU support

· Encourages low-level tinkering

cuDNN

· The library that most frameworks use for doing the actual computation

· Implements primitive neural network functions in CUDA on the GPU

MxNet

· Multi GPU Support (scales well)

· Interface: Python, R, Julia, Scala, Go, Javascript …

Nion

Interface: Python

Often best on benchmarks

Nervana was working on a neural network chip

Bought by Intel

Caffe

Interface: C++, Python

One of the earliest GPU supported

Initial focus on computer vision (and CNNs)

CNTK·

Interface: Custom Language (BrainScript), Python, C++, C#

· Multi GPU Support (scales very well)

· Mostly used at MS Research

Chainer

Chainer is a deep learning framework that’s designed on the principle of define-by-run. Unlike frameworks that use the define-and-run approach, Chainer lets you modify networks during runtime, allowing you to use arbitrary control flow statements.

MatConvNet

MATLAB toolbox implementing Convolutional Neural Networks (CNNs) for computer vision applications. It is simple, efficient, and can run and learn state-of-the-art CNNs.

deeplearning4j

Deeplearning4J integrates with Hadoop and Spark and runs on several backends that enable use of CPUs and GPUs.