Popular Deep Learning Libraries

There are so many deep learning libraries to choose from.

Which are the good professional libraries that are worth learning and which are someones side project and should be avoided. It is hard to tell the difference.

In this post you will discover the top deep learning libraries that you should consider learning and using in your own deep learning project.

Kick-start your project with my new book Deep Learning With Python, including step-by-step tutorials and the Python source code files for all examples.

Let’s get started.

Popular Deep Learning Libraries

Popular Deep Learning Libraries
Photo by Nikki, some rights reserved.

Overview

In this post you are going to discover the following deep learning libraries. All are open source using various different permissive licenses.

  • Theano
  • Torch
  • Caffe
  • DeepLearning4J

There are many other excellent libraries and platforms. Some more honorable mentions include TensorFlow by Google, darch in R, Convnet.js in JavaScript (for learning), Mocha in Julia, CNTK by Microsoft and H2O Web API.

Theano

Theano is a Python framework developed by the LISA group (now MILA) run by Yoshua Bengio at the University of Montreal for research and development into state of the art deep learning algorithms.

It is better described as a mathematical expression compiler where you symbolically define what you want and the framework complies your program to run efficiently on GPUs or CPUs.

It is a research platform more than a deep learning library. You have to do a lot work yourself to create the models you want. For example, there are no neural network classes.

Nevertheless, there is an excellent deep learning tutorial that shows you how you could create classes and functions for deep learning. For example it provides step-by-step examples to create the following deep learning algorithms:

View the whole tutorial online or download the PDF version

Theano is really an ecosystem and in practice you would not use Theano directly. There is a long list of libraries built on top of Theano that provide handy wrapper API. Some more popular projects include:

These are becoming very large projects in and of themselves, providing helpful APIs into the underlying Theano platform, greatly accelerating the speed at which you can put models together.

If you are a Python developer and interested in broader deep learning or research, this is the platform for you.

Resources

Need help with Deep Learning in Python?

Take my free 2-week email course and discover MLPs, CNNs and LSTMs (with code).

Click to sign-up now and also get a free PDF Ebook version of the course.

Torch

Torch (called Torch7 using an odd version numbering) is a Lua deep learning framework developed by Ronan Collobert, Clement Farabet and Koray Kavukcuoglu for research and development into deep learning algorithms. It was used and promoted by the CILVR Lab at NYU (home to Yann LeCun).

Torch is used and has been further developed by the Facebook AI lab, Google DeepMind, Twitter and a host of others.

Under the covers Torch makes use of C/C++ libraries as well as CUDA for GPU. It has a goal of speed whist adopting the C-friendly language Lua to provide a less intimidating interface.

The goal of Torch is to have maximum flexibility and speed in building your scientific algorithms while making the process extremely simple

There is a lot of documentation, but it is a mess. Popular applications of Torch are for supervised image problems with Convolutional Neural Networks and agents in more complex domains with deep reinforcement learning.

If you are primarily interested in reinforcement learning, Torch is probably the platform for you.

Resources

Caffe

Caffe is a Python deep learning library developed by Yangqing Jia at the Berkeley Vision and Learning Center for supervised computer vision problems.

The primary focus is Convolutional Neural Networks and it may be the world leader.

A big benefit of the library is the number of pre-trained networks that can be downloaded from the Caffe Model Zoo and used immediately. This includes state of the art models that can achieve world class results on standard computer vision datasets.

For example here are some tutorials for world class models:

If you are primarily interested in Convolutional Neural Networks and image problems, Caffe is probably the platform for you.

Resources

DeepLearning4J

DeepLearning4J (or DL4J for short) is a Deep Learning framework developed in Java (and JVM languages) by Adam Gibson for commercial deep learning projects.

DL4J is a JVM-based, industry-focused, commercially supported, distributed deep-learning framework intended to solve problems involving massive amounts of data in a reasonable amount of time

DeepLearning4J is a slick platform and it offers a suite of state of the art deep learning algorithms, not limited to:

  • Deep Belief Networks
  • Stacked Denoising Autoencoders
  • Convolutional Neural Networks
  • Long Short-Term Memory Units
  • Recurrent Neural Networks

The documentation is quite good covering a range of topics including some theory of the algorithms themselves and code examples.

It has the benefits of working with the whole Java ecosystem which is the predominate platform in business software development, including other languages on the JVM (e.g. Scala) and platforms for big data (Hadoop and Spark).

Resources

Deep Learning Tool Round-ups

A lot of people have done round-ups of deep learning libraries and tools. This section lists some of these round-ups and other resources that you can use to dive deeper into deep learning tools.

Summary

In this post you discover the top most popular deep learning tools and libraries.

Specifically, you learned about:

  • Theano
  • Torch
  • Caffe
  • DeepLearning4J

Have you used one or more of these tools? Let me know what you think about them in the comments.

Do you have any questions about deep learning or the libraries listed in this post? Ask your question in the comments and I will do my best to answer it.

12 Responses to Popular Deep Learning Libraries

  1. Avatar
    Ramanathan May 19, 2017 at 5:03 pm #

    Which one do you prefer: caffe or keras for object detection with CNN

    • Avatar
      Jason Brownlee May 20, 2017 at 5:36 am #

      My focus is on using and teaching with Keras.

      • Avatar
        Sourav Verma October 8, 2017 at 7:59 pm #

        What about tensorflow?

        • Avatar
          Jason Brownlee October 9, 2017 at 5:47 am #

          I guess I wrote this post before TF was a big deal.

  2. Avatar
    Bobby August 22, 2017 at 12:54 am #

    I am using Tensorflow in C++ and it is awesome. I recommend it as well.

  3. Avatar
    Mritula March 6, 2018 at 12:29 am #

    Hi, I’m using Caffe for my video processing problem. Im not clear about the how things are related and how the pre-trained model is used. Can you help me on this?

  4. Avatar
    Pujitha May 15, 2018 at 4:54 pm #

    What about Scikit-learn?Could you please tell about its efficiency when compared to others mentioned by you

  5. Avatar
    sabari nathan June 4, 2018 at 6:26 pm #

    I would like to learn about C++ with deep learning. Do you know any opensource C++ API available for deep learning?

Leave a Reply