Это мой первый пост. Я обычно нахожу все свои ответы в архивах, но мне тяжело с этим, спасибо за помощь!
У меня есть две матрицы A и B. Выполнение умножения матрицОперация тривиальная с использованием tf.matmult.Но я хочу сделать вычитание матрицы аналогично тому, как работает умножение матриц.Например, если у меня есть.
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, но вместо умножения я хочу вычесть и возвести в квадрат.Например ...
для x 11 , где нижний индекс 11 - строка 1, столбец 1 матрицы X.
= (-b 11 + a 11 ) 2 + (-b 12 + a 21 ) 2 + (-b 13 + a 31 ) 2
и
x 12 = (-b 11 + a 12 ) 2 + (-b 12 + a 22 * 1045 *) 2 + (-b 13 + a 32 ) 2
и т. д., аналогично умножению матриц.
Таким образом, если мы возьмем матрицы 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, но тензор потока имеет проблему с циклами for, и я не уверен, как это сделать.за помощь.