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.

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

Beat the Math/Theory Doldrums and Start using Deep Learning in your own projects Today, without getting lost in “documentation hell”

Deep Learning With Python Mini-CourseGet my free Deep Learning With Python mini course and develop your own deep nets by the time you’ve finished the first PDF with just a few lines of Python.

Daily lessons in your inbox for 14 days, and a DL-With-Python “Cheat Sheet” you can download right now.   

Download Your FREE Mini-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.

Frustrated With Your Progress In Deep Learning?

 What If You Could Develop Your Own Deep Nets in Minutes

...with just a few lines of Python

Discover how in my new Ebook: Deep Learning With Python

It covers self-study tutorials and end-to-end projects on topics like:
Multilayer PerceptronsConvolutional Nets and Recurrent Neural Nets, and more...

Finally Bring Deep Learning To
Your Own Projects

Skip the Academics. Just Results.

Click to learn more.

No comments yet.

Leave a Reply