自由和固定参数函数的Scipy-basin跳变极小化

2024-06-16 10:48:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它有一个自由参数元组和一个固定参数元组作为输入,并作为输出一个标量值。这是昂贵的运行,我想找到这个函数的最小值,而不需要任何梯度的knwoldge/Hessians。为此,我决定使用Basin-hopping方法,使用最小化函数COBYLA,因为在一个使用廉价函数的测试运行中,使用的函数调用最少,并且可以使用边界。在

然而,我不知道如何告诉盆地跳跃法哪些参数是自由的优化,哪些是固定的。在

def func(x_free, x_fixed):
    '''Do some expensive stuff here'''
    global FUNC_CALLS
    FUNC_CALLS += 1
    return scalar_value

在文档中,我读到我可以使用字典minimizer_kwargs将参数传递给这个函数。但是,它并没有解释我应该使用哪些关键字。有谁能帮我列出minimizer_kwargs的允许关键字列表,以及它们的作用?在

没有参数x_fixed,我的代码如下所示:

^{pr2}$

简而言之:我应该怎么做才能在函数中插入x_fixed?在


Tags: 函数参数关键字kwargsfixed元组func梯度
1条回答
网友
1楼 · 发布于 2024-06-16 10:48:51

根据basinhopping的docstring,将args键添加到minimizer_kwargs中,值为(x_fixed,)。在

例如:

minimizer_kwargs = {"method": "COBYLA", "args": (x_fixed,)}

相关问题 更多 >