-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rules for turning lazy broadcasted to eager one? #104
Comments
Yes, this is a reasonable rule to have. The reason
Not entirely true, AD engines can opt out of particular ChainRules rules, While opting out has to more or less be on a case by case basic, At some point we might want to consider attaching metadata via say traits to rules to make opt-ing out of particular groups easier. (Or maybe to allow use to define a |
I see. This is a really nice way of implementing it. Thanks for pointing this out. |
Is it solved? |
I think so?
the answer was:
|
I see. That makes sense. I was somehow thinking this would be closed by porting some related rules from Zyogte. But that's not the OP said and I guess we don't need an individual issue to track it. |
I do need to sit down and write a script to find all rules from Zygote that we haven't ported from Nabla alrrady. |
Zygote.jl has some definitions for
broadcasted
such as this:Notice
ed
, notbroadcast
. It's converting a lazy broadcast to eager one to store the temporary values.I'm wondering if this kind of rules should be ported to ChainRules.jl. I think the way ChainRulesCore.jl express the rules cannot be used to auto-generate this kind of specializations (both before and after JuliaDiff/ChainRulesCore.jl#30). However, implementing this rule in ChainRules.jl means that AD engines cannot choose to use it or not.
Does it make sense to have it in ChainRules.jl? Or should it be done for each AD implementation?
(Maybe related to @willtebbutt's question here #12 (comment) ?)
The text was updated successfully, but these errors were encountered: