Как оптимизировать следующий код с минимальным использованием цикла for? - PullRequest
0 голосов
/ 22 октября 2019

Код занимает слишком много времени для вычислений, и я хочу сократить количество итераций. Я пытался использовать метод, предложенный @Albuquerque Как оптимизировать следующее для кода цикла? , но для этого кода у меня есть 3d-массив. Подскажите, пожалуйста, как оптимизировать следующий код.

K=2
D=3
N=3
sigma=np.asarray([[1,2,3],[4,5,6]])
F=np.asarray([[1,2,3],[4,5,6]])
X=np.asarray([[1,2,3],[4,5,6],[7,8,9]])

W=
[
 [
  [1,2,3],
  [3,2,1]
 ],
 [
  [1,1,19],
  [1,2,1]
 ],
 [
  [2,2,2],
  [1,3,5]
 ]
]

result2= np.ones([N, D])
for i in range(N):
   for l in range(D):
     result2[i][l]=np.sum(W[i][k][l]*(F[k][l]+sigma[k][l]*X[i][l]) for k in range(K))


output-
array([[ 26.,  42.,  60.],
      [ 25.,  72., 441.],
      [ 48., 171., 360.]])
...