我想同时为f列表中的不同参数运行fmin_powell优化器。
f = ['1','2','3','4','5','6']
optg_res = opt.fmin_powell(runner, coeff, args=(f,f), disp=0)
有没有简单的方法呢?也许我会使用任何bash命令来运行它?
答案 0 :(得分:0)
您可以使用多处理模块,并且每次调用fmin_powell都会在一个单独的进程中并行运行。 Pool.map()提交对进程池的调用,并返回参数列表中每个值的结果值列表。
根据问题中给出的代码,并行查看4个进程的示例代码:
from multiprocessing.pool import Pool
def optimize(f):
return opt.fmin_powell(runner, coeff, args=(f,f), disp=0)
f = [1,2,3,4,5,6]
p = Pool(processes=4)
results = p.map(optimize,f)