diff --git a/GPy/core/model.py b/GPy/core/model.py index 6b7d32c6..b6cedbaf 100644 --- a/GPy/core/model.py +++ b/GPy/core/model.py @@ -185,7 +185,7 @@ class model(parameterised): :verbose: whether to show informations about the current restart :parallel: whether to run each restart as a separate process. It relies on the multiprocessing module. :num_processes: number of workers in the multiprocessing pool - + ..Note: If num_processes is None, the number of workes in the multiprocessing pool is automatically set to the number of processors on the current machine. @@ -198,6 +198,7 @@ class model(parameterised): jobs = [] pool = mp.Pool(processes=num_processes) for i in range(Nrestarts): + self.randomize() job = pool.apply_async(opt_wrapper, args = (self,), kwds = kwargs) jobs.append(job) diff --git a/GPy/util/misc.py b/GPy/util/misc.py index e3b91dce..e0f70703 100644 --- a/GPy/util/misc.py +++ b/GPy/util/misc.py @@ -9,7 +9,6 @@ def opt_wrapper(m, **kwargs): This function just wraps the optimization procedure of a GPy object so that optimize() pickleable (necessary for multiprocessing). """ - m.randomize() m.optimize(**kwargs) return m.optimization_runs[-1]