我在从scipy到1.9.0版本的发行说明中发现了以下关于优化模块的内容,在“scipy.optimize improvements”一节中,第4点:添加一个矢量化参数,以便每次迭代仅调用一次矢量化目标函数。然而,我已经查看了有关此类参数的文档(minisation函数和minize_sclar),却找不到任何关于此类参数的提示。在互联网上搜索时,我只找到了一些关于实现此类参数的建议或GitHub问题的帖子(或解决方案)。在哪里可以找到此参数?我可以使用它吗?
nhaq1z211#
这些注解对scipy.optimize.differential_evolution有更具体的说明,这个参数在那里有解释,我在其他SO问题中也遇到过,但我不记得哪些函数使用了它。基本上,对于允许这样做的函数,你可以编写一个目标函数,或者其他可调用的函数(jacobian,boundary?),以一种接受二维数组值的方式。通常,函数只接受一个一维数组,即当前的“状态”。但是,如果使用“vectorized=True”,函数应该准备接受一组“状态”数组,并为每个数组返回一个值。因此,与其调用对象k次以获得一个范围的值,例如在计算梯度时,它可以使用(n,k)参数调用它1,并通过一次调用获得所有k结果。我试图解释solve_ivp如何使用这个scipy.integrate.solve_ivp vectorized
scipy.optimize.differential_evolution
k
solve_ivp
1条答案
按热度按时间nhaq1z211#
这些注解对
scipy.optimize.differential_evolution
有更具体的说明,这个参数在那里有解释,我在其他SO问题中也遇到过,但我不记得哪些函数使用了它。基本上,对于允许这样做的函数,你可以编写一个目标函数,或者其他可调用的函数(jacobian,boundary?),以一种接受二维数组值的方式。通常,函数只接受一个一维数组,即当前的“状态”。但是,如果使用“vectorized=True”,函数应该准备接受一组“状态”数组,并为每个数组返回一个值。
因此,与其调用对象
k
次以获得一个范围的值,例如在计算梯度时,它可以使用(n,k)参数调用它1,并通过一次调用获得所有k
结果。我试图解释
solve_ivp
如何使用这个scipy.integrate.solve_ivp vectorized