Fix parameter-only gradients #158
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR skips the grad/hess structure passes when the graphs evaluate to
NaN, effectively marking them as having zero terms. I think this only happens when the constraintconsists of only a parameterhas no variables.I'm not too confident in this fix, it might be better to adjust these methods instead:
ExaModels.jl/src/graph.jl
Lines 142 to 144 in bde7733
But I'm not sure how. A related case is
constraint(c, ::Int), which ends up calling_simdfunction(Null(), ...)but in that caseAdjointNullis fine since it's a leaf node. Please advise 😄