我有一个包含多个列的矩阵A
,我需要计算自助点产品,即tf.matmul(A[:,i]), A[:,i], transpose_a=True)
其中i
索引A
的列。一种方法是仅计算tf.matmul(A,A, transpose_a=True)
并提取对角线,但这涉及大量多余的乘法(所有非对角线结果都被丢弃,非对角线结果是大于2的任何矩阵的大部分结果x 2)。另一种方法是做类似
out = []
for i in range(tf.shape(A)[1]):
out.append(tf.matmul((A[:,i],A[:,i],transpose_a=True))
然后将out
收集到tf.Tensor
。但似乎这是一个相当普遍的计算,所以我希望它能存在一个函数(即计算权重向量的平方范数)。