Scipy.optimize.mininize получить количество оценок функций - PullRequest
0 голосов
/ 27 ноября 2018

Я хотел бы сохранить количество оценок функций (Fevals), выполненных алгоритмом оптимизации Scipy, во внешней переменной для подсчета окончательного числа оценок, выполненных всей программой (Scipy повторяется много раз).

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вы можете извлечь его из объекта оптимизации и добавлять значение при каждом внешнем вызове Scipy.Чтобы узнать, как получить количество оценок функций, см. эту скучную документацию .Вы можете обратиться к примерам на той же странице, чтобы просмотреть пример.

Если это не поможет, вы можете свернуть функцию стоимости и попробовать что-то вроде этого:

class F(object):

    def __init__(self, fn):

        self.n_calls = 0
        self.fn = fn

    def __call__(self, x):

        self.n_calls += 1
        return self.fn(x)

return F(fn)
0 голосов
/ 28 ноября 2018

Используйте аргумент callback для передачи функции, которая будет увеличивать глобальное целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...