A Machine Learning Framework is an interface, library or tool which allows developers to more easily and quickly build machine learning models, without getting into the nitty-gritty of the underlying algorithms.
It provides a clear, concise way for defining machine learning models using a collection of pre-built, optimized components. Some of the key features of good ML framework are:
- Optimized for performance
- Developer friendly. The framework utilizes traditional ways of building models.
- Is easy to understand and code on
- Is not completely a black box
- Provide parallelization to distribute the computation process
Overall, an efficient ML Framework reduces the complexity of machine learning, making it accessible to more developers.
Here are popular Machine Learning Frameworks:
Amazon Machine Learning makes it easy for developers to build smart applications, including applications for fraud detection, demand forecasting, targeted marketing, and click prediction. The powerful algorithms of Amazon Machine Learning create machine learning (ML) models by finding patterns in your existing data. The service uses these models to process new data and generate predictions for your application. Amazon Machine Learning (Amazon ML) is a robust, cloud-based service that makes it easy for developers of all skill levels to use machine learning technology.
TensorFlow is an open source software library for high performance numerical computation. Its flexible architecture allows easy deployment of computation across a variety of platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices. Originally developed by researchers and engineers from the Google Brain team within Google's AI organization, it comes with strong support for machine learning and deep learning and the flexible numerical computation core is used across many other scientific domains.
Apache Mahout(TM) is a distributed linear algebra framework and mathematically expressive Scala DSL designed to let mathematicians, statisticians, and data scientists quickly implement their own algorithms. Apache Spark is the recommended out-of-the-box distributed back-end, or can be extended to other distributed backends.
- Mathematically Expressive Scala DSL
- Support for Multiple Distributed Backends (including Apache Spark)
- Modular Native Solvers for CPU/GPU/CUDA Acceleration
MXNet is a modern open-source deep learning framework used to train, and deploy deep neural networks. It is scalable, allowing for fast model training, and supports a flexible programming model and multiple languages. The MXNet library is portable and can scale to multiple GPUs and multiple machines. MXNet is supported by major Public Cloud providers including AWS and Azure Amazon has chosen MXNet as its deep learning framework of choice at AWS.
SINGA is an Apache Incubating project for developing an open source machine learning library. It provides a flexible architecture for scalable distributed training, is extensible to run over a wide range of hardware, and has a focus on health-care applications.
Caffe2 aims to provide an easy and straight forward way for you to experiment with deep learning and leverage community contributions of new models and algorithms. You can bring your creations to scale using the power of GPUs in the cloud or to the masses on mobile with Caffe2's cross- platform libraries.
H2O.ai emerged in 2011 from a grassroots culture of data transformation. With H2O, the main product, a plethora of machine learning models (from linear models to tree-based ensemble methods to Deep Learning) can be trained from R, Python, Java, Scala, JSON, H2O's Flow GUI, or the REST API, on laptops or servers running Windows, Mac or Linux, in the cloud or on premise, on clusters of up to hundreds of nodes, on top of Hadoop or with the Sparkling Water API for Apache Spark.
The Microsoft Cognitive Toolkit previously known as CNTK empowers you to harness the intelligence within massive datasets through deep learning by providing uncompromised scaling, speed, and accuracy with commercial-grade quality and compatibility with the programming languages and algorithms you already use. Hear about the team that developed the Cognitive Toolkit, or read more below.
Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It can use GPUs and perform efficient symbolic differentiation.
Scikit-learn (formerly scikits.learn) is a free software machine learning library for the Python programming language having features like it is simple and efficient tools for data mining and data analysis, accessible to everybody and reusable on various contexts. It is a open source and commercially used platform.