在十位数中矩阵减法和矩阵乘法类似

2024-05-13 04:15:42 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一篇文章,我通常在档案中找到我所有的答案,但有一个艰难的时间与这一个,谢谢你的帮助!你知道吗

我有两个矩阵A和B。使用马特穆特空军基地. 但是我想做矩阵减法,就像矩阵乘法一样。如果我有。你知道吗

A = tf.constant([[1, 1, 1, 2, 3, 1],[1,2,3,4,5,6],[4,3,2,1,6,5]])
B = tf.constant([[1,3,1],[2,1,1]])

#B*A
X = tf.matmult(B,A)
>>>X = [[8,10,12,15,24,24],[7,7,7,9,17,13]]

我想做的是做一个类似matmult的运算,但不是乘法而是减法和平方运算。如。。。你知道吗

对于x11,下标11是矩阵x的第1行第1列

=(-b11+a112+(-b12+a212+(-b13+a312

以及

x12=(-b11+a122+(-b12+a222+(-b13+a322

类似于矩阵乘法的工作原理。你知道吗

如果我们取上面的矩阵A和B,执行上面描述的运算(称为matmultsubtract),我们得到

你知道吗tf.matmultsubtract公司(B,A)给出:

[[(-1+1)2+(-3+1)2+(-1+4)2,(-1+1)2+(-3+2)2+(-1+3)2,…]

[(-2+1)2+(-1+1)2+(-1+4)2,(-2+1)2+(-1+2)2+(-1+3)2,…]]

如果使用numpy数组(可以使用两个嵌套for循环),通过手动迭代而不是手动迭代,这并不是很难np.matmult公司,但是tensorflow有for循环的问题,我不知道怎么做。你知道吗

谢谢你的帮助。你知道吗


Tags: 答案fortf文章公司矩阵档案手动
1条回答
网友
1楼 · 发布于 2024-05-13 04:15:42

尝试不作为矩阵相减的矢量化操作。你知道吗

# shape=(2,3,6)
B_new = tf.tile(tf.expand_dims(B,axis=-1),multiples=[1,1,A.shape[1]])
# shape=(2,3,6)
A_new = tf.tile(tf.expand_dims(A,axis=0),multiples=[B.shape[0],1,1])
# shape=(2,6)
result = tf.reduce_sum(tf.square(A_new - B_new),axis=1)
with tf.Session() as sess:
    print(sess.run(result))

[[13  5  1  2 33 25]
 [10  6  6  9 42 42]]

相关问题 更多 >