PyTorch, TensorFlow, JAX and NumPy — all of them natively using the same code

Get Started →

Native Performance

EagerPy operations get directly translated into the corresponding native operations.

Fully Chainable

All functionality is available as methods on the tensor objects and as EagerPy functions.

Type Checking

Catch bugs before running your code thanks to EagerPy's extensive type annotations.

# What is EagerPy?

EagerPy is a Python framework that lets you write code that automatically works natively with PyTorch, TensorFlow, JAX, and NumPy.

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 pip:

python3 -m pip install eagerpy


EagerPy requires Python 3.6 or newer.