![](/img/trans.png)
[英]Why does tf.matmul(a,b, transpose_b=True) work, but not tf.matmul(a, tf.transpose(b))?
[英]Get diagonal elements from tf.matmul(tf.transpose(A), A) in Tensorflow
我有一個包含幾列的矩陣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
。 但是似乎這是一個相當普通的計算,因此我希望為此存在一個函數(即計算權重向量的平方范數)。
您可以將矩陣本身按元素相乘,然后沿軸0相加。
import tensorflow as tf
tf.InteractiveSession()
A = tf.reshape(tf.range(12), (3, 4))
tf.reduce_sum(tf.pow(A, 2), axis=0).eval()
回報
array([ 80, 107, 140, 179], dtype=int32)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.