It is a Python Deep learning framework for accelerating research and production deployment of neural networks. It is inspired by torch ML framework available in “Lua” language. The simple API makes training network easier on CPU/GPUs/TPUs. It also provides C++/Java APIs apart from Python. It has various helper libraries to work with text (torchtext), images (torchvision), videos, and audio (torchaudio) data. They recently introduced torchrec for recommendation systems.
It is an open-source Python ML framework developed by François Chollet and was released in 2015. It's a high-level framework based on tensorflow. It earlier supported Microsoft CNTK and Theano as backend as well. Keras makes the creation and training of networks easier. It supports the training of models on CPU/GPUs/TPUs. It even supports distributed training on multiple GPUs and TPUs.
From: Google DeepMind
Sonnet is another ML framework designed by researchers at DeepMind on the top of Tensorflow. It is a high-level framework like Keras that makes the work of ML researchers easier. Sonnet is like PyTorch version of Tensorflow. It is designed to be simple to understand. Each module (network layers) is independent of the others. It does come with training framework like Keras and developers need to write code for it.
From: Apache Software Foundation
JAX is NumPy (Python linear algebra library) on CPU, GPU, and TPU. Apart from linear algebra functionalities, JAX provides automatic differentiation of Python functions for deep learning research. JAX also provides a Just-in-time (JIT) compilation of code using XLA (Accelerated Linear Algebra). JAX is a low-level library like Tensorflow. It has a functional API, unlike other deep learning frameworks (PyTorch, Sonnet, Flax, Haiku, etc.) that have OOP APIs.
From: Facebook Research
Pytorch Lightning is another open-source Python deep learning framework designed on top of PyTorch. It provides a high-level interface on top of PyTorch that can simplify many tasks. It frees users from writing training code and device (CPU/GPU/TPU) handling code. It is a lightweight framework that decouples research from engineering simplifying deep learning experiments and making them reproducible.
From: Google Brain
Flax is a high-level Python ML deep learning framework designed on top of JAX. It is a very flexible framework to create networks. Flax provides modules for the majority of deep learning layers like convolution, recurrent layers, batch normalization, etc. Flax let us create neural networks built in JAX using the almost same approach that we use to create networks in PyTorch.
Scikeras is a deep learning framework designed on top of Keras. It provides a sklearn-like (Scikit-learn) API to Keras neural networks. Scikit-learn is a Python library that has an implementation for the majority of ML algorithms like decision trees, GBM, linear/logistic regression, SVM, random forest, etc. Its API is very easy to use and widely preferred by developers worldwide. Scikeras adds this simple API to Keras models. This frees developers from writing boiler-plat code like training loops.
Skorch is another Python deep learning library like scikeras that has adopted sklearn’s simple API for PyTorch models. It let us design networks in PyTorch and train/evaluate them using the sklearn-like API of skorch. It frees developers from writing boiler-plat code like training and evaluation loops.
From: Google DeepMind
Haiku is another simple high-level Python deep learning library designed on top of the low-level library JAX. It is designed to simplify the task of researchers who wants to use JAX. It lets developers design neural networks using an object-oriented programming approach but also allows JAX pure transformations (JIT, Grad, Vmap, etc).
Feel free to click below button if you want further details on Python AI libraries.