我有一个损失函数E(v,c),其中v,c是向量。
def loss(v,c,a):
...
return loss_value
在第一步中,我希望最小化矢量v,然后在第二步中通过使用前一步骤中的最小化矢量v_hat来最小化矢量c。 例如:
v_hat.x = minimize(loss,v,args = (c,a))
c_hat.x = minimize(loss,c,args = (v_hat.x,a)) ###error
问题是scipy.optimize.minimize按顺序获取输入参数,即它知道它总是丢失函数参数中的第一个参数,必须最小化。如果我想最小化第二个参数,我要么必须在第一个位置写第二个参数的另一个损失函数:like
def loss_2(c,v,a):
...
return loss_value
现在我可以通过更改损失函数的名称来编写第二个语句。但这是一种笨拙的方式,任何以更好的方式做到这一点的方法?