Add gradient for SVD. This is based on draft code by Catalin Ionescu...
Add gradient for SVD. This is based on draft code by Catalin Ionescu (cdi@google.com), using the algorithm outlined in Mike Giles' paper: http://eprints.maths.ox.ac.uk/1079/1/NA-08-01.pdf. This initial version has the following restrictions: Only supports statically known inner matrix dimensions m and n. Backpropagating through U and V (i.e. backpropagating through SVD nodes with compute_uv=True) has further restrictions: a) Only supports real tensors. b) Only supports square and "almost square" matrices where the number of rows and columns differ by at most 1. c) full_matrices must be true also. This does not currently have severe implications, given the restriction in b). Feature request on Github: #6503 This CL also adds support for calling tf.real, tf.imag, and tf.angle with real arguments. PiperOrigin-RevId: 171836140
Loading
Please sign in to comment