File: introduction.rst

package info (click to toggle)
python-einx 0.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,112 kB
  • sloc: python: 11,619; makefile: 13
file content (21 lines) | stat: -rw-r--r-- 1,151 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.. toctree::
   :caption: Introduction
   :maxdepth: 3

Introduction
############

einx is a Python library that provides a universal interface to formulate tensor operations in frameworks such as Numpy, PyTorch, Jax and Tensorflow.
The design is based on the following principles:

1. **Provide a set of elementary tensor operations** following Numpy-like naming: ``einx.{sum|max|where|add|dot|flip|get_at|...}``
2. **Use einx notation to express vectorization of the elementary operations.** The notation is inspired by `einops <https://github.com/arogozhnikov/einops>`_,
   but introduces several novel concepts such as ``[]``-bracket notation and full composability that allow using it as a universal language for tensor operations.

einx can be integrated and mixed with existing code seamlessly. All operations are :doc:`just-in-time compiled </more/jit>`
into regular Python functions using Python's `exec() <https://docs.python.org/3/library/functions.html#exec>`_ and invoke operations from the respective framework.

**Next steps:**

- :doc:`Installation </gettingstarted/installation>`
- :doc:`Tutorial </gettingstarted/tutorial_overview>`