Top and Free Machine Learning Open-Source Frameworks
By: Mrinal Walia
Tags: Framework, TensorFlow, Keras, Machine Learning, Open Source

1. Tensorflow

Github:150, 000 stars and 83, 200 forks

Tensorflow is an end-to-end open-source platform for machine learning and it has a comprehensive, flexible ecosystem of tools, libraries, and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML-powered applications.

TensorFlow provides stable Python and C++ APIs, as well as non-guaranteed backward compatible API for other languages.

TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google’s Machine Intelligence Research organization to conduct machine learning and deep neural networks research.

2. Keras

Github:50, 200 stars and 18, 700 forks

Keras is a deep learning API written in Python, running on top of the machine learning platform TensorFlow. It is designed for human beings, not machines.

Keras follows best practices for reducing cognitive load: it offers consistent & simple APIs, it minimizes the number of user actions required for common use cases, and it provides clear & actionable error messages. It also has extensive documentation and developer guides.

Multi-backend Keras has been discontinued. At this time, we recommend that Keras users who use multi-backend Keras with the TensorFlow backend switch to tf.keras in TensorFlow 2.0

The current release is Keras 2.4.0, which simply redirects to tf.keras .

3. OpenCV

Github:50, 200 stars and 40, 700 forks

OpenCV (Open Source Computer Vision Library) is an open-source computer vision and machine learning software library, built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in commercial products.

The library has more than 2500 optimized algorithms, which includes a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms. It has C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS.

These algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos, track camera movements, track moving objects, extract 3D models of objects, produce 3D point clouds from stereo cameras, stitch images together to produce a high-resolution image of an entire scene, find similar images from an image database, remove red eyes from images taken using flash, follow eye movements, recognize scenery and establish markers to overlay it with augmented reality, etc.

4. Pytorch

Github: 43, 800 stars and 11, 500 forks

PyTorch is a Python package that provides two high-level features:

Tensor computation (like NumPy) with strong GPU acceleration

Deep neural networks built on a tape-based autograd system

PyTorch provides Tensors that can live either on the CPU or the GPU and accelerates the computation by a huge amount.

It provides a wide variety of tensor routines to accelerate and fit your scientific computation needs such as slicing, indexing, math operations, linear algebra, reductions. And they are fast!

PyTorch has minimal framework overhead and is designed to be intuitive, linear in thought, and easy to use. When you execute a line of code, it gets executed.

5. Scikit Learn

Github: 42, 900 stars and 20, 600 forks

Scikit-learn is a Python module for machine learning built on top of SciPy and is distributed under the 3-Clause BSD license. It provides various features such as:

Simple and efficient tools for predictive data analysis

Accessible to everybody, and reusable in various contexts

Built on NumPy, SciPy, and matplotlib

Open source, commercially usable — BSD license

It includes modules and libraries for tasks such as:

Classification : Identifying which category an object belongs to.

: Identifying which category an object belongs to. Regression : Predicting a continuous-valued attribute associated with an object.

: Predicting a continuous-valued attribute associated with an object. Clustering : Automatic grouping of similar objects into sets.

: Automatic grouping of similar objects into sets. Dimensionality Reduction : Reducing the number of random variables to consider.

: Reducing the number of random variables to consider. Model Selection : Comparing, validating and choosing parameters and models.

: Comparing, validating and choosing parameters and models. Preprocessing: Feature extraction and normalization.

6. Transformers

Github:36, 500 stars and 8, 900 forks

Transformers is State-of-the-art Natural Language Processing for Pytorch and TensorFlow 2.0. Transformers provide thousands of pre-trained models to perform tasks on texts such as classification, information extraction, question answering, summarization, translation, text generation, etc in 100+ languages.

Its aim is to make cutting-edge NLP easier to use for everyone. Transformers provide APIs to quickly download and use those pre-trained models on a given text, fine-tune them on your own datasets . At the same time, each python module defining an architecture can be used as a standalone and modified to enable quick research experiments.

Transformers are backed by the two most popular deep learning libraries, PyTorch and TensorFlow, with seamless integration between them, allowing you to train your models with one then load it for inference with the other.