Comments (5)
Not yet, but that's easy to add (PyTorch, TensorFlow, and JAX all seem to support it). Do you want to make a PR?
from eagerpy.
Thanks for the answer, I can try to make a PR but I never used JAX.
Side question: Is there a way to extend eagerpy.*
by using, e.g., entry points or other python stuff? I currently have a ep_utils
package that I import with custom function (e.g. diag
), but it would be nice to be able to just install an "extension" package and then be able to do eagerpy.diag
.
from eagerpy.
In principle, extending packages with other packages is possible, but when I did that for the development version of Foolbox Native, it was quite a pain (requires certain pip versions, not everything works, etc.).
from eagerpy.
So I started to write a PR for this but I'm kind of confused with your test sets... Currently I have something like this:
@compare_all
def test_diag_1(dummy: Tensor) -> Tensor:
t = ep.arange(dummy, 4).float32()
return ep.diag(t)
@compare_all
def test_diag_2(dummy: Tensor) -> Tensor:
t = ep.arange(dummy, 4).float32()
return ep.diag(t, k=2)
@compare_all
def test_diag_3(dummy: Tensor) -> Tensor:
t = ep.arange(dummy, 9).float32().reshape((3, 3))
return ep.diag(t)
@compare_all
def test_diag_4(dummy: Tensor) -> Tensor:
t = ep.arange(dummy, 9).float32().reshape((3, 3))
return ep.diag(t, k=2)
But...
-
If I understand
compare_all
correctly, it will simply check consistency between the methods, not the actual results. Should I wrote a different (non-decorated)test_diag
? -
When I runI just found out aboutpytest
, it skips everything... Any idea why?make test
...
from eagerpy.
-
You are right,
compare_all
and the other decorators like this simply check consistency by comparing each framework to the NumPy implementation. I consider that sufficient because the underlying frameworks are responsible for correctness themselves (EagerPy provides a consistent wrapper but not custom implementations). No need to write a non-decoratedtest_diag
. -
You already found the solution. The reason for that is that we have to run the tests for the different frameworks in separate processes because the (GPU) frameworks sometimes break each other.
from eagerpy.
Related Issues (20)
- Will it support for SparseTensor (Tensorflow or Pytorch)? HOT 1
- How to Transform a torch tensor to tensorflow tensor HOT 1
- eagerpy not working together with Neural Tangents HOT 3
- topk
- Inclusion of probability distributions (scope question) HOT 1
- implementation of `slogdet` in eagerpy HOT 5
- ep.totensor method? HOT 5
- add type conversions [feature request] HOT 4
- Python Scalars Support HOT 3
- Missing support for ep.nonzero() and ep.flatnonzero() HOT 1
- Have a decorator to wrap universal functions ? HOT 6
- Support for @ operator ? HOT 6
- Does a universal function can be compiled in tensorflow? HOT 5
- where method do not works with pytorch
- `index_update` seems very slow for tensorflow backend
- Why restrict cross entropy to 2D inputs only? HOT 1
- TensorFlowTensor.index_update fails for int64/float64 tensors and int/float values
- ValueError: Unknown type: <class 'tuple'>
- sigmoid support HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eagerpy.