Параллельная сумма с использованием многопроцессорной обработки в Python - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть простая функция:

def sumLoss(xs, hs, ys, ps, t):
  xs[t] = np.zeros((vocab_size,1)) # encode in 1-of-k representation
  xs[t][inputs[t]] = 1
  hs[t] = np.tanh(np.dot(Wxh, xs[t]) + np.dot(Whh, hs[t-1]) + bh) # hidden state
  ys[t] = np.dot(Why, hs[t]) + by # unnormalized log probabilities for next chars
  ps[t] = np.exp(ys[t]) / np.sum(np.exp(ys[t])) # probabilities for next chars
  return -np.log(ps[t][targets[t],0])

И я хочу сделать цикл для суммы, как это:

 for t in range(len(inputs)):
   loss+=sumLoss(xs, hs, ys, ps, t)

Я пробовал следующее:

res = Parallel(n_jobs=num_cores)(delayed(sumLoss)(xs, hs, ys, ps, t) for t in range(len(inputs)))
loss = sum(res)

И моя программа потерпела крах с KeyError: 0 Теперь я понятия не имею, как это сделать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...