EagerPy operations get directly translated into the corresponding native operations.
All functionality is available as methods on the tensor objects and as EagerPy functions.
Catch bugs before running your code thanks to EagerPy's extensive type annotations.
# What is EagerPy?
import eagerpy as ep def norm(x): x = ep.astensor(x) result = x.square().sum().sqrt() return result.raw
You can now use the
norm function with native tensors and arrays from PyTorch, TensorFlow, JAX and NumPy with virtually no overhead compared to native code. Of course, it also works with GPU tensors.
import torch norm(torch.tensor([1., 2., 3.])) # tensor(3.7417)
import tensorflow as tf norm(tf.constant([1., 2., 3.])) # <tf.Tensor: shape=(), dtype=float32, numpy=3.7416575>
import jax.numpy as np norm(np.array([1., 2., 3.])) # DeviceArray(3.7416575, dtype=float32)
import numpy as np norm(np.array([1., 2., 3.])) # 3.7416573867739413
# Getting Started
You can install the latest release from PyPI using
python3 -m pip install eagerpy
EagerPy requires Python 3.6 or newer.