-
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
Issue with AD and SVD #387
Comments
Note that
here evaluates to
for the failing function, rather than including the |
Also note that this function nearest_orthogonal_matrix_twostep(X::StridedMatrix{<:Union{Real, Complex}})
# Inlining necessary for type inference for some reason.
F = svd(X)
return F.U * F.V'
end also doesn't work properly (this was pointed out my Miha and Alex in the original thread) |
Oh, I think I got it, right in the belly of the beast: This function is not defined for This kind of makes sense since there was a recent reorganisation of that part I believe. I will work it out more properly and submit a PR |
Btw, we really need JuliaDiff/ChainRulesTestUtils.jl#114, would be so much easier to debug these things easily |
closed by FluxML/Zygote.jl#922 |
Originally opened in ParameterHandling: JuliaGaussianProcesses/ParameterHandling.jl#18
In ParameterHandling there is a method called
nearest_orthogonal_matrix
that is essentially this:However, I'm encountering issues in using Zygote to AD through this. This is a MWE example that demonstrates this with FiniteDifferences. I do include a variant that should be identical in the forward pass that appears to be correct in the backward pass, that may help diagnose this.
The text was updated successfully, but these errors were encountered: