Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/epronovost/eincheck
Tensor shape checks inspired by einstein notation
https://github.com/epronovost/eincheck
deep-learning jax numpy pytorch tensor tensorflow
Last synced: about 1 month ago
JSON representation
Tensor shape checks inspired by einstein notation
- Host: GitHub
- URL: https://github.com/epronovost/eincheck
- Owner: EPronovost
- License: mit
- Created: 2022-10-29T02:38:07.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-12T04:32:30.000Z (2 months ago)
- Last Synced: 2024-10-11T00:22:12.854Z (about 1 month ago)
- Topics: deep-learning, jax, numpy, pytorch, tensor, tensorflow
- Language: Python
- Homepage:
- Size: 203 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# eincheck
[![CI](https://github.com/epronovost/eincheck/actions/workflows/pr.yaml/badge.svg)](https://github.com/epronovost/eincheck/actions/workflows/pr.yaml)
[![Documentation Status](https://readthedocs.org/projects/eincheck/badge/?version=main)](https://eincheck.readthedocs.io/en/main/?badge=main)
[![PyPI version](https://badge.fury.io/py/eincheck.svg)](https://badge.fury.io/py/eincheck)Tensor shape checks inspired by einstein notation
## Overview
This library has three main functions:
* `check_shapes` takes tuples of `(Tensor, shape)` and checks that all the Tensors match the shapes
```
check_shapes((x, "i 3"), (y, "i 3"))
```* `check_func` is a function decorator to check the input and output shapes of a function
```
@check_func("*i x, *i y -> *i (x + y)")
def concat(a, b):
return np.concatenate([a, b], -1)
```* `check_data` is a class decorator to check the fields of a data class
```
@check_data(start="i 2", end="i 2")
class LineSegment2D(NamedTuple):
start: torch.Tensor
end: torch.Tensor
```For more info, [read the docs!](https://eincheck.readthedocs.io/en/main)