Моя интерпретация заключается в том, что A
и B
являются массивами NumPy с размерами h * w * 3 * 3.
Простейшим способом использования операций с массивами для определения квадрата расстояния между матрицами 3 на 3 A[i,j,:,:]
и B[i,j,:,:]
для каждого i,j
является запись:
distances = np.sum((A-B)**2, axis=(2,3))
т.е.. просто возводя в квадрат все и суммируя по двум последним осям.
Это включает в себя создание некоторых ненужных временных массивов (A-B
, затем его квадрат), поэтому, если вам нужна эффективность extreme , вы можете использовать другую опцию, такую как цикл Numba joted for, который выполняется np.vdot
для каждой пары A[i,j,:,:]
и B[i,j,:,:]
. Но вряд ли это ваше узкое место.