源码地址:https://github.com/fzliu/style-transfer
scipy.optimize.minimize的使用
scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)
fun
目标函数,也即要最小化的函数。
x0
初始猜测值。
args
可将额外参数传给fun
。
method
论文使用的是L-BFGS-B
。
options
为字典形,其中maxiter
表示最大迭代次数。
在L-BFGS-B
的方法前提下(其它方法可选参数不一样):
jac
表示fun
除了要返回loss
之外,还要另外返回变量的向量梯度grad
。
bounds
表示各个变量的范围,形式为列表中的元组。
举一个例子如下:
minx f(x)=||x||2
s.t. −5 < x1 <5 , 12 < x2 <23
如下图所示:greeting
是额外参数,因为jac
为True
, 所以除了loss
还返回了梯度向量2*x
。
Loss解释
Ltotal(p⃗ ,a⃗ ,x