Numpy решение, чтобы избежать вложенных циклов для построения тензор - PullRequest
0 голосов
/ 03 октября 2019

Мне нужно выполнить следующую тензорную операцию:

T[i,j,k] = A[i,k]*B[j,k]

Мое решение по грубой силе:

T = np.zeros(shape=(N,N,N))
for i in range(N):
   for j in range(N):
      for k in range(N):
         T[i,j,k] = A[i,k] * B[j,k]

Существует ли более оптимальный подход к этой проблеме? (Примечание: это не простой внешний продукт.) Я предполагаю, что он включает в себя использование np.tensordot с соответствующим значением осей, но в документации не очень понятно, как его использовать.

Это также будет вВ конце нужно работать вообще для любого количества k измерений:

T[i,j,k1,k2,k3,...] = A[i,k1,k2,k3,...]*B[j,k1,k2,k3,...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...