У меня есть цикл для поиска значения суммы.Моя задача сделать цикл параллельным.Проблема: цикл с использованием массивов, где i - элемент зависит от i - 1. Поэтому на каждой итерации мы должны иметь значения (i) и (i-1).Вот мой код:
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])
И это мои жалкие попытки решить задачу:
res = Parallel(n_jobs=num_cores)(delayed(sumLoss)(xs, hs, ys, ps, t) for t in range(len(inputs)))
Конечно, это абсолютно неправильное решение, и я не знаком с примитивами синхронизации.