You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
functionmapOrthogonal(X::T, Y::T; λ::Float32=Float32(1)) where {T}
F = CUDA.CUBLAS.svd(X * Y')
W =permutedims(F.U * F.Vt *cuinv((X * X') + λ .*CuMatrix{Float32}(I, 300, 300)))
return W, F.S
end
The above code snippet is kind of misleading. Thinking in theory lead me to think that the matrix multiplication inside the decomposition operation X * Y' is wrong. Because what we do is that we rotate the source space towards the target space where as this operation leads to opposite direction!
We should calculate the rotation operation based on X and not Y!
To do so :
Just transpose the operation : X * Y' to Y * X'.
Probably, we need to shift the Vt and U operations.
Debug for verification.
The text was updated successfully, but these errors were encountered:
The above code snippet is kind of misleading. Thinking in theory lead me to think that the matrix multiplication inside the decomposition operation
X * Y'
is wrong. Because what we do is that we rotate the source space towards the target space where as this operation leads to opposite direction!We should calculate the rotation operation based on X and not Y!
To do so :
X * Y'
toY * X'
.Vt
andU
operations.The text was updated successfully, but these errors were encountered: