Skip to main content
. 2021 Sep 10;2(9):100323. doi: 10.1016/j.patter.2021.100323

Table 1.

Representative list of available open-source software frameworks and programming languages for the implementation of AI algorithms

Software framework Programming languages Operating systems GPU computing supporta Distributed training support Availability of pretrained modelsb Software license Website
Deep ML frameworksc

Tensorflow & Kerasd Python, JavaScript, C++, Java, Go, Swift (early release) Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines yes Apache 2.0 www.tensorflow.org
PyTorch Python, C++, Java Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines yes BSD-3 pytorch.org
Apache MXNet Python, C++, Scala, Julia, Clojure, Java, R, Perl Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines yes Apache 2.0 mxnet.apache.org
H2O Python, Scala, Java, R Linux, Windows Linux, Windows multiple GPUs, multiple machines no Apache 2.0 www.h2o.ai
Deeplearning4j Java, Groovy, Scala, Kotlin, Clojure Linux, Windows, macOS, Android Linux, Windows multiple GPUs, multiple machines yes Apache 2.0 deeplearning4j.org
Chainer Python Linux Linux multiple GPUs, multiple machines yes MIT chainer.org
PaddlePaddle Python Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines yes Apache 2.0 www.paddlepaddle.org
SINGA Python, C++ Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines noe Apache 2.0 singa.apache.org
Flux Julia Linux Linux multiple GPUs no MIT fluxml.ai
OpenNN C++ Linux, Windows, macOS Linux, Windows no no LGPLv3 www.opennn.net
Dlib Python, C++ Linux, Windows, macOS Linux, Windows multiple GPUs no BSL-1.0 dlib.net
MLBox Python Linux, Windows, macOS no no no BSD-3 github.com/AxeldeRomblay/MLBox

ML frameworks

scikit-learn Python Linux, Windows, macOS no no no BSD-3 scikit-learn.org
Apache Mahout Java, Scala Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines no Apache 2.0 mahout.apache.org
xLearn Python, R Linux, Windows, macOS no multiple machines no Apache 2.0 github.com/aksnzhy/xlearn
Shogun Python, Octave, R, Java, Scala, Lua, C#, Ruby Linux, Windows, macOS no no no GPLv3 www.shogun-toolbox.org
SystemDS Python, Java Linux, Windows, macOS Linux, Windows multiple GPUs, multiple machines no Apache 2.0 systemds.apache.org

BSD, Berkeley Software Distribution; BSL, Boost Software License; GPL, GNU General Public License; LGPL, GNU Lesser General Public License; MIT, Massachusetts Institute of Technology.

a

While all software frameworks support CPU-based analysis, some support GPU-based analysis, which can make key computations very fast, particularly convolution operations used in image analysis.

b

The availability of pretrained models allows giving an AI model a warm start by applying information learned from another previously trained model using a process known as transfer learning. For example, frameworks such as Tensorflow with Keras, PyTorch, and PaddlePaddle allow the transfer of a pretrained DenseNet-161 model to a DCNN model, and DarkNet-53 pretrained model to a YOLO model (Figure 2).

c

Deep ML frameworks can support both ML and DL AI algorithms.

d

Keras is the high-level application programming interface (API) of TensorFlow, allowing users to train, evaluate, and use AI models in just a few lines of code.

e

While SINGA does not provide pretrained AI models, it supports transferring models in Open Neural Network Exchange (ONNX) format, an open-representation format for AI models that enables users to use them across different software frameworks.