quinta-feira, 7 de fevereiro de 2019

É mais rápido treinar Machine Learning com Python AsyncIO?










A resposta é SIM!
Em todos os processos que rodei comparando Sync com Async, a computação paralela (async) levou a melhor em Machine Learning.

Qual a diferença entre a execução assíncrona e síncrona?
Quando você executa algo de forma síncrona, você espera que ele termine antes de passar para outra tarefa. Quando você executa algo de forma assíncrona, pode passar para outra tarefa antes de terminar.

Biblioteca utilizada: Python AsyncIO





def synchronous():
start = time.time()
svc = svm.SVC(kernel='linear')
C_s = np.logspace(-10, 0, 10)

scores = list()
scores_std = list()
for C in C_s:
svc.C = C
this_scores = cross_val_score(svc, X, y, cv=5, n_jobs=1)
scores.append(np.mean(this_scores))
scores_std.append(np.std(this_scores))
print("Processo demorou: {:.2f} segundos".format(time.time() - start))

@asyncio.coroutine
def asynchronous():
start = time.time()
svc = svm.SVC(kernel='linear')
C_s = np.logspace(-10, 0, 10)

scores = list()
scores_std = list()
for C in C_s:
svc.C = C
this_scores = cross_val_score(svc, X, y, cv=5, n_jobs=2)
scores.append(np.mean(this_scores))
scores_std.append(np.std(this_scores))
print("Processo demorou: {:.2f} segundos".format(time.time() - start))

Nenhum comentário:

Postar um comentário