Artificial Intelligence (AI) is now seemingly everywhere. It is there in your smartphone, the chipset powering your smartphone, applications running on those smartphones, and even at the factory producing them or the fulfilment centre bringing it to your doorstep. It is rather difficult to think of an industry where AI is not making an impact.
With machine learning (ML) on edge and access to cloud computing, the use of AI is advancing rapidly. With that growth in adoption of AI and ML, there are now several frameworks and tools available for developers and scientists. Here is a look at some of the most popular artificial intelligence tools and frameworks available in the market right now.
TensorFlow is a free and open-source software library for machine learning and artificial intelligence. Developed by the Google Brain team for internal use in research and production, the initial version was released under the Apache Licence 2.0 in 2015. The updated version, called TensorFlow 2.0, was released in September, 2019.
PyTorch is another popular open source machine learning framework based on the Torch library. It is used for applications such as computer vision and natural language processing. It is a free and open-source software released under the Modified BSD licence and is primarily developed by Facebook’s AI Research lab (FAIR).
Some of the popular deep learning software built on top of PyTorch include Tesla Autopilot, Hugging Face’s Transformers, PyTorch Lightning, and Catalyst. The framework offers features like Tensor computing with strong acceleration via GPU and deep neural networks built on a type-based automatic differentiation system.
Scikit-learn, which started as scikits.learn, is a free machine learning software library for the Python programming language. It started as a Google Summer of Code project by French data scientist David Cournapeau and the name stems from the notion that it is a “SciKit”.
Largely written in Python, Scikit-learn uses NumPy extensively for high-performance linear algebra and array operations. It also integrates with many other Python libraries, such as Matplotlib and plotly for plotting, NumPy for array vectorisation, Pandas dataframes, SciPy, and others.
Keras is an open-source software library that will appeal to those who like to use Python for programming. The library provides a Python interface for artificial neural networks and even acts as an interface for the TensorFlow library.
It is widely used by those who like Python since it picks up the architecture that applies to a particular problem. Keras also helps data scientists in recognising problems through images and configures a network for result optimisation. While it supported multiple backends until version 2.3, the version 2.4 only supports TensorFlow.
Theano is an open source project primarily developed by the Montreal Institute for Learning Algorithms (MILA) at the Université de Montréal. The software is named in reference to the ancient philosopher Theano, who is associated with the development of the golden mean. One can say that Theano is folded over Keras, which is both a Python library as well as an optimising compiler for manipulating and evaluating mathematical expressions.
The computations are expressed using a NumPy-esque syntax and compiled to run efficiently on either CPU or GPU architectures. In 2018, Chris Fonnesbeck wrote that the PyMC development will assume control of Theano maintenance and their fork is called Aesara.
Apache MXNet is also an open-source deep learning software framework used to train and deploy neural networks. It is used by machine learning engineers since it offers a scalable architecture and allows for fast model training. There is also support for flexible programming models and support for multiple programming languages.
As a scalable deep learning framework, MXNet supports deep learning models such as convolutional neural networks (CNNs) and long short-term memory networks (LSTMs). The library is also portable and can be scaled to multiple GPUs as well as multiple machines.
Microsoft Cognitive Toolkit was previously known as CNTK and is also referred to as The Microsoft Cognitive Toolkit. It is a deprecated deep learning framework developed by Microsoft Research and can be either used as a standalone ML tool through its model description language or as a library in Python/C++/C# programs.
CNTK allows users to easily realise and combine popular model types such as DNNs, CNNs, and recurrent networks (RNNs/LSTMs). It implements stochastic gradient descent (SGD) learning with automatic differentiation and parallelisation across multiple GPUs and servers. Microsoft offers CNTK for anyone to try under an open-source licence.
Caffe, or Convolutional Architecture for Fast Feature Embedding, is a deep learning framework that was originally developed at University of California, Berkeley. It is written in C++ and has a Python interface. Caffe is available as an open source framework under a BSD licence.
Currently hosted on GitHub, Caffe supports a number of deep learning architectures that support image classification and image segmentation. It supports CNNs, RCNNs, LSTMs, and other fully connected neural network designs. Caffe also supports GPU-based and CPU-based acceleration.
OpenNN (Open Neural Networks Library) is a software library written in the C++ programming language and used to implement neural networks. It offers a number of advanced features including analytics that makes it ideal for experienced developers and programmers.
The software library is open-source and licensed under the GNU Lesser General Public Licence. It can be used to implement any number of layers of non-linear processing units for supervised learning and contains machine learning algorithms as a bundle of functions. While it is a general purpose AI software package, it will be found useful in predictive analytics tasks.
AutoML is relatively new to the long list of tools available at the disposal of a machine learning engineer. AutoML is a library used by machine learning engineers to optimise their models. If OpenNN is aimed primarily at experienced developers, AutoML can be used by even those who don’t have much experience in the field.
With AI reaching a new realm where software is now being trained to build software, AutoML can prove to be a handy tool to build neural networks, optimise them and define things that matter the most while building the models.