并行运行优化



我已经使用 SciPy 进行了并行优化。

def optimize(f):
    return opt.fmin_powell(runner, param, args=(f,f), disp=0)
f = ['1','2','3', '4', '5', '6', '7', '8']
p = Pool(processes=8)
async_ret = p.map(optimize,f,chunksize=1)
result = async_ret.get()
p.terminate()

优化完成后,我收到错误消息作为回报:

 result = async_ret.get()
AttributeError: 'list' object has no attribute 'get'

当列表结束时,看起来问题出在地图上。任何人都可以指出正在发生的事情以及我如何解决这个问题吗?

问题:优化完成后,我收到错误消息作为回报:

result = async_ret.get()
AttributeError: 'list' object has no attribute 'get'  

您正在尝试从list对象调用.get(),假设async_retpool.AsyncResult

Python » 3.6.1 文档: multiprocessing.pool.AsyncResult:
类 multiprocessing.pool.AsyncResult
由 Pool.apply_async(( 和 Pool.map_async(( 返回的结果的类。

p.map(不返回pool.AsyncResult.
做一个print(async_ret),你会看到你得到了什么。

相关内容

  • 没有找到相关文章

最新更新