ljvmiranda921 / pyswarms

A research toolkit for particle swarm optimization in Python

Home Page:https://pyswarms.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Parallelisation doesn't seem to work for me.

dave-aimusic opened this issue · comments

When I try and use Local PSO using multiple processes I get an error saying it can't concatenate the results. Please see below. I can only get it to run not using parallelisation.

Traceback (most recent call last): File "/Users/davidronan/Desktop/automatic-mix/automatic_mixing_script.py", line 363, in <module> main() File "/Users/davidronan/Desktop/automatic-mix/automatic_mixing_script.py", line 252, in main cost, pos = optimizer.optimize(mmf.masking_minimisation_function, iters=5, verbose=True, n_processes=12) File "/Users/davidronan/.local/lib/python3.7/site-packages/pyswarms/single/local_best.py", line 227, in optimize self.swarm, objective_func, pool=pool, **kwargs File "/Users/davidronan/.local/lib/python3.7/site-packages/pyswarms/backend/operators.py", line 245, in compute_objective_function return np.concatenate(results) File "<__array_function__ internals>", line 6, in concatenate ValueError: zero-dimensional arrays cannot be concatenated

If I change my return type from my objective function to be a numpy array then I get the following error (Please note I changed the number of processes as I was experimenting, the same problem exists for 12 processes):

File "/Users/davidronan/Desktop/automatic-mix/automatic_mixing_script.py", line 361, in <module> main() File "/Users/davidronan/Desktop/automatic-mix/automatic_mixing_script.py", line 250, in main cost, pos = optimizer.optimize(mmf.masking_minimisation_function, iters=5, verbose=True, n_processes=2) File "/Users/davidronan/Documents/envs/automatic_mix/lib/python3.7/site-packages/pyswarms/single/local_best.py", line 236, in optimize self.swarm File "/Users/davidronan/Documents/envs/automatic_mix/lib/python3.7/site-packages/pyswarms/backend/operators.py", line 66, in compute_pbest mask_cost = swarm.current_cost < swarm.pbest_cost ValueError: operands could not be broadcast together with shapes (2,) (100,)

**Environment

  • OS: MacOS BigSur 11.2.3
  • PySwarms Version 1.13.0
  • Python Version 3.7