2017-04-08 9 views
0

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' 

それはリストが終わった時に問題がマップにある見えます。誰が何が起こっているのか、どのように私はこの問題を解決するかもしれないかを指摘できますか?

答えて

1

質問:最適化が完了したら、私はお返しに、エラーメッセージを取得しています:あなたはasync_retを想定しlistオブジェクトから.get()を呼び出そうとしている

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

pool.AsyncResultです。

のPython 3.6.1ドキュメント»:multiprocessing.pool.AsyncResult
クラスmultiprocessing.pool.AsyncResult
Pool.apply_async()とPool.map_async()によって返される結果のクラス。

p.map(pool.AsyncResultが返されません。
print(async_ret)を実行すると、あなたが得るものが表示されます。

関連する問題