Проблема с scipy .optimize.fmin_slsqp при использовании очень больших или очень маленьких чисел

Кто-нибудь когда-нибудь сталкивался с проблемами с fmin_slsqp (или чем-то еще в scipy.optimize) только при использовании очень больших или очень маленьких чисел?

Я работаю в некотором коде Python, чтобы взять изображение в оттенках серого и маску, сгенерировать гистограмму, а затем подогнать несколько гауссиан к гистограмме. Для разработки кода я использовал небольшой образец изображения, и после некоторой работы код отлично заработал. Однако, когда я сначала нормализую гистограмму, генерируя значения ячеек << 1, или когда я гистограмму огромных изображений, генерируя значения ячеек в сотни тысяч, fmin_slsqp () начинает спорадически давать сбой. Он завершается всего через ~ 5 итераций, обычно просто возвращая слегка измененную версию первоначального предположения, которое я ему дал, и возвращает режим выхода 8, что означает «Положительная производная по направлению для линейного поиска». Если я проверю размер подсчета бункеров в начале и масштабирую их примерно до ~ 100-1000, fmin_slsqp () будет работать как обычно. Я просто масштабирую вещи, прежде чем возвращать результаты. Думаю, я мог бы оставить это так, но это похоже на взлом.

Я огляделся и нашел людей, говорящих о значении epsilon, которое в основном является dx, используемым для аппроксимации производных, но настройка, которая не помогла. Кроме этого я еще не нашел ничего полезного. Любые идеи очень приветствуются. Заранее благодарим.

Джеймс

5
задан user620538 17 February 2011 в 00:27
поделиться