2012-12-10 95 views
2

我正在使用python的pp模块。 我需要做的是并行运行“scipy.optimize”的“fmin”功能。 我进口FMIN这样的:蟒蛇pp模块PicklingError

from scipy.optimize import fmin 

接下来,我定义它执行FMIN功能这样的功能:

def fitting(): 
v = fmin(e, v0, args=(x,y),maxiter=10000, maxfun=10000) 
return v 

而且这种并行运行我使用:

job5 = job_server.submit(fitting, (e, v0, x, y,), (fitting,), ("scipy.optimize",)) 
v = job5() 

然后,我在job5的模块中得到一个PicklingError。我想这是“scipy.optimize”。 我也试过import scipy.optimize as sth,但job_server.submit不接受“sth”作为模块。 任何解决方案?

谢谢。

回答

0

from scipy.optimize import fmin导入行直接放入fitting函数,并停止将它传递到submit

+0

我得到的错误仍然是 “PicklingError:不能咸菜<类型‘功能’>:属性查找__builtin __函数失败” – Antoine

0

你不能用pp很容易做到这一点。但是,如果您使用dill以及pathos(即pathos.pp)中的pp的分支,则它在大多数情况下都适用。

查看mystic优化包中的几个示例,该包使用scipy优化器的扩展提供并行和分布式优化。

例如,这个工程既pathos.multiprocessingpathos.pphttps://github.com/uqfoundation/mystic/blob/master/examples/buckshot_example06.py

上面的代码将启动几个平行fmin_powell情况下,它可以给人以最速下降速度,你伪全球优化。

获取此代码:https://github.com/uqfoundation