Top 10 Open Source Deep Learning Tools

0
203
deep learning

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
TensorFlow Google Research
Keras Open-ended Neuro-Electronic Intelligent Robot Operating System (ONEIROS)
PyTorch Facebook’s AI Research (FAIR) lab
OpenNN Artelnics
CNTK Microsoft Research
MXNet Apache Software Foundation (ASF)
DeeplearningKit Memkite
Deeplearning4J Eclipse Machine Learning Group
Darknet Joseph Chet Redmon
PlaidML Vertex AI, acquired by Intel

Top 10 open source deep learning tools

1.  TensorFlow
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.

Features

  • 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

2. Keras
Keras (keras.io) is an open source deep learning library in Python, released on March 27, 2015.

Features

  • 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
 Diverse deep learning applications
Figure 1: Diverse deep learning applications

3. PyTorch
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.

Features

  • 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
  • Autonomous vehicles: Tesla and Waymo
  • Polybee: Pollinating bee drone in greenhouses
  • RNNoise: RNN based noise suppression library
  • Grammarly: NLP based text summarisation
  • Perlmutter: An Nvidia project that targets 3D mapping of the universe
  • MERIDIAN: Helping compile a catalogue of all known fish sounds and creating a benchmark data set for marine bioacoustics
  • Neurala Brain: Neural network and software that emulate the
  • functions of the human brain for navigation and perception
  • Zeroeyes: Real-time fire arms detection, prevention
  • (police) and protection
  • WaveNet: Generates raw audio from speech patterns using CNNs
  • 6sense: A B2B sales and marketing platform that predicts
  • buying behaviour
  • Robbie AI: Patient monitoring platform to prevent falls
  • and delirium in ICU patients

 

4. OpenNN
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.

Features

  • 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.

Features

  • 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
Keras MIT Python Yes
PyTorch BSD Python, C, C++, CUDA Yes
OpenNN GNU LGPL C++ Yes
CNTK MIT C++ Yes
MXNet Apache 2.0 Small C++ core library Yes
DeeplearningKit Apache 2.0 Metal, Swift No
Deeplearning4J Apache 2.0 C++, Java Yes
Darknet YOLO C, CUDA 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.

Features

  • 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

7. DeepLearningKit
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.

Features

  • Developed using Metal and Swift for GPU acceleration and app integration, respectively
  • Uses convolutional neural networks for image recognition on Apple devices

8. Deeplearning4J
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.

Features

  • 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.

9. Darknet
Darknet is an open source neural network framework primarily released in 2013. For more details, visit pjreddie.com/darknet/.

Features

  • 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

10. PlaidML
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.

Features

  • 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

LEAVE A REPLY

Please enter your comment!
Please enter your name here