Patrick Kidger
Patrick Kidger
@johannahaffner -- so this is a misunderstanding of how `jax.lax.stop_gradient` works. It has to be called from within the region that has `jax.grad` applied to it. It doesn't control a...
I think option 1 sounds like a good choice! Although FWIW you probably won't need to use static fields at all -- using `eqx.filter_{jit, grad, ...}` is generally a better...
Hmm, this is unfortunate. So based on a bit of digging, it seems that there are (at least) two distinct ways to declare the type of the members of an...
So I think removing this at runtime is likely a somewhat annoying backward incompatibility, as this has been around for several years / is the only syntax for `eqx.Enumeration` to...
So I considered this, but ended up settling on `EQX_ON_ERROR=nan` instead, which struck me as a safer alternative. I take your point that this may result in reduced performance -...
So by default, dataclasses actually have rather unusual behaviour around `__init__` methods: they actually always automatically create a new one in the subclass, even if it would override one that...
Thankyou, I'm glad you like Equinox and Diffrax! So the easiest way to do this is to use `eqx.{partition, combine}` to split your model into the static and non-static parts....
So this hooked into some JAX internals that are getting removed in a future version of JAX. You could maybe replicate the same behavior by arranging for something updated and...
Hey there! I wanted to come back to this and offer a little extra insight. I actually don't think it's due to funny callback behaviour, as in the JAX issue...
So `io_callback` would block DCE entirely, which would frequently be undesirable: ```python # loads of code diffeqsolve(...) # output unused # loads more code ``` ^ using `io_callback` would mean...