问题
I have a set of MxM symmetric matrix Variables in a graph whose values I'd like to optimize.
Is there a way to enforce the symmetric condition?
I've thought about adding a term to the loss function to enforce it, but this seems awkward and roundabout. What I'd hoped for is something like tf.matmul(A,B,symmA=True)
where only a triangular portion of A would be used and learned. Or maybe something like tf.upperTriangularToFull(A)
which would create a dense matrix from a triangular part.
回答1:
What if you do symA = 0.5 * (A + tf.transpose(A))
? It is inefficient but at least it's symmetric.
来源:https://stackoverflow.com/questions/36697736/how-to-force-tensorflow-tensors-to-be-symmetric