不知道这是否可能,但是我正在尝试从具有位置和关键字参数的函数创建部分函数。问题是,我希望结果部分函数中的参数设置原始函数中的关键字参数之一,而不是其位置参数之一。
这是原始函数的定义:
def cost_function(self, X, y, weights=None, lambda_param=0.0):
我想要一个可以传递给scipy.minimise的局部函数,以便可以找到最佳的权重值(权重是一个ndarray)。
所以我需要的是一个只有一个参数的局部函数(x说):
例如
cost_func(x)
但是我希望分部函数在调用原始函数时设置weights参数:
my_network.cost_function(X, y, weights=x, lambda_param=0.0)
(我知道我可以更改原始函数,以使weights参数在位置上不是关键字参数,但我不想这样做,因为我也想在不使用weights参数集的情况下使用该函数)。
我认为functools.partial可以满足您的需求
参见示例:
import functools
def cost_function(self, X, y, weights=None, lambda_param=0.0):
print (weights)
cost_func = functools.partial(cost_function, None, 20, 30, lambda_param=2.0)
print (cost_func("Yay it worked!!!"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句