У меня есть функция, которая вычисляет приближение дивергенции KL в более высоких измерениях. Внутри он использует sklearn.NearestNeighbors и вычисления на np.arrays. Его называют KLnn (P), где P.shape = (10000,2). Я хочу применить это на многих входах P. [P0, P1, ...]. Поэтому я подал заявку на тестирование на одном входе:
if __name__ == '__main__':
with Pool() as p:
res = p.apply_async(KLnn, (P,))
print(res.get(timeout = 1))
Я получил тайм-аут, и он не вызван вычислением функции, так как вызов функции намного ниже 1 se c. Поэтому я попытался:
if __name__ == '__main__':
with Pool() as p:
print(p.map(KLnn, [P]))
p.close()
p.join()
, который затем заходит в тупик. В обоих случаях я бы ожидал, что он просто вычисляет KLnn (P).
Оба фрагмента кода были просто извлечены из многопроцессорной документации. python пример.