updated README
Jonas Rauber
4 years ago
7 | 7 | :target: https://github.com/ambv/black |
8 | 8 | |
9 | 9 | |
10 | .. image:: https://raw.githubusercontent.com/jonasrauber/eagerpy/master/docs/.vuepress/public/logo_small.png | |
11 | :target: https://jonasrauber.github.io/eagerpy/ | |
12 | ||
13 | ||
10 | 14 | ======= |
11 | 15 | EagerPy |
12 | 16 | ======= |
13 | ||
14 | .. image:: https://jonasrauber.github.io/eagerpy/logo.png | |
15 | :target: https://jonasrauber.github.io/eagerpy/ | |
16 | ||
17 | What is EagerPy? | |
18 | ---------------- | |
19 | 17 | |
20 | 18 | `EagerPy <https://jonasrauber.github.io/eagerpy/>`_ is a **Python framework** that let's you write code that automatically works natively with `PyTorch <https://pytorch.org>`_, `TensorFlow <https://www.tensorflow.org>`_, `JAX <https://github.com/google/jax>`_, and `NumPy <https://numpy.org>`_. |
21 | 19 | |
22 | 20 | EagerPy is **also great when you work with just one framework** but prefer a clean and consistent NumPy-inspired API that is fully chainable, provides extensive type annotions and let's you write beautiful code. It often combines the best of PyTorch's API and NumPy's API. |
23 | 21 | |
24 | Design goals | |
25 | ------------ | |
22 | 🔥 Design goals | |
23 | -------------- | |
26 | 24 | |
27 | 25 | - **Native Performance**: EagerPy operations get directly translated into the corresponding native operations. |
28 | 26 | - **Fully Chainable**: All functionality is available as methods on the tensor objects and as EagerPy functions. |
29 | 27 | - **Type Checking**: Catch bugs before running your code thanks to EagerPy's extensive type annotations. |
30 | 28 | |
31 | Documentation | |
32 | ------------- | |
29 | 📖 Documentation | |
30 | --------------- | |
33 | 31 | |
34 | 32 | Learn more about in the `documentation <https://jonasrauber.github.io/eagerpy/>`_. |
35 | 33 | |
36 | Use cases | |
37 | --------- | |
38 | ||
39 | `Foolbox Native <https://github.com/bethgelab/foolbox>`_, the latest version of | |
40 | Foolbox, a popular adversarial attacks library, has been rewritten from scratch | |
41 | using EagerPy instead of NumPy to achieve native performance on models | |
42 | developed in PyTorch, TensorFlow and JAX, all with one code base. | |
43 | ||
44 | Installation | |
34 | 🚀 Quickstart | |
45 | 35 | ------------ |
46 | 36 | |
47 | 37 | .. code-block:: bash |
49 | 39 | pip install eagerpy |
50 | 40 | |
51 | 41 | |
52 | Example | |
53 | ------- | |
42 | 🎉 Example | |
43 | --------- | |
54 | 44 | |
55 | 45 | .. code-block:: python |
56 | 46 | |
95 | 85 | # You can call this function using any kind of tensors and the result |
96 | 86 | # will have the same type. |
97 | 87 | |
88 | 🗺 Use cases | |
89 | ----------- | |
98 | 90 | |
99 | Compatibility | |
100 | ------------- | |
91 | `Foolbox Native <https://github.com/bethgelab/foolbox>`_, the latest version of | |
92 | Foolbox, a popular adversarial attacks library, has been rewritten from scratch | |
93 | using EagerPy instead of NumPy to achieve native performance on models | |
94 | developed in PyTorch, TensorFlow and JAX, all with one code base. | |
95 | ||
96 | 🐍 Compatibility | |
97 | --------------- | |
101 | 98 | |
102 | 99 | We currently test with the following versions: |
103 | 100 |
Binary diff not shown