Optimization 朱莉娅';s Optim.jl包无法执行装箱优化

Optimization 朱莉娅';s Optim.jl包无法执行装箱优化,optimization,julia,Optimization,Julia,我试图从Optim.jl运行一个示例: 它返回: ERROR: LoadError: MethodError: Cannot `convert` an object of type Optim.GradientDescent{LineSearches.InitialPreviou s{Float64},LineSearches.HagerZhang{Float64},Void,Optim.##43#45} to an object of type Optim.Fminbox This may h

我试图从
Optim.jl
运行一个示例:

它返回:

ERROR: LoadError: MethodError: Cannot `convert` an object of type Optim.GradientDescent{LineSearches.InitialPreviou
s{Float64},LineSearches.HagerZhang{Float64},Void,Optim.##43#45} to an object of type Optim.Fminbox
This may have arisen from a call to the constructor Optim.Fminbox(...),
since type constructors fall back to convert methods.
我想不出是怎么回事。如果问题不使用下限和上限,则可以运行:

 results = optimize(f, g!, initial_x)

您很可能正在使用Optim版本0.14.1,在这种情况下,您应该编写:

optimize(f, g!, initial_x, lower, upper, Fminbox{GradientDescent}())
所有的一切都很顺利

与代码的区别是:

  • 参数顺序-初始点应为第三个参数
  • 您以不同的方式调用
    Fminbox
    构造函数
您使用的语法需要Optim 0.15.1,在该语法下,它可以正常工作

optimize(f, g!, initial_x, lower, upper, Fminbox{GradientDescent}())