PyTensor is a Python library that allows one to define, optimize/rewrite, and evaluate mathematical expressions, especially ones involving multi-dimensional arrays (e.g. numpy.ndarrays). Using PyTensor, it is possible to attain speeds rivaling hand-crafted C implementations for problems involving large amounts of data.
PyTensor combines aspects of a computer algebra system (CAS) with aspects of an optimizing compiler. It can also generate customized code for multiple compiled languages and/or their Python-based interfaces, such as C, Numba, and JAX. This combination of CAS features with optimizing compilation and transpilation is particularly useful for tasks in which complicated mathematical expressions are evaluated repeatedly and evaluation speed is critical. For situations where many different expressions are each evaluated once, PyTensor can minimize the amount of compilation and analysis overhead, but still provide symbolic features such as automatic differentiation.
PyTensor is a fork of Aesara, which is a fork of Theano.
This is free and open source software.
Key Features
- Tight integration with NumPy – Use numpy.ndarray in PyTensor-compiled functions.
- Efficient symbolic differentiation – PyTensor efficiently computes your derivatives for functions with one or many inputs.
- Speed and stability optimizations – Get the right answer for log(1 + x) even when x is near zero.
- Dynamic C/JAX/Numba code generation – Evaluate expressions faster.
- Hackable, pure-Python codebase.
- Extensible graph framework suitable for rapid development of custom operators and symbolic optimizations.
- Implements an extensible graph transpilation framework that currently provides compilation via C, JAX, and Numba.
- Contrary to PyTorch and TensorFlow, PyTensor maintains a static graph which can be modified in-place to allow for advanced optimizations.
Website: pytensor.readthedocs.io
Support: GitHub code repository
Developer: PyMC Development team
License: 3-clause BSD license
PyTensor is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Deep Learning with Python | |
|---|---|
| TensorFlow | A very popular Deep Learning framework |
| PyTorch | Tensors and Dynamic neural networks in Python |
| Keras | High-level neural networks API |
| fastai | Simplifies training fast and accurate neural networks |
| tinygrad | Compact, lightweight deep learning framework |
| PyTorch Lightning | Framework for scaling PyTorch training workflows |
| JAX | High-performance numerical computing and ML library |
| PyTensor | Library for fast numerical computation |
| MindSpore | Framework for training and deploying neural networks |
| Elephas | Distributed deep learning with Keras and Spark |
| Chainer | Powerful, flexible, and intuitive framework for neural networks |
| Equinox | Neural network library for building flexible models with JAX |
| Caffe | Convolutional Architecture for Fast Feature Embedding |
| TFlearn | Deep learning library featuring a higher-level API for TensorFlow |
| MXNet | Flexible and efficient library |
| CNTK | Distributed deep learning |
| Neupy | Python library for neural networks and deep learning |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.