How to Get Started Using Deep Learning Frameworks

There are hundreds of online courses, videos, blogs, podcasts, and much more to help you get started.


How can I get started using deep learning frameworks? originally appeared on Quora, the place to gain and share knowledge, empowering people to learn from others and better understand the world. You can follow Quora on Twitter, Facebook, and Google Plus.

There are a few steps to get started with deep learning:

1. Take a deep learning course.

Because of the recent growth of deep learning, there are now hundreds of online courses, videos, blogs, podcasts, and much more to help you get started.

Here are a few beginner level courses to consider (the MIT course and many of the NVIDIA Deep Learning Institute courses are free):

* Artificial Intelligence: A Free Online Course From MIT

* Artificial Intelligence A-Z: Learn How To Build An AI

* Deep Learning for Business

* NVIDIA Deep Learning Institute

2. Decide which frameworks you want to learn and use.

Once you have a good understanding of how deep learning works, you’ll need to choose a deep learning framework to work with. You can think of the deep learning framework as the toolset or application you use to solve a deep learning problem. There are many frameworks to choose from (TensorFlow, PyTorch, Theano, MXNet, etc.), each with their own strengths, so you’ll want to do some research and determine which one is best for the problem you’re trying to solve. You might even try a few different ones to determine which works best for you.

TensorFlow is currently the most popular deep learning framework, mainly because of its well documented APIs and computational graph visualizations in TensorBoard. TensorFlow is flexible in that it goes from research to production fairly well.

Other choices include:

Apache MXNet – Has many contributors, most notably Amazon. It is a flexibly programmable framework for deep learning at scale. MXNet supports many languages, and imperative and declarative programming. It also supports Open Neural Network Exchange Format (ONNX), an open ecosystem for interchangeable AI models.

Caffe 2 – Modular and extensible, Caffe 2 was created by Facebook as a follow-on to the popular BVLC Caffe framework. Caffe 2 delivers cross-platform capability and high performance for product use cases, and supports ONNX.

Chainer – Created by Preferred Networks, Chainer is known for being the first framework to support dynamic computation graphs. It has made great milestones in distributed learning benchmarks and is popular for robotics.

Microsoft Cognitive Toolkit (CNTK) – Built for speech recognition, supports ONNX.

PyTorch – Developed by Facebook Research, PyTorch is gaining popularity in the research community and is known for its dynamic neural networks and imperative programming. It also supports ONNX.

3. Decide where you want to run the frameworks.

If you have a Linux PC and a modern GPU, that is a good place to get started. You don’t necessarily need a top of the line GPU to experiment with deep learning, many of the frameworks can utilize consumer graphics cards originally intended for gaming for their GPU acceleration. But as you progress in your understanding of deep learning and as the scale of your projects and the data you are processing increases, you’ll likely want to move on to more powerful systems with GPUs designed specifically for AI. Another option is to look at GPU-enabled cloud instances on Amazon or other cloud providers. With these services you pay by the hour, but it’s a great way to get going immediately if you don’t have the right hardware available.

4. Download the frameworks and get them running.

This can be a little more difficult than it might seem since the frameworks have dependencies on hardware, drivers, and operating system versions. You’ll need to find the versions of the frameworks that work with the hardware or cloud service you’re using, do any operating system installations or updates that might be needed, and install the required drivers. And, unfortunately, many of the frameworks’ requirements conflict with each other, so it becomes challenging if you want to use more than one framework on the same system.

A way to make this all much easier is to use deep learning frameworks that have been deployed into Docker containers. This way, each framework has everything it needs to run in its own isolated environment, and the containers won’t conflict with anything else on your system. You can create these containers yourself, but it is quite a bit of work and you’ll need to update the containers each time a framework is updated (which happens frequently).

Another way is to download containers from a service that pre-integrates all of the required components, tests them, and keeps them up to date. NVIDIA GPU Cloud (NGC) has a library of the popular deep learning frameworks in ready-to-run containers that you can download at no charge and use on your own PC with a recent NVIDIA GPU, or if you don’t have one, you can use cloud compute platforms such as Amazon EC2 P3 instances which give you access to NVIDIA GPUs in the cloud. It’s a great way to get started with deep learning without spending days or weeks finding the right software components and installing everything yourself from scratch.

Getting started with deep learning frameworks can be a lot of work, but it can be a lot easier if you know the right tricks. The above information should help you along the way. Good luck!

This question originally appeared on Quora. More questions on Quora:

* Deep Learning: What's the difference between reinforcement Learning and Deep-learning?


* Artificial Intelligence: Should artificial intelligence be regulated?


* Computer Science: What are your recommendations for self-studying machine learning?


Photo Credit: gilaxia/Getty Images