当前位置: 首页 > 面试题库 >

用于使功能最小化的输入的结构

公良理
2023-03-14
问题内容

继承了一些尝试使用最小化功能的代码scipy.optimize.minimize。我无法理解funjac参数的某些输入

最小化调用如下所示:

result = minimize(func, jac=jac_func, args=(D_neg, D, C), method = 'TNC' ...other arguments)

func 看起来如下:

def func(G, D_neg, D, C):
#do stuff

jac_func 具有以下结构:

def jac_func(G, D_neg, D, C):
#do stuff

我不明白的是G的输入funcjac_func来自何处。这个现象的原因在指定的minimize功能,或者通过该事实method被指定为TNC?我已经尝试对该优化函数的结构进行了一些研究,但是我找不到所需的答案。任何帮助是极大的赞赏


问题答案:

简短的答案是G优化程序在最小化过程中进行维护,而(D_neg, D, and C)参数是从args元组中按原样传递的。

默认情况下,scipy.optimize.minimize采用fun(x)接受一个参数x(可能是数组等)并返回标量的函数。scipy.optimize.minimize然后找到一个参数值xp,使其fun(xp)小于fun(x)的其他值x。优化器负责创建的值x并将其传递给fun评估。

但是,如果您碰巧有一个函数fun(x, y),该函数具有一些y需要分别传递的附加参数(但是出于优化目的,它被视为常量)?这就是args元组的用途。该文档试图解释args元组的使用方式,但是解析起来可能有些困难:

args: 元组,可选

额外的参数传递给目标函数及其派生类(Jacobian,Hessian)。

有效地,scipy.optimize.minimize将使用星号参数符号args将其余参数作为参数传递给fun:然后fun(x, *args)在优化期间调用该函数。该x部分由优化器传递,而args元组作为剩余参数给出。

因此,在您的代码中,G元素的值由优化程序维护,同时评估的可能值G,并且(D_neg, D, C)元组按原样传递。



 类似资料:
  • 我希望得到一些帮助,以改进作为数组传入的行的UPSERTing方法。我在Postgres 11.4上部署在RDS上。我有很多表格需要整理,但我从一个简单的表格开始进行实验: 到目前为止,该函数如下所示: 调用如下所示: 我正在尝试为UPSERT开发一个注入安全且性能良好的系统。我将替换一个更简单的多值插入,其中INSERT完全在客户端组成。这意味着,我不能确定我在连接文本时没有引入缺陷。(我在这里

  • 问题内容: 我试图用Python在用户输入命令的地方做一个“游戏”。但是,我不知道您是否可以将该输入用作函数名。这是我目前的努力: 在这里,输入是移动的,就像我想尝试调用该函数一样(潜在的最终用户可能会)。但是,出现以下错误: 我想知道是否有什么方法可以允许用户在游戏中“移动”,程序通过调用“移动”功能来实现。 问题答案: 看起来您正在使用python3.x,其中返回了一个字符串。要恢复pytho

  • 问题内容: 我被分配编写一个程序,该程序读取一系列整数输入并打印-输入的最小和最大-以及偶数和奇数输入的数量 我想出了第一部分,但对如何使程序显示最大和最小感到困惑。到目前为止,这是我的代码。我怎样才能显示最小的输入呢? 问题答案: 最简单的解决方案是使用诸如和

  • 问题内容: 我有一个用Python编写的控制台程序。它使用以下命令询问用户问题: 如何测试包含对using的调用的函数?我不想强迫测试人员多次输入文本只是为了完成一次测试运行。 问题答案: 您可能应该模拟内置功能,可以在每次测试后使用提供的功能还原为原始功能。 更好的解决方案是将模块与一起使用。这样,您就不需要使用拆解,并且修补的方法只会存在于范围内。

  • 我有一个很像tensorflow语音命令演示的模型,只是它需要一个大小可变的1D数组作为输入。现在,我发现很难使用tflite\u convert将此模型转换为tflite,因为tflite\u convert需要输入形状。 据说tf lite需要固定大小的输入以提高效率,您可以在推理过程中调整输入大小,作为模型的一部分。然而,我认为这将涉及截断我不想要的输入。有什么方法可以让TF lite发挥作

  • 本文向大家介绍angular4应用中输入的最小值和最大值的方法,包括了angular4应用中输入的最小值和最大值的方法的使用技巧和注意事项,需要的朋友参考一下 Angular4输入属性 输入属性通常用于父组件向子组件传递信息 举个栗子:我们在父组件向子组件传递股票代码,这里的子组件我们叫它app-order 首先在app.order.component.ts中声明需要由父组件传递进来的值 orde