Deep learning is deeply intertwined with our lives today, and promises to enter many more domains in the near future. This article briefly describes the best open source deep learning tools.
Alexa on your side table playing your favourite song, autonomous cars on the road, or Netflix suggesting shows based on what you have watched…the power of deep learning is evident all around us! A number of open source deep learning tools are used in this field. Let us take a brief look at some of the best ones.
Table 1: Popular deep learning tools and their developers
|Deep learning tool||Developed as a part of|
|Keras||Open-ended Neuro-Electronic Intelligent Robot Operating System (ONEIROS)|
|PyTorch||Facebook’s AI Research (FAIR) lab|
|MXNet||Apache Software Foundation (ASF)|
|Deeplearning4J||Eclipse Machine Learning Group|
|Darknet||Joseph Chet Redmon|
|PlaidML||Vertex AI, acquired by Intel|
Top 10 open source deep learning tools
TensorFlow (www.tensorflow.org) is an open source deep learning framework for the development of machine learning and deep learning models, founded on November 9, 2015.
- Provides an end-to-end model, from building to deployment
- Supports model deployment on mobile devices and embedded devices also
- Good documentation and help from the community
- Extensive support for multiple GPUs
- Graph visualisation and queues
- Supports image processing, computer vision, natural language processing, text classification, speech recognition, etc
Keras (keras.io) is an open source deep learning library in Python, released on March 27, 2015.
- Extensive documentation and developer guides
- Easy to learn and use
- Offers clear and comprehensive error messages
- Supports models for mobile devices, the Web as well as for Java Virtual Machine
- Enables distributed deep learning models on graphics processing units (GPUs) and tensor processing units (TPUs)
- Broadly adopted in the research community as well as in the industries
PyTorch (pytorch.org) is an open source machine learning library released on September 2016 and authored by Adam Paszke, Sam Gross, Soumith Chintala, and Gregory Chanan.
The essential elements (cheat sheet) for new users are available at pytorch.org/tutorials/beginner/ptcheat.html.
- Broadly accepted across major cloud platforms to provide easy development and straightforward scalability
- Facilitates end-to-end pipeline flow, from Python development to mobile device deployment (iOS and Android)
- Active research community and industry developers provide robust ecosystem libraries that enable development in various domains — from computer vision to reinforcement learning
- Provides direct interface with ONNX (open neural network exchange) compatible systems, environments, visualisers, and more, by exporting models in the standard ONNX format
- Offers multiple GPU support for the implementation of deep learning models
- Supports C++ interface for high performance and low latency applications
Supports data sharing with external libraries
|Latest applications that use deep learning|
OpenNN (www.opennn.net) is an open source neural networks library for machine learning and deep learning. Its first version (0.1) was released on November 22, 2018.
- It allows users to create a neural network model without programming
- Offers a good user interface in terms of data management and result interpretation using the neural designer tool
- Provides faster training compared to other deep learning frameworks
- Outstanding performance in terms of execution speed and memory allocation
5. Microsoft Cognitive Toolkit (CNTK)
Microsoft Cognitive Toolkit (CNTK) is a commercial grade open source deep learning framework. Its primary release was on January 25, 2016. For more details, visit docs.microsoft.com/en-us/cognitive-toolkit.
- CNTK APIs are available in Python, C# as well as C++. Also provides its own model programming language such as BrainScript
- Evaluation of the CNTK model feature is supported by Java Apps
Provides low-level and high-level APIs
- Provides an easy and simple way to combine various deep learning models like a convolutional neural network, recurrent neural network, and deep feed-forward neural network
- Autonomous differentiation and parallelisation over several GPUs and servers
- Supports implementation of supervised learning, unsupervised learning, reinforcement learning, as well as generative adversarial networks
Table 2: A comparison of open source deep learning tools
|Tool||Licensed by||Written in||CUDA support|
|TensorFlow||Apache 2.0||C++, Python, CUDA||Yes|
|PyTorch||BSD||Python, C, C++, CUDA||Yes|
|MXNet||Apache 2.0||Small C++ core library||Yes|
|DeeplearningKit||Apache 2.0||Metal, Swift||No|
|Deeplearning4J||Apache 2.0||C++, Java||Yes|
|PlaidML||Apache 2.0||Python, C++, OpenCL||No|
6. Apache MXNet
Apache MXNet (mxnet.apache.org) is an open source deep learning framework released (version 0.7.0) on May 26, 2016.
- Provides hybrid front-end with seamless transition between Gluon eager imperative mode and symbolic mode; high speed and flexibility
- Supports dual parameters server and Horovod (distributed deep learning framework) to offer scalable distributed training and performance optimisation
- Provides comprehensive and flexible Python APIs and supports other languages such as Scala, Julia, Clojure, Java, C++, R and Perl
- Supports computer vision, natural language processing, text classification, and timeseries
DeepLearningKit is an open source deep learning framework developed for the Apple iOS, OS X, and tvOS. For more details, visit github.com/DeepLearningKit/DeepLearningKit.
- Developed using Metal and Swift for GPU acceleration and app integration, respectively
- Uses convolutional neural networks for image recognition on Apple devices
Deeplearning4J is an open source deep learning framework that was primarily released in 2014, with a stable release on May 13, 2020. The main authors are Alex D. Black, Adam Gibson, Vyacheslav Kokorin, and Josh Patterson. For more details, visit deeplearning4j.konduit.ai.
- Supports all the Java virtual machine based languages such as Java, Scala, Clojure, and Kotlin
- Provides a distributed deep learning framework by felicitating training in a cluster. The framework is supported by distributed systems Apache Spark and Hadoop
- Has a designed vector space model and topic model to manage large size text sets and perform natural language processing tasks smoothly
- Includes implementation of the restricted Boltzmann machine, deep belief networks, deep autoencoder, recursive neural tensor network, stacked denoising autoencoder, word2vec, doc2vec, and GloVe.
Darknet is an open source neural network framework primarily released in 2013. For more details, visit pjreddie.com/darknet/.
- The framework is written in C and CUDA to provide good performance
- Fast and easy installation
- Supports CPU and GPU computations
- Facilitates image classification, time series prediction, natural language processing, etc
PlaidML is an open source tensor compiler for the machine learning framework, released on October 20, 2017. For more details, visit github.com/plaidml or www.intel.com/content/www/us/en/artificial-intelligence/plaidml.html.
- Added nGraph compatibility support for new GPUs and platforms
- Offers modular hardware support from embedded to new processors
- Works on major operating systems such as Linux, macOS and Windows