Pytorch - AshokBhat/ml GitHub Wiki
- Popular Machine Learning Framework
- Free and Open source - Modified BSD license.
- Primary developer: Meta
- Interface: Python interface (polished and primary focus), C++ frontend
- 90-day release cycle (major releases)
See PyTorch Versions
| Mode | Work |
|---|---|
| Eager mode | Default execution mode. Operations are executed immediately. Allows for dynamic computation graphs Easy debugging. |
| Graph mode | FX Graph ("Function Exchange Graph") mode Operators are first synthesized into a graph, which will then be compiled and executed as a whole. Typically delivers higher performance and hence is heavily used in production. Useful for quantization tasks |
| Feature | Desc | Backwards Compatibility | Future |
|---|---|---|---|
| Stable | Yes | Yes | |
| Beta | (previously Experimental) | No | Aim to become Stable |
| Prototype | (previously Nightlies) | No | Collect feedback, Fail fast |
| Library | Features | Performance on x86 | Performance on Arm |
|---|---|---|---|
| NNPACK | ML operators | Convolution (2x-3x) faster than standard im2col/sgemm implementation | |
| XNNPACK | ML operators | ||
| QNNPACK | Quantized operators | Not optimized | Optimized for Arm |
| Eigen | fastest BLAS benchmarked on ARM | ||
| FBGEMM | Quantized GEMM | Not optimized | |
| OpenBLAS | BLAS and LAPACK | Optimized on Arm for FP32 |
Source: https://caffe2.ai/docs/mobile-integration.html
| Libraries | Domain | Description |
|---|---|---|
| TorchServe | Serving | Tool for serving PyTorch models |
| TorchVision | Computer Vision | Consists of popular datasets, model architectures, and common image transformations for computer vision. |
| TorchAudio | Audio | Consists of I/O, popular datasets and common audio transformations. |
| TorchText | NLP | Consists of data processing utilities and popular datasets for natural language processing |
| TorchElastic | Scaling | For distributed training jobs to be executed in a fault-tolerant and elastic manner |
| Component | Domain | Description |
|---|---|---|
| TorchInductor | Compiler for PyTorch models | |
| TorchDyanmo | Python-level JIT compiler for PyTorch | To make unmodified PyTorch programs faster by generating machine code from the Python bytecode. |
| Partner | Details |
|---|---|
| Microsoft |
PyTorch-ONNX colloboration PyTorch Windows port maintainer |
| AWS | TorchServe co-development |
| Chainer | Chainer merged with PyTorch |
| OpenAI | OpenAI Standardizes on PyTorch |
| Uber | Uber's Pyro probabilistic programming language software uses PyTorch as a backend |
| Cloud TPUs support the PyTorch 1.7 release, via PyTorch/XLA integration |
- Facebook operated both PyTorch and Caffe2, but models defined by the two frameworks were mutually incompatible.
- Caffe2 was merged into PyTorch at the end of March 2018.
- Frameworks: TensorFlow | PyTorch | MXNET | Keras | ONNX
- Inference engines: ArmNN | OpenVINO | TensorRT | TensorFlow Lite | Core ML