如何使用Scipy Optimize矢量化参数

jmp7cifd  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(157)

我在从scipy到1.9.0版本的发行说明中发现了以下关于优化模块的内容,在“scipy.optimize improvements”一节中,第4点:
添加一个矢量化参数,以便每次迭代仅调用一次矢量化目标函数。
然而,我已经查看了有关此类参数的文档(minisation函数和minize_sclar),却找不到任何关于此类参数的提示。在互联网上搜索时,我只找到了一些关于实现此类参数的建议或GitHub问题的帖子(或解决方案)。
在哪里可以找到此参数?我可以使用它吗?

nhaq1z21

nhaq1z211#

这些注解对scipy.optimize.differential_evolution有更具体的说明,这个参数在那里有解释,我在其他SO问题中也遇到过,但我不记得哪些函数使用了它。
基本上,对于允许这样做的函数,你可以编写一个目标函数,或者其他可调用的函数(jacobian,boundary?),以一种接受二维数组值的方式。通常,函数只接受一个一维数组,即当前的“状态”。但是,如果使用“vectorized=True”,函数应该准备接受一组“状态”数组,并为每个数组返回一个值。
因此,与其调用对象k次以获得一个范围的值,例如在计算梯度时,它可以使用(n,k)参数调用它1,并通过一次调用获得所有k结果。
我试图解释solve_ivp如何使用这个
scipy.integrate.solve_ivp vectorized

相关问题