gpt4 book ai didi

python - 从 Tensorflow 中的 tf.matmul(tf.transpose(A), A) 获取对角线元素

转载 作者:行者123 更新时间:2023-12-01 02:54:09 33 4
gpt4 key购买 nike

我有一个包含几列的矩阵A,我需要计算自点积,即tf.matmul(A[:,i]), A[:,i ], transpose_a=True) 其中 iA 的列进行索引。一种方法是只计算 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中。但这似乎是一个相当常见的计算,所以我希望它存在一个函数(即计算权重向量的平方范数)。

最佳答案

只需一点线性代数,你就可以得到解决方案: enter image description here

这意味着您需要执行以下操作:tf.reduce_sum(tf.square(A), axis=0)

关于python - 从 Tensorflow 中的 tf.matmul(tf.transpose(A), A) 获取对角线元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44395153/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com