以下是matlab中的代码:
costFunc = @(p) nnCostFunction(p, input_layer_size, hidden_layer_size, ...
num_labels, X, y, lmbd);
Run Code Online (Sandbox Code Playgroud)
它采用函数nnCostFunction,为它提供除p以外的所有参数,并将其转换为依赖于p的可调用对象。
也就是说,您可以调用完整功能:
result = nnCostFunction(p, input_layer_size, hidden_layer_size,num_labels, X, y, lmbd)
Run Code Online (Sandbox Code Playgroud)
或调用新函数:
result = costFunction(p)
Run Code Online (Sandbox Code Playgroud)
有什么办法可以在Python中做类似的事情吗?
您可以使用functools.partial:
from functools import partial
costFunc = partial(nnCostFunction, input_layer_size, hidden_layer_size, ...
num_labels, X, y, lmbd)
Run Code Online (Sandbox Code Playgroud)
然后用以下命令调用它p:
costFunc(p)
Run Code Online (Sandbox Code Playgroud)
但是请注意,p它将作为最后一个参数传递,如果您希望它是第一个参数,则应将其包装在另一个函数中:
def costFunc(p):
return nnCostFunction(p, input_layer_size, hidden_layer_size, ...
num_labels, X, y, lmbd)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37 次 |
| 最近记录: |