-
Notifications
You must be signed in to change notification settings - Fork 64
Description
This was originally discussed in JuliaDiff/ChainRules.jl#12 (comment)
and in a few other places.
Basically often when defining a chainrule (frule
, or rrule
)
it would be nice to be able to say "Give me this chainrule for some of the function, and if there is not one predefined us AD to get it"
as part of your rule definition.
Right now this is not ppossible, except by hard coding a AD (e.g. Zygote) in.
Where as if we had a function that an AD system could basically overload,
then we could do that.
It would also provide a common API for all ADs that support it.
This would help e.g. with higher order functions like map
, broadcast
etc
JuliaDiff/ChainRules.jl#122
There is some fiddlyness involved, around making sure it is both overloadable multiple times and so the user can choise which AD, and that compiles away, but I think we can sort it all out.
@jessebett reminded me of this today