只有在使用非常大或非常小的数字时,是否有人遇到过 fmin_slsqp(或 scipy.optimize 中的其他任何内容)的问题?
我正在编写一些python代码来获取灰度图像和蒙版,生成直方图,然后将多个高斯拟合到直方图。为了开发代码,我使用了一个小示例图像,经过一些工作,代码运行良好。但是,当我首先对直方图进行归一化,生成 bin 值 <<1,或者当我对巨大的图像进行直方图,生成数十万个 bin 值时,fmin_slsqp() 开始偶尔失败。它仅在大约 5 次迭代后退出,通常只返回我给出的初始猜测的略微修改版本,并返回退出模式 8,这意味着“线搜索的正方向导数”。如果我在开始时检查 bin 计数的大小并将它们缩放到 ~100-1000 的附近,fmin_slsqp() 将照常工作。我只是在返回结果之前取消缩放。
我环顾四周,发现人们在谈论 epsilon 值,它基本上是用于逼近导数的 dx,但调整并没有帮助。除此之外,我还没有发现任何有用的东西。任何想法将不胜感激。提前致谢。
詹姆士