例如
A=[[3,2],
[1,3],
[4,3]]
B=[[4,1],
[2,1],
[2,4]]
对于矩阵的每个行向量;我想执行列行乘法
result = []
for i in range(3):
x = tf.matmul(tf.reshape(A[i],[2,1]), tf.reshape(B[i],[1,2])) # gives 2x2 matrix
result.append(x)
tf.stack(result)
我想知道是否有一种更有效的方法可以完全摆脱循环,因为实际上我需要循环数千次
答案 0 :(得分:0)
幸运的是,Tensorflow支持“批处理”矩阵乘法,因此以下内容就足够了:
A = tf.placeholder(tf.float32, [3,2])
B = tf.placeholder(tf.float32, [3,2])
AA = tf.reshape(A,[3,2,1])
BB = tf.reshape(B,[3,1,2])
print(tf.matmul(AA,BB))
>>> <tf.Tensor 'MatMul_1:0' shape=(3, 2, 2) dtype=float32>