From 49958d162dbc8fa9db119d2593813396f5741a6e Mon Sep 17 00:00:00 2001 From: Yannick DAYER <yannick.dayer@idiap.ch> Date: Wed, 6 Apr 2022 10:17:13 +0200 Subject: [PATCH] Try speeding up transform by making e_step delayed --- bob/learn/em/gmm.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/bob/learn/em/gmm.py b/bob/learn/em/gmm.py index 2d5b0b9..ae7bc39 100644 --- a/bob/learn/em/gmm.py +++ b/bob/learn/em/gmm.py @@ -857,10 +857,24 @@ class GMMMachine(BaseEstimator): def transform(self, X, **kwargs): """Returns the statistics for `X`.""" - return e_step( - data=X, - machine=self, - ) + input_is_dask, X = check_and_persist_dask_input(X) + + if input_is_dask: + stats = [ + dask.delayed(e_step)( + data=xx, + machine=self, + ) + for xx in X + ] + stats = functools.reduce(operator.iadd, stats) + stats = stats.compute() + else: + stats = e_step( + data=X, + machine=self, + ) + return stats def _more_tags(self): return { -- GitLab