Keras is an open-source framework that provides high level APIs for large machine learning applications such as neural networks. These APIs can run on top of the backend engines such as TensorFlow, CNTK (Cognitive Toolkit), Theano, MXNet and PlaidML. Its simple and easy-to-use architecture facilitates fast development of models. It is most suitable for Rapid Prototyping and Small Datasets.
TensorFlow is an open-source AI framework developed by Google. It provides both high and low-level APIs that has library for numerical computations and large-scale machine learning applications like neural networks. Its library supports static* computation graph and is compatible with various coding languages such as C, C++, Java, etc. It renders visualization using inbuilt Tensor board library and easy deployment using TensorFlow serving. It is most suitable for Large Dataset, High Performance, and Object Detection. Some of the projects on TensorFlow are SIGHT, Maid Monitor, Farmaid, A Sudoku Solver’s Robot, and Real-time face mask detector.
PyTorch is an open-source Machine learning library developed by Facebook’s AI (Artificial Intelligence) Research group. It is based on the torch library and provides lower-level API that helps the user to customize the layers and optimize tasks. It offers python like coding, distributed training, debugging capabilities and supports dynamic** computation graph. However, it needs third party software for visualization, and APIs for the production. It is preferred where single homogeneous computation is not needed for example such as Natural Language Processing (NLP) where the length of words in documents or length of different documents is not same. Today, most of the big companies are using PyTorch; for example, Microsoft for language modeling service, Airbnb to enhance customer experience, Genetech for drug discovery and cancer therapy, Toyota Research Institute for adding new driver support features in cars. Read more here.
Caffe (Convolutional Architecture for Fast Feature Embedding) is an open-source deep learning framework originally developed at University of California. It supports many different types of deep learning designs such as CNN (Convolutional Neural Network), RCNN (Region-based Convolutional Neural Networks), and fully connected neural network that ease image classification and image segmentation effectively. Today, it is being used in academic research projects, start-up prototypes, and even large-scale industrial applications such as vision, speech, and multimedia.
Caffe2 is launched by Facebook in 2017 with the addition of new features to Caffe such as Recurrent Neural Networks (RNN), flexibility, large-scale distributed training, and support for mobile deployment. It has been merged into PyTorch in 2018 to create PyTorch 1.0 that is suitable for both research and production. It is well-suited for the applications that hold large-scale image classification and object detection.
Open Neural Network Exchange (ONNX) is an open source AI ecosystem introduced by Facebook in collaboration with Microsoft in 2017 which was later supported by IBM, Huawei, Intel, AMD, ARM, and Qualcomm also. It is an open standard format for representing machine learning models that enables the developers to switch between frameworks. More information is available on GitHub.
* In static framework i.e., TensorFlow, graph is created in the very beginning of the training and then for each example, data is fed to it followed by the calculations of the result based on that graph computation and perform back propagation and update but the underlying graph never changes. This method is useful for image classification problem where the size of image will be fixed.
**In dynamic framework i.e. PyTorch, graph is created for each mini batch in data, followed by calculation of result based on that graph computation. If training, perform back propagation and update. This method is useful in NLP, where we have word and documents of different length.
For information regarding how to install DL frameworks, click here.